您的位置:首页 > 运维架构 > Linux

Linux特殊权限命令

2017-03-08 14:15 302 查看

Linux特殊权限命令

1.ACL权限:

文件就三个权限,所有者权限、组权限、其他权限
有时候不够用 这时候就需要ACL权限 用来解决用户身份不够的问题
1.查询acl权限是否开启dumpe2fs 根分区 dump2fs是查看分区文件的详细信息【选项 】-h 仅显示超级块中的信息,不现实磁盘块组的信息如果没有开启acl权限1> 使用mount 临时开启根分区的acl权限mount -o remount ,acl ///重新挂载根分区,加入acl权限2> 永久开启acl权限,要修改配置文件/etc/fstabUUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#启动是否需要检测) 1(#启动是否需要备份)#加入aclmount -o remount /#重新挂载文件系统或重启系统,使修改生效

查看和设定acl权限

getfacl 文件名 // 查看ACL权限setfacl 【选项】 文件名 //设置ACL权限
-m:设定ACL权限;
-x:删除指定的ACL权限;
-b:删除所有的ACL权限;
-d:设定默认ACL权限;
-k:删除默认ACL权限;
-R:递归设定ACL权限;
当我们的既不能是文件所有者,又不能是文件所属组的成员,又要具有和其他人不一样的权限使用ACL权限:将test文件的所有者为jianyin ,所属组为root,权限设为rwx r-x ---test用户要拥有r-x权限将test 移动到/home /。如果在/root的家目录下则user不能进入

最大有效权限和删除ACL权限:

mask是用来指定有效权限的,我们赋予用户ACL权限,需要与mask相与才能得到用户的真正权限设置masksetfacl -m m:权限setfacl -x u:user test //删除用户的acl权限setfacl -x g:user test //删除用户组的acl权限set facl -b test 删除所有权限

默认权限和递归权限:

递归权限:递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。(对已经建立的文件生效)//递归只能对目录设置,不能对文件setfacl -m u:user:rx -R test默认权限:父目录在设定ACL权限后,所有的子文件和子目录都会继承相同的ACL权限。(对新建立的文件生效)setfacl-m d:u:user:rx test

sudo权限

操作系统命令的权限把超级用户的命令赋予普通用户修改visudo添加用户以及操作授权用户可以添加用户

文件特殊权限:

SetUID(SUID)SetGID (SGID)Stickey BIT(SBIT)SUID:1.只有可执行的二进制文件才能设置可执行权限2.命令执行者对该文件有执行权限3.执行程序时获得该文件属主身份
4.权限只在执行程序过程中有效
ll /etc/shadow  #保存密码文件

----------. 1 root root /usr/bin/passwd  #只有超级用户才能改这个文件

但为什么自己能改自己的密码呢?

ll /etc/sbin/passwd

-rwsr-xr-x. 1 root root /usr/bin/passwd

这个指令有SetUID权限 执行的时候  自己的身份就会这个文件所有者身份 所以就能改密码了
那执行这条命令时,身份可以修改密码了 ,不就能修改其他用户的密码了吗?
实际上linux限制了 passwd后跟其他参数 会报只有根用户才能指定用户名称的错误
用户只能 passwd 直接回车  修改当前用户的密码
只有文件具有SetUID权限,命令执行时用户身份才会切换到文件所有者的身份 灵魂附体
SetUID权限只在该程序执行过程中有效,也就是说身份改变在程序执行过程中有效
设定SetUID的方法
代表SUID
chmod 4755 文件名
chmod u+s 文件名
u       g        o
+       +        +
s         s        s
=        =        =
SUID  SGID  SBIT

取消SetUID方法

chmod -755 文件名
chmod u-s 文件名
1.SetGID针对文件的作用
只有可执行二进制程序才能设定SGID权限
命令执行者要对该程序拥有x(执行)权限
命令执行执行程序时,组身份升级为该程序文件的属组
SetGID权限只在程序执行过程中有效

例子 、usr/bin/locate具有SetGID身份

2.SetGID针对目录的作用
普通用户必须对此目录必须拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组

3.设定SetGID
chmod g+s 文件名
chmod 2755 文件名

4.取消SetGID
chmod g-s 文件名
chmod 0755 文件名
危险的SetUID
1)危险目录应严格控制写权限。比如"/","/usr"等

e.g:
chmod u+s /etc/vi
vi /etc/shadow
这样用户就可以修改密码了

2)用户的密码设置要严格遵守密码三原则(复杂性、易记忆性、时效性)
对系统中默认应该具有SetUID权限的文件作一列表,定时
检查有没有这之外的文件被设置了SetUID权限,参考下面脚本
#!/bin/bash

find / -perm -4000 -o -perm -2000 > /tmp/setuid.check
#搜索系统系统中所有有SUID和SGID的文件,并保存到临时目录中

for i in $(cat /tmp/setuid.check)
#循环去除文件中的文件名

do

grep $i /root/suid.log > /dev/null
#比对这个文件名是否在模板文件中
if[ "$?" != "0" ]
#检测上一个命令的返回值,如果不成功,上面报错

then
echo "$i isn't in listfile!" >> /root/suid_log_$(data+%F)
#如果文件名在模板文件中,则输出错误信息,并把错误写到日志中

fi
done

rm -rf /tmp/setuid.check
3、SBIT粘着位作用
普通用户对该目录拥有w和x权限,即普通用户可以在此目录有写入权限
(注意:不建议手工建立拥有粘着位的目录)
如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。
一担赋予了粘着位,除了root可以删除所有文件,普通用户就算有w权限,也只能删除自己建立的文件,
但是不能删除其他用户建立的文件
设置粘着位

chmod 1755 目录名
chmod o+t 目录名

取消粘着位

chmod 0777 目录名

chmod o-t 目录名

linux不可改变位权限

chattr权限
选项具体解释
i   文件:文件所有操作都不可以执行
目录:目录不可新建和删除文件,但目录下文件可更改


a   文件:文件只能增加数据(不能用vi,可用“echo xxx >> 文件” 输出重定向),不能修改和删除数据
目录:只能在目录中建立和修改文件,不能删除
lsattr查看chattr属性查看目录要加-d选项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 命令 权限