在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文件的访问权限。