sodu对的是某一用户提权,使那个用户能执行很多命令;
而操作suid是对命令减低权限,就是使一个本来要root才可以执行的命令,让每一个用户都可以执行了
-----------------------------------------------------
sodu提权的步骤:
首先要先找到sudoers,在/etc/下
可以在这里加进去要提权的用户,这里我就给h2和Bob提取了
Allow root to run any commands anywhere
root ALL=(ALL) ALL
h2 ALL=(ALL) ALL
Bob ALL=(ALL) ALL
# Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
然后我们也可以把要提权的用户加入wheel组内
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
[root@localhost ~]# usermod -aG wheel Bob
然后就可以在Bob下使用一些只有管理员root才可以使用的命令
[Bob@localhost ~]$ sudo useradd Bob1
[sudo] Bob 的密码:
[Bob@localhost ~]$
只要输入密码对了 就可以
如果没有在sudoers的用户或者没有在wheel组内的用户,用sudo会被报告的,也用不了高级命令
----------------------
错误例子:
但是有时候sudo也不起作用
[h1@localhost ~]$ sudo echo "123123" | passwd h1 --stdin
只有根用户才能进行此操作。
然后密码还是原来的密码,没改成。
是因为sudo放的地方不对,sudo应该加到后面的命令才对
[h1@localhost ~]$ sudo echo "123123" | sudo passwd h1 --stdin
更改用户 h1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
---------------------------------------------------------------------------------
suid
用法:让一个命令每个用户都可以用,通常对一些普通用户不能用的命令加s
首先第一步是找出命令的文件位置
[root@localhost ~]# which chmod
/usr/bin/chmod
然后chmod一下那个文件
[root@localhost ~]# chmod u+s /usr/bin/chmod
h1就可以用chmod了
[h1@localhost ~]$ chmod u+x /tmp/p1/
[h1@localhost ~]$
当-s权限之后就不行了,除非用sudo对用户提权
[h1@localhost ~]$ chmod u-s /usr/bin/chmod
[h1@localhost ~]$ chmod u+s /usr/bin/chmod
chmod: 更改"/usr/bin/chmod" 的权限: 不允许的操作
u+s之后执行者是root,而不是所在用户
----------------------------------------------------------------------------------------
sgid、继承父目录的属组
[root@localhost p1]# ll /tmp/
总用量 656
-rw-r--r--. 1 root root 15031 5月 12 20:01 anaconda.log
drwsrws---+ 5 h2 h2 4096 5月 16 20:52 p1
然后在里面创建文件的属组都会是父目录的属组了
[root@localhost p1]# mkdir pp
[root@localhost p1]# ll
总用量 76
drwxrwsr-x+ 2 root h2 6 5月 17 19:10 pp
但是在此目录以前就有的目录里面创建文件,属组不会受外面的sgid影响
[root@localhost p1]# cd ./p1/
[root@localhost p1]# mkdir pp
[root@localhost p1]# ll
总用量 72
drwxr-xr-x. 2 root root 6 5月 17 19:11 pp
但是在新的目录下建就会触发sgid的效果
drwxrwsr-x+ 2 root h2 6 5月 17 19:10 pp
[root@localhost p1]# cd ./pp/
[root@localhost pp]# mkdir ha?
[root@localhost pp]# ll
总用量 0
drwxrwsr-x+ 2 root h2 6 5月 17 19:13 ha?
---------------------------------------------------------------
然后sticky是有一个作业,就是谁建立谁删除
在/tmp下就是有这个规则
-rw-r--r--. 1 Bob Bang 13 5月 16 09:08 f1
[h1@localhost tmp]$ rm /tmp/f1
rm:是否删除有写保护的普通文件 "/tmp/f1"?y
rm: 无法删除"/tmp/f1": 不允许的操作
因为f1是属于Bob用户的