查看文件与目录权限
在 Linux 系统中,使用 ls -l 命令可以查看文件的详细信息,包括权限。
查看文件权限
ls -l 文件名
查看目录权限
要查看目录本身的权限(而非其内容),需要使用 -d 选项。
ls -ld 目录名
修改文件与目录权限 (chmod)
chmod 命令用于更改文件或目录的访问权限。其基本语法格式如下:
chmod [选项] 权限模式 文件或目录名
常用选项包括 -R(递归处理,修改目录及其下所有内容)。
权限的数字表示法(八进制)
权限由三位或四位八进制数字表示,分别对应所有者(u)、所属组(g)和其他用户(o)。每位数字是 r(4)、w(2)、x(1) 权限值的和。
- 常用权限示例:
chmod 600 文件:所有者可读可写 (rw-------)。chmod 644 文件:所有者可读可写,组和其他用户只读 (rw-r--r--)。chmod 700 文件:所有者可读可写可执行 (rwx------)。chmod 755 目录:所有者全权限,组和其他用户可读可执行 (rwxr-xr-x),目录常用权限。chmod 777 文件或目录:所有用户拥有全部权限 (rwxrwxrwx),安全性极低,不推荐使用。
权限的符号表示法
语法:chmod [用户类别][操作符][权限] 文件或目录名
1. 用户类别 (who)
u:文件所有者 (user)g:文件所属组用户 (group)o:其他用户 (others)a:所有用户 (all),是默认值
2. 操作符 (operator)
+:添加指定权限-:移除指定权限=:设置指定权限,并移除未提及的权限
3. 权限 (mode)
r:读权限w:写权限x:执行权限(对文件)或访问权限(对目录)X:特殊执行权限,仅当目标文件是目录或已有用户可执行时才赋予 x 权限。s:设置用户ID (SUID) 或组ID (SGID)。t:粘滞位 (Sticky Bit),常用于 /tmp 目录。
符号法使用示例
# 给所有用户添加执行权限
chmod a+x script.sh
# 移除组和其他用户的写权限
chmod go-w document.txt
# 设置文件权限为:所有者读写执行,组读执行,其他用户无权限
chmod u=rwx,g=rx,o= file
# 递归给目录及其下所有文件添加组写权限
chmod -R g+w projects/
重要说明与最佳实践
- 权限含义差异:对于文件,
x表示可执行;对于目录,x表示可以进入 (cd) 或访问其中元数据。 - 目录的读权限:目录的
r权限允许列出其内容(如使用ls),但必须同时拥有x权限才能访问目录内文件的具体信息。 - 安全建议:遵循最小权限原则。避免随意使用
777或666权限。脚本文件通常需要755,配置文件通常为644,私密文件可为600。 - sudo 的使用:修改系统文件或不属于当前用户的文件时,通常需要在命令前加
sudo以获取管理员权限。