文件权限
基本文件权限ugo
UGO权限对文件或目录的意义
对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)
ls -l 命令或者 ll 命令可以查看文件权限
[root@x2 /]# ll
总用量 28
drwxr-xr-x 6 root root 4096 1月 27 19:40 addme
u--->属主权限:rwx
g--->属组权限:r-x
o--->其他人权限:r-x
r:读权限,用数字4表示
w:写权限,用数字2表示
x:执行权限,用数字1表示
其中d代表文件addme为一个目录(文件夹)root root 前面的
root为文件addme的属主,后面的root为addme的属组
设置文件权限
chown:设置文件属主,属组(更改文件属主或者属组)。属主属组之间的分隔符可以用:或者.
例:chown root.root addme
给文件设置属主为root属组为root
chmod:设置文件属主属组和其他人权限
1、chmod a+rwx addme (给文件属主属组和其他人设置权限都为rwx,即rwxrwxrwx,a代表全部,如果改为u+rwx,g+rwx,o+rwx也可以,可以单独给ugo加单独的权限,例如u+r)
2、chmod u=rw addme (给文件的所属组设置rw读写权限,)
3、chmod 763 addme(7代表4+2+1,即rwx读写执行权限;6代表4+2,即读和写权限;3代表2+1写和执行权限)
umask掩码
root用户默认最高权限
目录---777 文件---666
查看umask
[root@qfedu.com ~]# umask
0022 root账户默认
0002 普通用户默认
通过计算: 默认权限-umask码 得出root用户创建目录和文件的权限为:
也是现在root用户创建完目录和文件的默认权限:
目录:755
文件:644
修改umask
[root@qfedu.com ~]# umask 0111
高级权限
#高级权限的类型
suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
作用:让普通用户临时拥有该文件的属主的执行权限,suid权限只能应用在二进制可执行文件(命令)上,而且suid权限只能设置在属主位置上。
sgid ==== 2 继承属组权限 (只能对目录设置)
作用:任何用户在该目录下创建的文件的属组都会继承该目录的属组
sticky == 1 (t权限) 权限控制
作用:sticky权限一般针对目录来设置,作用是只允该目录下的文件的创建者删除自己的创建的文件,不允许其他人删除文件。(root用户除外,因为root用户是超级管理员),而且sticky权限只能设置在other位置上。
设置高级权限
1、第一种方法
chmod u+s 文件名 (二进制,可执行的命令文件,使其他用户可执行命令,相当于提权 )
chmod g+s 文件名 (针对目录,使在该目录下创建的文件都能继承该目录的属组)
chmod o+t 文件名 (针对目录,使用户在该目录创建的文件或删除文件时,智能操作自己的文件,不能删除其他人的文件)
2、第二种方法
chmod 4777 文件名 (即u+s)
chmod 2777 文件名 (即g+s)
chmod 1777 文件名 (即o+t)
文件提权
第一种提权方式:chmod u+s 文件名 通常用来给某个命令提权,让用户拥有该命令的执行权限
第二种方式:visudo进入编辑,找到root ALL ALL行,在下面添加
用户名 ALL NOPASSWD:ALL
例:[root@linux-server ~]# visudo
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD:ALL
NOPASSWD的作用为取消每次执行命令都需要输入密码
第三种方法:给个别用户提权,设置访问权限ACL
setfacl 针对个人设置权限
getfacl 查看权限
例:[root@xiaoming tmp]# ll
-rw-r--r-- 1 root root 0 11月 26 11:25 a.txt
如果希望只有xiaoming用户可以rwx操作/tmp/a.txt文件
那么我们可以这样做
setfacl -m u:xiaoming:rwx /tmp/a.txt
-m 设置facl权限
u: 用户,也可以指定组 g
xiaoming: 需要指定的用户
rwx: 权限
[root@xiaoming /tmp]# getfacl a.txt #查看权限设置
user:xiaoming:rwx