1,特殊权限SUID
举个例子:当我们使用普通用户oldxu执行passwd命令会发生什么变化呢?
1.由于passwd命令拥有suid特殊权限(在命令属主权限位有一个s)
2.所以passwd命令在执行的过程中,会以命令的属主身份去运行该命令。(也是root身份)
3.oldxu --执行--> passwd命令 --setuid--> 转换为命令属主身份root执行 --> 完成 /etc/shadow 信息变更
chmod 4755 chmod u+s
例子: jack --> /etc/shadow 文件:
1.jack执行cat命令查看 /etc/shadow;
2.cat是由jack运行的, 能不能查看,取决于 jack用户对 /etc/shadow 有没有权限;
3./etc/shadow默认任何人都无权限; 所以查看失败; 提示 Permission denied
解决:
方式1: sudo 提权
jack ALL=(ALL) /usr/bin/cat
方式2: 将cat命令添加特殊权限位 suid;
[root@oldboyedu ~]# ll /bin/cat
-rwxr-xr-x. 1 root root 54080 Aug 20 2019 /bin/cat
[root@oldboyedu ~]# chmod 4755 /bin/cat
[root@oldboyedu ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 54080 Aug 20 2019 /bin/cat
1.jack运行-->cat命令-->由于有特殊权限位suid, 所以cat命令不在是以jack的身份运行,而是由命令的属主身份运行
2.由于命令属主的身份是root,所以执行该命令时的身份是root;
3.root用户能够查看/etc/shadow文件, 所以jack用户执行cat命令会成功查看;
常规权限: 让jack这个普通用户为tom用户添加一个新的附加组;
jack --> usermod --> /etc/passwd /etc/shadow /home /var/spool/mail
特殊权限: 为useradd命令增加setuid
jack --> useradd --> root --> /etc/passwd /etc/shadow /home /var/spool/mail
[root@oldboyedu ~]# ll /sbin/useradd
-rwxr-xr-x. 1 root root 137616 Aug 9 2019 /sbin/useradd
[root@oldboyedu ~]# chmod 4755 /sbin/useradd
[root@oldboyedu ~]# ll /sbin/useradd
-rwsr-xr-x. 1 root root 137616 Aug 9 2019 /sbin/useradd
取消特殊权限:
[root@oldboyedu ~]# chmod 0755 /sbin/usermod
[root@oldboyedu ~]# ll /sbin/usermod
-rwxr-xr-x. 1 root root 133456 Aug 9 2019 /sbin/usermod
[root@oldboyedu ~]# chmod u-s /sbin/useradd
[root@oldboyedu ~]# ll /sbin/useradd
-rwxr-xr-x. 1 root root 137616 Aug 9 2019 /sbin/useradd
rm,vim,
suid:不可以对目录执行,他只针对二进制文件; 命令
setgid ( 了解 )
命令: 赋予setgid后, 任何用户在执行命令时,以这个命令的属组身份去运行;
目录: 赋予setgid后, 所有该目录下创建的文件,都按照属组的身份来;
用户 默认组 附加组
user1 user1 project
user2 user2 project
目录 /data/code 1.创建组, 以及用户 [root@oldboyedu ~]# groupadd project [root@oldboyedu ~]# useradd user1 -G project [root@oldboyedu ~]# useradd user2 -G project 2.创建项目目录,分配权限; 禁止其他人访问该目录,同时还要保证user1.user2能正常读写执行; [root@oldboyedu ~]# chown .project /data/code/ [root@oldboyedu ~]# chmod 770 /data/code/ [root@oldboyedu ~]# ll -d /data/code/ drwxrwx--- 2 root project 6 Mar 17 10:47 /data/code/ 3.给目录增加sgid; [root@oldboyedu ~]# chmod 2770 /data/code/ [root@oldboyedu ~]# ll -d /data/code/ drwxrws--- 2 root project 24 Mar 17 10:52 /data/code/ 4.user1创建文件.测试user2能否正常修改; [user1@oldboyedu code]$ touch user1_file [user1@oldboyedu code]$ ll total 0 -rw-rw-r-- 1 user1 project 0 Mar 17 10:54 user1_file 5.测试user2修改文件; 属性没有发生变化 [user2@oldboyedu code]$ echo "aaa" > user1_file [user2@oldboyedu code]$ cat user1_file aaa [user2@oldboyedu code]$ ll -d user1_file -rw-rw-r-- 1 user1 project 4 Mar 17 10:56 user1_file
setbit
1.服务初始化,会存储一些临时文件,而这个服务运行的身份不足以存储到/opt等这样的目录; /tmp目录 2.yum命令; /tmp chmod o+s /tmp chmod 1777 /tmp 特殊属性; chattr lsattr i: 中毒后;由于病毒文件会不断串改文件; 加锁让其无法篡改; a: append追加; 常用重要的日志文件加锁; # 查看特殊属性 [root@oldboyedu ~]# lsattr /etc/passwd ---------------- /etc/passwd # 加锁 [root@oldboyedu ~]# chattr +i /etc/passwd [root@oldboyedu ~]# lsattr /etc/passwd ----i----------- /etc/passwd # 测试 [root@oldboyedu ~]# mv /etc/passwd /tmp/ mv: cannot move ‘/etc/passwd’ to ‘/tmp/passwd’: Operation not permitted [root@oldboyedu ~]# rm -f /etc/passwd rm: cannot remove ‘/etc/passwd’: Operation not permitted
特殊属性chattr
chattr lsattr i: 中毒后;由于病毒文件会不断串改文件; 加锁让其无法篡改; a: append追加; 常用重要的日志文件加锁; # 查看特殊属性 [root@oldboyedu ~]# lsattr /etc/passwd ---------------- /etc/passwd # 加锁 [root@oldboyedu ~]# chattr +i /etc/passwd [root@oldboyedu ~]# lsattr /etc/passwd ----i----------- /etc/passwd # 测试 [root@oldboyedu ~]# mv /etc/passwd /tmp/ mv: cannot move ‘/etc/passwd’ to ‘/tmp/passwd’: Operation not permitted [root@oldboyedu ~]# rm -f /etc/passwd rm: cannot remove ‘/etc/passwd’: Operation not permitted
umask进程掩码:
1,umask是什么?
2,默认创建普通用户家目录的前线,又是受哪个配置文件的umask控制呢?
3,默认情况下root用户创建的文件权限和普通用户创建的文件权限不一样的?为什么?
判断: 如果用户的UID大于199 并且 用户名称与组的名称一致,则执行then后面的代码;设定umask为002 如果不满足条件,则执行else后面的代码; if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi
##################################
特殊权限:
suid:
执行时使用该命令的属主身份运行; chmod u+s chmod 4755
sgid:
文件: 执行时使用该命令的属组身份运行; chmod g+s chmod 2755
目录: 让创建的文件与目录的属组保持一致;
sbit:
粘滞位; 任何人都可以存储文件; 但只能自己删除; chmod o+s chmod 1755
服务初始化;
存储临时资源;
特殊的属性: chattr lsattr
+i: 锁住文件; 病毒的保护文件不被二次修改;
+a: 只允许追加; 重要的日志文件; 追溯事件产生的背景;
umask:
表示要减掉的权限; 默认系统的 目录权限是777 文件是666
默认权限 --> umask = 最终权限;
> >> | xargs
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/16503387.html