一、Llinux文件系统权限:
文件具有三个应用权限的用户类别,文件归用户所有,通常是创建文件的用户;还归单个组所有,通常是创建该文件的主要用户组所有,可以进行更改;也可以为非用户和非所属组的其他成员设置权限。通常可应用读取、写入和执行三种权限。
最具体的权限具有优先权:用户权限覆盖组权限,后者又覆盖其他权限。
2、权限对文件和目录的影响:
权限 | 文件 | 目录 |
r(读取) | 可以读取 | 可以列出目录内容 |
w(写入) | 可以更改 | 可以创建或删除目录中的文件 |
x(执行) | 可以执行 | 可以成为当前工作目录(可以cd它),但还需要读取权限 |
注意:文件所在的目录中拥有所有权或写入权限的任何人都可以删除此文件。
3、查看文件和目录的权限和所有权:
(1)显示有关权限和所有权的详细信息:ls –l命令
(2)显示有关目录的详细信息:ls –ld命令
(3)显示当前目录下的所有文件以及包括的隐藏内容:ls –la命令
4、ls –l 输出中每一个字段含义:
(1)文件类型
- | 普通文件 |
p | 管理文件 |
l | 链接文件 |
b | 块设备文件 |
d | 目录文件 |
c | 字符设备文件 |
s | 嵌套字文件 |
(2)所有者/所有者权限:r 读权限、w写权限 、x可执行权限、-无权限
(3)组用户权限
(4)其他用户权限
(5) a.如果是普通用户,数字是链接数
b.如果是目录文件,数字是第一级子目录数
(6)用户名
(7)组名
(8)文件大小(字节)
(9)最后修改时间
(10)文件名
二、从命令行管理文件系统权限:
1、符号法更改权限:
(1)who:指u、g、o、a(用户、组、其他、全部)
(2)what:指+、-、=(添加、删除、精确设置)
(3)which:指r、w、x(读取、写入、删除)
2、数值法更改权限:
4代表读取,2代表写入,1代表执行,将所要添加的每个权限的数值加在一起。
3、chmod命令:更改权限(添加-R选项以递归方式对整个目录树的文件设置权限)
例如:对file2中的每个人添加执行权限。
chmod a+x file2
例如:对于用户,rwx为4+2+1=7;对于组,rwx为4+2+1=7;对于其他用户,r-x表示4+0+1=5,则数值法表示为775。
drwxrwxr-x. root root Mar 1 22:06
4、更改文件和目录的用户或组所有权:
(1)chown命令:更改文件所有权(只有root用户可以更改拥有文件的用户)
chown user file
(2)chown username:groupname命令:可更改所有者和组所有权
chown user:group file
(chgrp命令也可用于更改组所有权,但不需要组名前的冒号)
三、管理默认权限和文件访问:
1、特殊权限对文件和目录的影响:
特殊权限 | 文件 | 目录 |
u+s(suid) | 以拥有文件的用户身份,而不是运行文件的身份 | 无影响 |
g+s(sgid) | 以拥有文件的组身份执行文件 | 新创建的文件的组所有者为目录的组所有者 |
o+t(sticky) | 无影响 | 对目录具有写入权限的用户仅可删除文件,无法删除其他用户拥有的文件 |
2、设置特殊权限:
(1)符号法:setuid=u+s;setgid=g+s;sticky=o+t
例:在directory上添加setgid位
chmod g+s directory
(2)数值法(第四位):setuid=4;setgid=2;sticky=1
例:在directory上添加setgid位,为用户和组添加读取写入执行权限,其他人不具有权限。
chmod 2770 directory
3、默认文件权限:
创建目录或文件时会为其分配初始权限。
(1)umask命令:创建文件或者目录时的默认权限,目录为0777,文件为0666;也可查看当前的默认权限值。
(2)umask 007命令:屏蔽其他的所有文件和目录权限。
例:默认权限设为007,用户和组具有读取和写入权限,其他用户的权限都被屏蔽。
(3)umask的值在/etc/profile和/etc/bashrc文件中,用户可以在其主目录.bash_profile和.bashrc中覆盖系统默认值