访问权限:
读取r:允许查看文件内容、显示目录列表
写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
rw- 文件的主人 属主
r-- 文件所属的组 属组
r-- 其他人
注意:
文件夹的最小权限是x 一定要带上否则无法进行任何操作 超级管理员不受影响
删除一个文件和所在文件夹权限有关 和自身没关系 注意超级管理员(不受限)
r w x
1 0 0 4
0 1 0 2
0 0 1 1
7
使用ls –l 命令查看文件属性
文件的属性分为9列,每列含义如下:
- 第一列:表示文件类型,-属于普通文件。
- 第二列:表示文件的UGO权限。rw-r--r--每三个一组。
rw- :属主的权限;
r-- :属组的权限;
r-- :其他人的权限。
- 第三列:表示ACL表中是否设置了ACL权限。“.” 表示无ACL权限,“+”表示设置了ACL权限。
- 第四列:表示硬链接数。
- 第五列:表示文件的属主。
- 第六列:表示文件的属组。
- 第七列:表示文件的大小,有多少字节。
- 第八列:表示最后一次修改时间。
- 第九列:表示文件名。
基本权限U G O
Linux权限授权,默认是授权给三种角色UGO: user(属主)、group(属组)、other(其他人)。
每个文件的权限基于UGO进行设置。
权限三位一组(rwx),同时授权给三种角色UGO。
权限对象UGO:
u 属主(user);
g 属组(group);
o 其他人(other)。
a 所有人 all(u+g+o)
设置文件和目录的权限 chmod
chmod命令格式:
数字形式:
Chmod ### 文件/目录
字符形式:
Chmod 对象(u属主/g属组/o其他人/a所有)赋值符(+/1/=)权限类型(r/w/x) 文件类型
“+”号代表增加权限 “-”号代表减少相应权限 “=”号代表覆盖对应的权限
选项:
-R 递归修改目录下所有子项的权限
示例:
(1) 数字形式设置权限:
(2) 字符形式设置权限
为属主增加执行权限
给其他人增加执行权限
设置文件和目录的归属 chown
命令:
Chown 属主 文件或目录
Chown :属组 文件或目录
Chown 属主:属组 文件或目录
选项:-R 递归修改指定目录下所有子项的权限
举例:
Chown 属主:属组 文件或目录
Chown 属主 文件或目录
Chown :属组 文件/目录
权限掩码umask
umask作用:
- 控制新建的文件或者目录的权限。
- 默认权限去除umask的权限为新建的文件
umask 查看: umask
umask 设置: umask 0022
创建新文件和目录时,落地权限计算:
- 系统默认umask为0022(第一个0与特殊权限有关,目前只需要看后三位)。
- 文件夹的落地权限=0777-0022=0755。文件夹必须要有执行权限,用户才能访问该目录。
- 文件的落地权限=0666-0022=0644。系统出于安全考虑,创建文件时去掉了所有的执行权限,防止一些不安全的程序文件被错误执行。
例题:
文件夹 一定要有执行权限
你去切知道文件夹的名字才能
执行 cp /etc/issue /data/dir/ 所需要的最小权限?
/bin/cp 需要x权限
/etc/ 需要x权限
/etc/issue 需要r权限
/data 需要x权限
/data/dir 需要w,x权限
三种特殊权限 suid SGID sticky bit
suid
功能:设置suid权限的程序文件,在用户执行该程序时,用户权限是该程序文件属主的权限
设置SUID的文件要求有如下几点:
1.SUID只对可执行的二进制文件起作用,shell脚本设置后不生效。
2.如果设置了其suid后,其属主的可以执行权限x会变成s(小写),如果是大写S那么说文件的属主没有执行权限,设置的SUID无效。
3.SUID对目录设置无意义。
SUID设置方法
字母设置方式:chmod u+s file
取消SUID:chmod u-s file
数字设置方式:chmod 4755 在普通三位数字权限位之前,用4代表添加的SUID位
取消SUID:chmod 0755
[root@localhost aa]#which passwd
/usr/bin/passwd
[root@localhost aa]#ll /usr/bin/passwd
#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
[root@localhost aa]#which vim
/usr/bin/vim
[root@localhost aa]#chmod u+s /usr/bin/vim
#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
[root@localhost aa]#ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
#SGID
[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
Sticky 位
#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
#sticky 设置在文件上无意义
#Sticky权限设定:
chmod o+t DIR...
chmod o-t DIR..
[root@localhost aa]#chmod o+t /opt/aa
添加Sticky 位
[root@localhost opt]#chmod o-t /opt/aa
#减少Sticky 位