Linux 系统中的权限管理是确保系统安全和数据保护的重要部分。以下是一些基本的 Linux 权限管理概念和命令:
权限类型
读(Read, r) - 允许用户查看文件内容或目录列表。
写(Write, w) - 允许用户修改文件内容或在目录中创建/删除文件。
执行(Execute, x) - 允许用户执行文件(如果它是可执行的)或进入目录。
权限类别
所有者(Owner) - 文件或目录的所有者。
组(Group) - 文件或目录所属的用户组。
其他(Others) - 既不是所有者也不是组内成员的用户。
命令
ls -l - 列出文件和目录的详细权限信息。
chmod - 更改文件或目录的权限。例如:
chmod u+x file:给所有者添加执行权限。
chmod g+w directory:给组添加写权限。
chmod o-r file:移除其他用户的读权限。
chmod 644 file:设置文件权限为所有者读写,组和其他用户只读。
chown - 更改文件或目录的所有者。例如:chown newuser file。
chgrp - 更改文件或目录的组。例如:chgrp newgroup file。
setfacl - 设置或修改文件的访问控制列表(ACL)。例如:
setfacl -m u:newuser:rwx file:给用户添加读、写、执行权限。
setfacl -x u:olduser file:移除用户的权限。
getfacl - 显示文件的 ACL 信息。
umask - 设置默认的文件和目录权限掩码。例如,umask 022 将默认权限设置为644(rw-r--r--)。
特殊权限
setuid(s)- 当设置在可执行文件上时,允许以文件所有者的权限运行该程序。
setgid(s)- 当设置在目录上时,新创建的文件和目录将继承该目录的组。
sticky bit(t)- 通常用于 /tmp 等目录,只有文件所有者和超级用户可以删除文件。
权限掩码(umask)
umask命令设置权限掩码,它决定了新创建的文件和目录的默认权限。权限掩码是一个三位八进制数,分别对应其他用户、组和所有者的权限。例如,umask 022将默认权限设置为644(rw-r--r--)。
访问控制列表(ACL)
ACL 提供了比传统权限更细粒度的控制,允许你为个别用户或用户组设置特定的访问权限。
使用 ACL
添加权限:setfacl -m u:username:rwx filename
删除权限:setfacl -x u:username filename
查看 ACL:getfacl filename
权限管理是 Linux 系统管理中的一个重要方面,正确设置权限可以防止未授权的访问和潜在的安全风险。