Linux权限系列--给普通用户添加某个命令的sudo权限

原文网址:Linux权限系列--给普通用户添加某个命令的sudo权限_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍Linux系统如何给普通用户添加某个命令的sudo权限。

使用场景

普通开发者可能需要sudo的命令:

apt-get(经常要安装软件)
service
make install(经常要编译安装)

普通开发者不能有sudo权限的命令:

passwd(不能修改其他用户密码)
vi sudo/chown/chmod/chgrp(不能修改sudo,不能修改其他用户文件的访问权限)
ls/vim (不能查看和编辑其他用户目录和文件)

本文的目标

给普通用户(knife这个用户)添加如下几个命令的sudo权限:

  1. shutdown
  2. reboot
  3. 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权限 - 简书

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/128165781