在Linux系统中,权限(Permissions)是控制用户对文件和目录访问的核心机制。权限分为三类(用户、组、其他),每类包含三种基本操作权限。以下是详细解析:
cat、less)ls)cd)权限分配给三类身份:
- 用户(Owner):文件所有者
- 组(Group):所属用户组
- 其他(Others):非所有者且非组成员
使用 ls -l 命令查看权限(示例):
-rwxr-xr-- 1 alice dev 1024 Jan 1 10:00 script.sh
-rwxr-xr--
-表示文件,d表示目录rwx)r-x)r--)权限可用3位八进制数表示:
- r=4,w=2,x=1
- 示例:rwxr-xr-- → 754
- 用户:4+2+1=7
- 组:4+0+1=5
- 其他:4+0+0=4
chmod命令
chmod u+x file.sh # 给用户添加执行权限
chmod go-w file.sh # 移除组和其他用户的写权限
chmod 755 script.sh # 设置为rwxr-xr-x
chown命令(修改所有者/组)
chown alice:dev file.txt # 修改所有者为alice,组为dev
/usr/bin/passwd)/tmp)chmod u+s file # SUID
chmod g+s dir # SGID
chmod +t dir # Sticky Bit
umask值决定(默认022,即文件权限644,目录755)umask:bash
umask # 查看当前值
umask 027 # 设置新值(文件权限变为640)当用户访问文件时,系统按以下顺序检查权限:
1. 用户权限 → 2. 组权限 → 3. 其他权限(匹配即停止)。
权限不足错误:
bash: ./script.sh: Permission denied
解决方案:
chmod +x script.sh
目录不可进入:确保对目录有x权限。
掌握权限管理是Linux系统安全的基础,合理分配权限可有效防止未授权访问或误操作。