在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系统安全的基础,合理分配权限可有效防止未授权访问或误操作。