LINUX文件系统权限
有三种权限类别可应用:读取、写入和执行。文件由用户、单个组和其他用户拥有。应用最具体的权限,用户权限覆盖组权限,组权限又覆盖其他权限。
权限 | 对文件的影响 | 对目录的影响 |
r(读取) | 可以读取文件的内容 | 可以列出目录的内容(文件名) |
w(写入) | 可以更改文件的内容 | 可以创建或删除目录中的任一文件。 |
x(执行) | 可以作为命令执行文件 | 目录可以成为当前工作目录。(您可以cd它,但还需要读取权限才能列出里面的文件。) |
查看文件和目录的权限及所有权
使用-l选项运行ls命令将展开文件列表,包括文件权限和所有权。
长列表的第一个字符表示文件类型:
-是常规文件
d是目录
l是软连接
其他字符代表硬件设备(b和c)或其他具有特殊用途的文件(p和s)。
从命令行管理文件系统权限
chmod命令可从命令行更改文件权限。有两种表示权限的方法:符号(字母)法和数值(数字)法。
符号法:u代表用户,g代表组,o代表其他,a代表全部。
注意:chmod命令支持-R选项以递归方式对整个目录树中的文件设置权限。在使用-R选项时,使用X选项以符号形式设置权限会非常有用。这将能够对目录设置执行(搜索)权限,以便在不更改大部分文件权限的情况下,访问这些目录的内容。不过,使用选项时要谨慎,因为如果某个文件设置有任何执行权限,则×也将会对该文件设置指定的执行权限。例如,以下命令会以递归方式为组所有者设置对 demodir及其所有子代的读、写访问权限,但将仅向已为用户、组或其他人设置了执行权限的目录和文件应用组执行权限。
数值法:每个数字代表一个访问级别的权限(用户、组、其他)。计算方法将所有要添加的每个权限的数值加在一起。权限由三位(或在设置高级权限时为四位)。
1.从0开始。
2.如果该访问级别应该具有读取权限,请加4。
3.如果具有写入权限,加2。
4.如果具有执行权限,加1。
chown命令可更改文件所有权。-R选项可以递归更改目录树的所有权。
重要:可能会遇到chown命令使用替代语法的示例,该语法用冒号分隔所有者和组。句点是用户名中的有效字符,但冒号不是。如果系统上存在用户enoch.root、用户enoch和组root,则chown enoch.root filename的结果是filename归用户enoch.root所有。您可能是在尝试将文件所有权设置为用户enoch和组root。这可能会造成混淆。
默认文件权限
不带参数运行umask命令将显示shell的当前umask值。系统上的每个进程都有一个umask。Bash的默认umask在/etc/profile和/etc/bashrc文件中定义。