sudo
是Unix/Linux平台上的一个非常有用的工具用户也可以通过su切换到root用户运行命令。然而与su的启动一个root shell允许用户运行之后的所有的命令不同,sudo可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。sudo也可以用来以其他用户身份执行命令。此外,sudo可以记录用户执行的命令,以及失败的特权获取。
为什么使用sudo
sudo命令的使用方法
查看当前设置
命令 sudo -ll 可以显示当前的 sudo 配置
编辑配置文件
visudo调用的默认编辑器是vi。官方仓库里的 sudo 编译时开启了–with-env-editor,会采用环境变量 VISUAL 和 EDITOR的设置。如果设置了VISUAL 就不会使用EDITOR。如果要临时使用其他编辑器,在该命令前加上EDITOR环境变量即可。例如,要使用 nano,用root运行以下命令:
# EDITOR=nano visudo
- sudo的目的:赋予非root用户root权限
- 配置文件:/etc/sudoers(永远不要直接使用vi编辑)
- visudo命令编辑修改/etc/sudoers配置文件(建议使用,具有语法检查功能)
设置示例
chown -c root:root /etc/sudoers chmod -c 0440 /etc/sudoers期时间
不使用密码sudo
Allow root to run any commands anywhere root ALL=(ALL) ALL test ALL=(ALL) NOPASSWD:ALL #使用者帐号 可登入主机 可下达命令
语法解释:允许 test 用户来自任何主机登陆,不使用密码使用sudo命令。
visudo利用群组授权
[root@www ~]# visudo %test ALL=(ALL) ALL #在最左边加上 % ,代表后面接的是一个群组,格式和单用户授权一样 [root@www ~]# usermod -a -G testtest #<==将test 加入root 的组中 #任何加入test这个群组的使用者,就能够使用 sudo 切换任何身份来操作任何指令
多个用户的设置(非同一群组用户)
User_Alias UUU=user1,user2…… 定义用户别名;
20 # User_Alias ADMINS = jsmith, mikem //这个就是一个实例行,按照这个写自己的 21 User_Alisa sudouser=user1,user2,user3,user4 //第一一个别名suduouser ……后面省略
对于多个命令的设置:
Cmnd_Alias CCC=command1,command2…… 定义命令别名;
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dh client, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool //多个命令定义一个命令别名; ……后面省略
禁止直行某些命令
!command_to_run
username ALL = NOEXEC: /usr/bin/less #NOEXEC=!command_to_run
重复最后直行的命令
sudo !!
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208546.html原文链接:https://javaforall.net
