sudo指令

su 和 sudo 对比:
su的优缺点:
优点:平时使用普通用户管理操作系统,降低误操作几率,需要时su切换到root。
缺点:su用户身份的切换,普通管理员要使用root的权限必须知道root的密码,这样会造成很多普通用户需要知道root的密码,导致系统的安全性降低。
sudo的优缺点:
优点:sudo可以为普通用户赋予一定权限,使普通用户能使用一些root才能执行的命令和操作,来完成正常的服务器管理工作。这种按需分配权限的方式可以让我们工作在一个相对安全的环境下,并且普通用户不需要知道root的密码。
缺点:需要提前做好用户管理规划,权限规划等等
sudo的使用方式 是在sudo后加上需要执行的命令。
sudo执行流程如下:
1.当用户执行sudo时系统会在/etc/sudoers文件中查找该用户是否有执行sudo的权限
2.若用户具有执行sudo的权限后,系统会让用户输入自己的密码来确认
3.密码输入成功,开始进行sudo后续的命令。但root执行sudo不需要输入密码(如果切换的用户与执行者的身份相同也不用输入密码)
因为在sudo执行的时候要去检查/etc/sudoers文件,所以先要对/etc/sudoers文件进行修改,让该账号能够使用全部或部分的root命令功能。(可以用visudo命令打开文件进行修改,在退出时如果有语法错误会提示)
例:

格式为:用户账号 登录者的来源主机名=(可切换的身份) 可执行的命令
所以上面两行的意思是:
1.用户账号:系统默认为root可以使用sudo命令
2.可以被管理的服务器的网络地址,写自己或者ALL代表任何来源地址都可以管理本台服务器
3.可切换身份:这个账号可以切换成什么身份来执行后续的命令
4.可执行的命令:命令必须写绝对路径【命令间用,隔开;!代表取非】
ALL:代表任何身份,任何主机,任何命令
别名机制:
User_Alias HF2045 = zhangsan,lisi,laow,laos,laol
Cmnd_Alias HF_COMMAND = /usr/bin/id,/usr/bin/passwd
被授权者 借用身份 可执行命令
HF2045 ALL=(root) HF_COMMAND
修改完成后切换用户查看sudo命令效果: (添u1用户)

#(在用sudo命令之前,想要查看/etc/shadow文件显示权限不够。在前边添加sudo命令,输入u1用户密码后,成功查看/etc/shadow文件内容)
在/etc/sudoers配置文件中,也可以添加授权组使用sudo命令:

#(在本机中还有u2用户,默认组为u2。添加组的时候在组名添加%即可。之后保存退出。)

#(用户为u2,组为u2组使用sudo命令查看/etc/shadow文件,命令执行成功)
例:给user1用户授权重启命令,创建用户命令和修改用户密码命令。

#(授权user1用户拥有重启服务器,更改密码,创建用户的权限,但是隐患是被授权的 user1用户可以用此命令修改root密码)

#(在修改密码命令之后添加了!/usr/bin/passwd"",!/usr/bin/passwd root)
第一条,不能用passwd给“”(空)改名。
第二条,/usr/bin/passwd改名对象不能是root。
sudo和su命令的组合使用:

可以让u1不知道root用户密码的情况下使用“sudo su - root”切换用户身份至 root。
sudo会以root身份执行,而root使用su - 命令不需要输密码,所以sudo su - (root可省)切换到root用户。

posted @ 2021-03-09 19:04  风雪一刀藏  阅读(906)  评论(0编辑  收藏  举报