原文网址:Linux权限系列--给普通用户添加某个命令的sudo权限_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍Linux系统如何给普通用户添加某个命令的sudo权限。
使用场景
普通开发者可能需要sudo的命令:
apt-get(经常要安装软件)
service
make install(经常要编译安装)
普通开发者不能有sudo权限的命令:
passwd(不能修改其他用户密码)
vi sudo/chown/chmod/chgrp(不能修改sudo,不能修改其他用户文件的访问权限)
ls/vim (不能查看和编辑其他用户目录和文件)
本文的目标
给普通用户(knife这个用户)添加如下几个命令的sudo权限:
- shutdown
- reboot
- halt
步骤
切换到root用户下
在命令行输入:su,回车,然后输入密码(即你的登录密码,且密码默认不可见)。
给/etc/sudoers增加写权限
sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,执行下面命令:
chmod u+w /etc/sudoers
编辑sudoers文件
执行下面命令:
vi /etc/sudoers
在文件最后添加配置(这里knife是你的用户名):
knife ALL=(ALL:ALL) NOPASSWD: /sbin/shutdown,/sbin/reboot,/sbin/halt
注意:必须放在文件最后,这样才能保证有效,否则可能被其他的组的配置给影响。
如下:
撤销sudoers文件写权限
chmod u-w /etc/sudoers
测试
切换到knife用户
su knife
执行shutdown命令
sudo shutdown
结果:
sudoers的权限含义
用户的权限
# 允许用户myUser使用sudo执行命令(需要输入密码)。
myUser ALL=(ALL:ALL) ALL
# 允许用户youuser使用sudo执行命令,并且在执行的时候不输入密码。
myUser ALL=(ALL:ALL) NOPASSWD: ALL
组的权限
# 允许用户组myUser里面的用户使用sudo执行sudo命令(需要输入密码)。
%myUser ALL=(ALL) ALL
# 允许用户组myUser里面的用户使用sudo执行命令,并且在执行的时候不输入密码。
%myUser ALL=(ALL) NOPASSWD: ALL
示例
root ALL=(ALL:ALL) ALL
上面的配置表示: root 用户可以在 任意机器 上以 任意用户 和 任意用户组 的 任意组合 执行 任意命令。
- root:用户 (%admin 表示 用户组)
- ALL=:所有 host (sudoers 配置可能被用到多台机器上)
- ALL::任意 用户
- :ALL:任意 用户组
- ALL:任意 命令
其他网址
linux给普通用户添加sudo权限 - 简书