Shell脚本——su、sudo
· susu命令临时切换到root用户; su [option] [用户] 其中, -后接用户名,表示登录并切换到用户环境; -c后接命令,表示执行该命令再退出所切换的用户环境;
注: su表示切换到root用户,但不改变root登录环境; su -表示切换到root用户,并切换到root用户环境;
su命令的安全性低,使用sudo命令执行指定命令,此时输入的密码是用户自己密码,而非root用户密码;但并非所有用户都能使用sudo命令;
· sudosudo命令为非root用户赋予一些合理的权利,执行一些只有root用户才能执行的命令,以减少root用户的登录次数和管理时间,提高系统安全性; sudo执行命令的过程是当前用户切换到root用户,再以root用户执行命令,完成后直接退回到当前用户; 使用sudo的前提是通过sudo配置文件/etc/sudoers进行授权,可使用visudo命令编辑该配置文件;
一、一般用户赋权设置[root@localhost ~]# visudo ... 省略 ... ## Allow root to run any commands anywhere root ALL=(ALL) ALL ... 省略 ... 其中,第一个字段表示能使用sudo命令的用户;第二个字段中等号左边表示允许使用sudo的主机,括号里表示使用sudo后以什么身份执行命令;第三个字段表示允许sudo执行的命令; 在"root ALL=(ALL) ALL"下一行添加"twc ALL=(root) /usr/sbin/useradd",表示允许twc用户从任何主机登录,以root身份执行useradd命令;
二、sudo深入配置对于不同需求的用户,可按照一方法依次添加多行,每行对应一个用户;
1 多个用户的设置(非同一群组用户)对于相同需求的用户,可使用"User_Alias UUU=user1,user2,..."定义用户别名的方式; [root@localhost ~]# visudo ... 省略 ... # User_Alias ADMINS = jsmith,mikem User_Alisa sudouser=user1,user3,user4 ... 省略 ... ## Allow root to run any commands anywhere root ALL=(ALL) ALL sudouser ALL=(root) /usr/sbin/useradd ... 省略 ...
对于多个命令,可使用"Cmnd_Alias CCC=command1,command2,..."定义命令别名的方式; [root@localhost ~]# visudo ... 省略 ... ## Networking Cmnd_Alias NETWORKING = /sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool ... 省略 ... ## Allow root to run any commands anywhere root ALL=(ALL) ALL sudouser ALL=(root) NETWORKING ... 省略 ...
对于多个主机,可使用"Host_Alias HHH=host1,host2,..."定义主机别名的方式; 对于多个登录用户,可使用"Runas_Alias RRR=role1,role2,..."定义用户别名的方式;
2 多个用户的设置(同一群组用户)使用"%GROUP_NAME"作为允许使用sudo命令的用户; [root@localhost ~]# visudo ... 省略 ... ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL ... 省略 ...
注:若希望不需密码验证,则在允许sudo执行的命令前接"NOPASSWORD:" [root@localhost ~]# visudo ... 省略 ... ## Allows people in group wheel to run all commands %wheel ALL=(ALL) NOPASSWORD: ALL ... 省略 ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |