1.文件权限
文件权限用来控制对文件的访问。文件具有三个应用权限的用户类别:所属用户、所属组、其他用户;最具体的权限具有优先权,用户权限覆盖组权限,组权限覆盖其他权限。
权限 | 对文件的影响 | 对目录的影响 |
r(读取) | 可以读取文件内容 | 可以列出目录内容 |
w(写入) | 可以更改文件内容 | 可以创建和删除目录中的任意文件 |
x(执行) | 可以作为命令执行文件 | 可以切换目录成为当前目录 |
注:用户通常对只读目录具有读取和执行权限,对目录的内容具有完整的访问权限。
2.查看目录和文件的权限
(1)ls命令 -l 选项可以显示文件的有关权限和所有权的详细信息
-ld 选项可以显示目录的有关权限和所有权的详细信息
(2)长列表的第一个字符表示文件类型
- | 常规文件 |
d | 目录 |
l | 软链接 |
b和c | 硬件设备 |
p和s | 特殊文件 |
(3)接下来就个字符表示文件权限。每三个一组,第一组表示所属用户权限;第二组表示所属组权限;第三组表示是其他用户权限。组中显示rwx表示该类别具有读写执行权限,其中一个被“-”代替表示该类别没有此权限。
(4)如果用户与组具有不同的权限,而用户也是该组的成员,那么用户权限就是最终应用的权限。
3.更改文件目录权限
chmod命令用来更改文件和目录的权限,通常有两种方法:符号法和数值法。
(1)符号法:Who:u、g、o、a What:+、-、= Which: r、w、x
使用chmod符号法可以更改一个或多个权限,使用+、-、=来添加和删除用户、组、其他用户权限。当文件是目录或者文件的所属用户、所属组、其他用户其中之一含有执行权限时,可以使用X作为权限标志来添加权限。
(2)数值法:4(读取) 2(写入) 1(执行)。任意相加表示0-7中的任意值,每个值代表一个访问级别依次是:用户、组、其他。
4.更改文件和目录的用户或组所有权
chown命令可以更改文件和目录的用户或组所有权,-R选项可以以递归方式更改整个目录树是所有权。
更改用户所有权 | chown user file |
更改组所有权 | chown :group file |
chgrp命令用来更改组所有权。与chown不同的是,此命令不用在组名前加冒号(:)。
5.特殊权限
特殊权限构成了除基本用户、组和其他类型之外的第四种权限。用chmod命令来设置,也分为符号法和数值法。
(1)符号法
特殊权限 | 对文件的影响 | 对目录的影响 |
u+s(suid) | 以拥有文件的身份执行文件 | 无 |
g+s(sgid) | 以拥有文件的组身份执行文件 | 在目录中创建的新文件的组所有者与目录组所有者保持一致 |
o+t(sticky) | 无 | 对目录具有写入访问权限的用户可以删除自己的文件,不能删除其他用户的文件 |
注:用s辨别setuid和setgid权限,表示此处之前具有执行权限;S表示此处之前不具有执行权限。
用t辨别sticky权限,表示此处之前具有执行权限;T表示此处之前不具有执行权限。
(2)数值法: setuid=4 setgid=2 sticky=1
6.默认文件权限
创建的新目录,操作系统默认分配八进制权限0777(drwxrwxrwx);创建的新文件,操作系统默认分配八进制权限0666(-rw-rw-rw-)。
7.umask值
umask值可以清除新创建文件的权限,不带参数运行umask命令将显示当前shell的umask当前值。系统上的每一个进程都有一个umask。umask值默认在/etc/profile和/etc/bashrc文件中定义。