在Linux系统中,可以使用chmod命令来修改文件或目录的权限。以下是详细的操作方法:
语法:
chmod [who][operator][permissions] 文件名
who(用户类别):
u:文件所有者(user)g:所属组用户(group)o:其他用户(others)a:所有用户(all,默认值)operator(操作符):
+:添加权限-:移除权限=:直接设置权限(覆盖原有权限)permissions(权限):
r:读权限w:写权限x:执行权限示例:
# 给所有者添加执行权限
chmod u+x script.sh
# 给组用户移除写权限
chmod g-w file.txt
# 设置所有用户权限为读写(覆盖原有权限)
chmod a=rw document.txt
# 同时设置多类用户权限(所有者读写执行,组用户读执行,其他用户无权限)
chmod u=rwx,g=rx,o= file.txt
权限用3位八进制数表示,分别对应所有者、组用户、其他用户的权限。
每位数字由 r(4) + w(2) + x(1) 相加得到:
| 数字 | 权限 |
|---|---|
| 4 | r-- |
| 5 | r-x |
| 6 | rw- |
| 7 | rwx |
语法:
chmod [数字组合] 文件名
示例:
# 设置权限为 rwxr-xr--(所有者:7,组用户:5,其他用户:4)
chmod 754 script.sh
# 常见权限:
chmod 644 file.txt # rw-r--r--
chmod 755 script.sh # rwxr-xr-x
chmod 600 key.pem # rw-------
添加 -R 参数可递归修改目录及其子目录/文件的权限:
chmod -R 755 /path/to/directory
chmod 4755)。chmod 2755)。/tmp 的 1777权限)。示例:
chmod 4755 /usr/bin/special # 设置SUID
chmod 1777 /shared/tmp # 设置Sticky Bit
使用 ls -l 查看文件权限:
ls -l 文件名
输出示例:
-rwxr-xr-- 1 user group 0 Jan 1 10:00 file.txt
(权限部分:rwxr-xr-- = 754)
777:开放所有权限可能引发安全问题。x 权限是进入目录的必要条件。umask 影响。通过灵活组合上述方法,可以精确控制Linux文件的访问权限。