Linux root身份执行命令 sudo
sudo语法
sudo 命令
原有的Linux命令,前面加sudo,表示以root身份执行命令。
什么是root身份
无论su root还是su - root,两者都需要知道root用户的密码。太不安全了,root用户不会给密码给别人。
能不能让其他用户不知道root的密码,又有root的权限?
这就是sudo命令的目标。
实现步骤:
1)把指定用户加入到/etc/sudoers 文件(指定用户就能以root身份执行命令)。
3)指定用户执行高权限命令时,前面加sudo。
准备:高权限命令的执行
以普通用户xt1执行高权限命令,这里以systemctl为例
systemctl restart httpd
默认让用户选择使用哪种身份登录。Ctrl+C取消。
通过sudo命令执行
sudo加在原有命令之前,表示以root身份执行。
sudo systemctl restart httpd
这里要求输入的是xt1的密码。
输入后,提示xt1不在sudoers文件中。
步骤1:编辑/etc/sudoers配置用户
文件/etc/sudoers默认为只读文件
设置为仅root的读写权限
chmod 700 /etc/sudoers
编辑文件
vim /etc/sudoers
加入
xt1 ALL=(ALL) ALL
各种ALL表示所有权限。后续详细讲解。
看到这里,%wheel表示wheel组,明白管理员多牛了。
步骤2:sudo命令执行高权限命令
sudo systemctl restart httpd
需要输入xt1自身的密码。
执行成功。
免密执行sudo
加入NOPASSWD: ,如下
xt1 ALL=(ALL) NOPASSWD: ALL
冒号与后面的ALL有空格。
再次执行sudo,无提示
方法2:把用户加入到wheel组
加入附加组不管用,必须是主组。
usermod -g wheel xt1
设置xt1的组为管理员组wheel。
测试启动httpd服务,成功。