用户的权限
权限的三种
基本权限 U G O
u (user属主)
g (group属组)
o(other其他人)
a(特殊对象 所有人 u+g+o)
权限的三种类型 rwx
r=4 (read 读)
w=2 (write 写)
x=1 (execute 执行)
ls -l查看文件详细信息 分为七段
例 ls -l /tmp/file1
1.第一个“-” 代表文件类型 普通文件
2.rw- 代表属主的权限为rw 读和
3.r–代表属组的权限为r 读
4.r–代表其他人的权限为r 读
5.root 属主为root
6.root 属组为 root组
7.0代表文件大小(0字节)
8.2月15 12:16 代表创建时间 二月十五日十二点十六分
9.file01 文件名
1.更改权限chmod
01字母表示
chmod u+r 文件名(给文件的属主添加read权限 “-”代表取消,“=”代表赋予)
例 chmod ug=rw,o=r 1.txt (给文件1.txt的属主和属组read和write的权限,给其他人read的权限)
ll -d 目录 查看目录的权限
./文件名 执行该文件 如果没有执行权限 则./file会提示权限不够
02 数字表示
chmod 777 文件名 (给文件的属主属组和其他人全部的权限)
2.更改属主属组 chown
chown 用户名.组名 文件名(更改文件的属主和属组)
chown 用户名 文件名(只改文件的属主)
chown .组名 文件名 (更改文件的属组名)
注意:.用来区分文件名和组名
chgrp(只能修改属组)
更改目录的文件属性,该目录下的其他文件或文件夹不会受到影响,如果想要同时修改该目录下的其他文件属性,需要用-R(递归)
chown -R 属主.属组 目录名 (-R一般只用于目录)
如果有个文件需要设置多个用户都对其有不同的权限,chmod和chown此时无法做到,需要用ACL
3.acl (可以设置不同用户,不同基本权限,对象数量不同)
ugo基本权限设置只能对应一个用户,一个组和其他人
acl命令语法
setfacl -m u:用户名:权限 路径文件名
例 setfacl -m u:haoyue:rwx /tmp/1.txt 设置/tmp/1.txt的属主为haoyue,权限为rwx
setfacl -m g:组名:权限 路径文件名
setfacl -m o::权限 路径文件名
getfacl 路径文件名 查看该文件有哪些acl权限
setfacl -x g:hr 路径文件名 删除组hr的acl权限
setfacl -b 路径文件名 删除所有acl权限
watch -n1 ‘ls -l /tmp/1.txt’
每隔一秒钟查看/tmp/1.txt的详细信息
特殊权限
- 如果一个文件很重要,不想被用户误删怎么办?
为文件添加i属性
chattr 通常用于锁定某文件,防止被修改
chattr +i 文件名 通常用于锁定文件,被添加i属性的文件不能被更改,删除,重命名
-I 去掉i属性
chattr的拓展命令 - 查看文件权限时,有时会看到rwsrwxrwx ,s是什么
特殊位 suid 位于属主的执行位 suid是针对文件的特殊权限,被添加suid权限的文件,会使调用该文件的用户临时具有该文件属主的权限
例如,/root/1.txt,只有root用户才能用cat /root/1.txt进去查看该文件的内容,如果用普通用户登陆后也想用cat查看该文件,需要先使用root用户,利用chmod u+s /usr/bin/cat为cat文件添加suid权限,此时再用普通用户登陆,也可使用cat查看/root/1.txt,因为/usr/bin/cat文件的属主是root,该文件被添加了suid权限,所以普通用户调用cat时,会临时具备root的权限。
注意,使用完成后要及时chmod u-s 路径文件名 去掉suid权限
- 为什么系统默认的创建的文件的权限是644,创建的目录的权限是755?
进程掩码umask
新建文件和目录的默认权限受到umask的影响,umask表示权限要减掉的数字
输入“umask“查看系统当前的数值
文件夹的0777权限,对位分别减去0022 得到的数字就是0755,所以创建的文件夹默认权限为755
由于系统为了保护自己,所以创建文件的时候会自动去掉执行权限(1),所以文件的默认权限为644
chmod 7777 为什么权限数字有4位?
第一个数字“7“是文件的特殊位,也是4+2+1(分别对应属主,属组和其他人的执行位)
例如 chmod 7777 1.txt
chmod 4777 1.txt
chmod 2777 1.txt
chmod 1777 1.txt