一、权限概述
在Linux系统中,权限分为三类:读取(r)、写入(w)和可执行(x)。对于文件和目录,这些权限有不同的含义:
- 文件权限:
- r:读取,可以使用
cat
、less
、grep
等命令查看文件内容。 - w:写入,可以使用
vim
、>
、>>
等命令修改文件内容。 - x:可执行,可以执行脚本或程序。
- 目录权限:
- r:读取,可以使用
ls
命令查看目录内容。 - w:写入,可以创建、删除、修改目录内的内容。
- x:执行,可以使用
cd
命令进入目录。
二、归属关系
在Linux中,每个文件和目录都有所有者(user)、所属组(group)和其他用户(other)。权限的检查顺序是:所有者 > 所属组 > 其他用户。
1.查看和修改权限
- 查看权限:使用
ls -l
或ls -ld
命令查看文件或目录的权限和归属信息。 - 修改权限:使用
chmod
命令修改权限。例如,chmod u+x file
给所有者添加执行权限,chmod 755 directory
设置目录权限为所有者全部权限,所属组和其他用户读取和执行权限。 - 递归修改权限:使用
chmod -R
命令递归修改目录及其子目录的权限。
2.修改归属关系
- 修改归属:使用
chown
命令修改文件或目录的所有者和所属组。例如,chown user:group file
。 - 递归修改归属:使用
chown -R
命令递归修改目录及其子文件的所有者和所属组。
3.ACL策略管理
ACL(Access Control List)策略允许对个别用户或组设置独立的权限,优先级高于基本权限。
- 设置ACL:使用
setfacl -m u:user:rwx file
为特定用户设置权限。 - 递归设置ACL:使用
setfacl -Rm
命令递归设置目录及其子文件的ACL。 - 删除ACL:使用
setfacl -x u:user file
删除特定用户的ACL。 - 清除所有ACL:使用
setfacl -b file
清除文件或目录的所有ACL。 - 查看ACL:使用
getfacl file
查看文件或目录的ACL策略。
4.附加权限
- Set UID(SUID):占用属主的x位,显示为s或S,仅对可执行程序有意义。
- Set GID(SGID):占用所属组的x位,显示为s或S。
- Sticky Bit(粘滞位):占用其他人的x位,显示为t或T,适用于目录,限制用户滥用写入权。
5.umask配置
umask值决定了新创建文件和目录的默认权限。默认值通常是0022,意味着新文件默认权限为644,新目录为755。
- 配置umask:在
.bashrc
文件中设置umask值,例如umask 022
。
6.额外知识
/etc/skel
目录包含了新用户创建时的模板文件。如果用户的重要文件丢失,可以从这里复制。
通过今天的学习,我们掌握了Linux系统中权限管理的基本工具和策略,这对于维护系统的安全性和稳定性至关重要。