在Debian系统中,文件权限是控制用户对文件/目录访问的核心机制,主要分为三类:
每个类别对应三种权限:
使用ls -l
命令可查看文件/目录的详细权限信息,输出示例:
ls -l /var/www/html/index.html
# -rw-r--r-- 1 www-data www-data 1024 Jan 1 10:00 /var/www/html/index.html
-
为普通文件,d
为目录,l
为符号链接);rw-
表示可读可写不可执行);r--
表示只读);r--
表示只读)。用三位八进制数表示权限,每位对应所有者、组、其他的权限值:
chmod 755 /var/www/html/index.html # 所有者:rwx(7),组:r-x(5),其他:r-x(5)
chmod 644 /etc/passwd # 所有者:rw-(6),组:r--(4),其他:r--(4)
通过字符指定用户类别和权限操作:
u
(所有者)、g
(组)、o
(其他)、a
(所有);+
(添加)、-
(移除)、=
(设置);r
、w
、x
。chmod u+x script.sh # 给所有者添加执行权限
chmod go-w /tmp/data # 移除组和其他用户的写权限
chmod a=r /etc/hosts # 设置所有用户为只读
使用-R
选项修改目录及其子目录、文件的所有权限:
chmod -R 755 /var/www/html # 递归设置目录及文件权限
注意:递归修改需谨慎,避免将系统目录权限设为777
(完全开放),可能导致安全风险。
基本语法:
chown [OPTIONS] USER[:GROUP] FILE
chown root:root /etc/ssh/sshd_config # 同时修改所有者和组
chown www-data /var/www/html/index.html # 仅修改所有者
chown :developers /var/www/html/project # 仅修改组
chown -R www-data:www-data /var/www/html # 递归修改目录及子项的所有者和组
基本语法:
chgrp [OPTIONS] GROUP FILE
chgrp developers /var/www/html/project # 修改文件所属组
chgrp -R developers /var/www/html/project # 递归修改目录及子项的组
注意:修改所有者需root
权限(使用sudo
),修改组可使用chgrp
或chown
的组部分。
passwd
命令(允许普通用户修改自己的密码)。chmod u+s /usr/bin/passwd # 添加SetUID
chmod u-s /usr/bin/passwd # 移除SetUID
/var/www/html
目录(让组内成员共享文件)。chmod g+s /var/www/html # 添加SetGID
chmod g-s /var/www/html # 移除SetGID
root
可删除/重命名文件。/tmp
目录(防止用户误删他人文件)。chmod +t /tmp # 添加粘滞位
chmod -t /tmp # 移除粘滞位
注意:特殊权限需谨慎使用,尤其是SetUID/SetGID,滥用可能导致安全漏洞。
umask
用于设置新创建文件/目录的默认权限掩码,计算公式:
umask 022 # 新文件权限:644(rw-r--r--),新目录权限:755(rwxr-xr-x)
umask 002 # 新文件权限:664(rw-rw-r--),新目录权限:775(rwxrwxr-x)
umask
umask
命令添加到~/.bashrc
或/etc/profile
中。当需要为特定用户/组设置额外权限时,可使用setfacl
(访问控制列表):
sudo apt-get install acl # Debian/Ubuntu系统
setfacl -m u:username:rwx /path/to/file # 给username添加读写执行权限
setfacl -m g:groupname:r-x /path/to/dir # 给groupname添加读执行权限
getfacl /path/to/file # 显示文件的ACL信息
setfacl -b /path/to/file # 删除所有ACL条目
注意:文件系统需支持ACL(如ext4、xfs),可通过tune2fs -o acl /dev/sdXn
启用。
777
权限:不要将目录/文件权限设为777
(所有用户可读写执行),易导致恶意篡改。ls -l
检查关键文件/目录的权限,及时修正异常。-h
选项(如chown -h
),避免修改链接指向的文件权限。