ll
文件类型
首位数字
- d是目录文件
- l 是软链接文件
- -是普通文件
- p是管道
9位数字
三个为一组,当前用户(u):所属用户组(g):其它用户(o)
r—可读
w—可写
x—可执行
服务器为用户严格定义权限等级
基本原则:在最小权限下实现要求即可
权限对文件的作用
r (cat more head tail)
w(vi echo):但是不包含删除文件(目录有写权限,才能操作文件)
权限对目录的作用
r 可以查询目录下的文件名(ls)
w 具有修改目录结构的权限,创建文件,目录;删除,更改名称(touch rm mv cp )
x 可以进入目录 (cd)
对文件来讲最高权限是x
对目录来讲最高权限是w,0,5(rx),7(rwx)
chmod [选项] 模式 文件名
//选项
-R 递归
//模式
chmod u+x 文件名 //赋予所有者执行权限的命令
chmod g+w,o+w 文件名 //赋予所属组和其它用户写权限
chmod u-x,g-w,o-w 文件名 //减权限
chmod u=rw,g=rwx,o=r 文件名
chmod a=rw //暴力执行三组权限
选择了暴力的为所有用户分配读权限
chmod =r file;
chmod 777 file;
rwx : 111 = 7
rw- : 110 = 6
r-x : 101 = 5
...
//可读,可写,可执行的十进制表示
r-- : 100 = 4
-w- : 010 = 2
--x : 001 = 1
可以分别将读4,写2,执行1,按照不同的组合相加
譬如
rw- 数字6
r-x 数字5
...
777 最高权限
644 文件权限,用户可读写,其它用户可读
755
chown 用户名 文件名
chown 用户名:用户组 文件名 (change owner)
chgrp 用户组 文件名
umask //查看默认权限
0022
第一位:文件的特殊权限
022:文件默认权限
文件默认不能建立执行文件,必须手动赋权限
文件默认权限最大为666
换算成字母
比如:
-rw-rw-rw 减去 —–w–w-
umask 0033 临时生效
最大权限是777
vim /etc/profile 永久更改
一个文件 所有者:所属组:其它
ACL解决了用户身份不够的情况,一个文件的另一个所有者
查看分区ALC权限是否开启
dumpe2fs -h /dev/分区(sda1,sda2,sdb1...)
//重新挂载根分区,临时生效
mount -o remount, acl /
//永久生效
vim /etc/fstab
getfacl 文件名 // 查看ACL命令
setfacl 选项 文件名
//添加ACL权限 选项[-m]
setfacl -m u:用户名:权限(rx,...rw) 文件
//最大有效权限
mask::rwx
真正的权限=自己赋予的权限 && mask (逻辑与)
//设定mask
setfacl -m m:rx 文件
setfal -x u:用户名 文件 //删除用户的ACL权限
setfal -b 文件名 //删除文件所有的ACL权限
//递归权限,只能赋予目录
-R
权限溢出
执行x对目录,文件的不同作用
默认ACL,父目录赋予ACL权限之后,所有新建的文件都应该有ACL权限
setfacl -m d:u:用户名:权限 -R 文件路径
(可以赋予文件)
操作对象是系统命令,本来只有超级用户执行的命令赋予普通用户执行
visudo // 实际是/etc/sudoers
root ALL=(ALL) ALL
用户名 被管理者主机的地址=(可使用的身份)授权命令(绝对路径)
//授权普通用户可以重启服务器
//命令写的越简单,普通用户的权限越大,越详细,受到的限制就越大
usr1 ALL = /sbin/shutdown -r now
su - 用户名 //切换用户
sudo -l 查看可用的sudo命令
//授权普通用户可以添加其他用户
whereis useradd
用户名 ALL=/usr/sbin/useradd
//授予用户设定密码的权限
用户名 ALL=/usr/bin/passwd
//不能设定root密码设定
ALL=/usr/bin/passwd [A-Za-z]*,[空格]!/usr/bin/passwd ""(passwd后不能为空), !/usr/bin/passwd root(passwd 不能root) //坑死 用户名 ALL=/bin/vi sudo /bin/vi /etc/shadow 可以以root身份查看shadow文件,导致一般用户篡改文件
umask的第一位数字
只有可执行的二进制程序才能设定SUID权限
命令的执行者要对该程序拥有x权限
passwd默认有SUID权限,任何用户对于它都有执行权限(后一个r-x)
灵魂附体,普通用户变成文件所有者身份
2.setGID
3.Sticky BIT
参考资料
1.Linux chmod命令详解
2.慕课网—Linux权限管理