sudo权限管理

简介:

为什么使用sudo?

通常生产服务器会有多个用户或者部门需要登录和操作,如运维部门和开发部门。所以一般不会使用root的账号密码来操作,因为如果大家都知道root的密码非常不安全,万一哪天谁更改了root密码,就比较麻烦,但是呢,我们又必须给用户执行权限。那么我们必须用sodu来解决这一问题。


sudo:  switch user do,

 某个用户能够以另外一个用户的身份通过某主机执行某命令,但是执行命令前必须输入自己账户的密码

    -k:kill,让此前输入的认证信息失效,并重新认证。默认情况下,当用户执行sudo 命令后,5分钟内不用再次输入自己的密码

     -l:列出当前用户可以使用的所有sodu命令

例如:

1
2
3
[deploy@ZabbixServer ~]$  sudo  -l
User deploy may run the following commands on this host:
     (ALL) NOPASSWD: ALL, (ALL) ! /usr/bin/passwd  root

上面表示用户deploy除了 更改root密码外,其他命令都能操作。


sudo 命令使用方法:

sudo COMMAND:不用切换到某个用户,就可以用该用户来执行某个命令

例如:

1
sudo  useradd  aaa


sudo的配置文件/etc/sudoers

该文件权限为400

1
2
# ls -l /etc/sudoers
-r--r----- 1 root root 4059 Aug 24 07:53  /etc/sudoers

visudo :不用加任何参数,专门用来编辑/etc/sudoers这个文件,只有root用户有权限


一个sudo条目的格式:

who                  which_host=(run as )                              command

谁                    从哪台主机远程连上来   以谁的身份           执行什么命令

上面的who也可以是组名,但是组名前需要加‘%’,例如%wheel



练习:

例如:允许deploy用户以root身份执行所有命令,怎么写?

1
deploy   ALL=(ALL)       ALL


如果希望deploy用户执行命令时不需要输入密码怎么写?

1
deploy   ALL=(ALL)       NOPASSWD: ALL


如果希望deploy用户能执行所有命令,但是不能更改root密码,不能切换到root用户,怎么写?

1
deploy  ALL=(ALL)       NOPASSWD: ALL,! /usr/bin/passwd  root,! /bin/su


sudo在生产环境中的用法:

生产环境中每个用户都有自己的登录账号,例如:user1、user2等。我们允许wheel组的用户能执行所有命令,而deploy用户属于这个组。然后我们只需要赋予user1、user2 切换到deploy用户的权限即可。


过程如下:  创建deploy用户,并加入wheel组

1
2
#useradd  deploy
#usermod -a -G wheel deploy


编辑/etc/sudoers文件,赋予wheel组用户执行所有命令的权限

1
%wheel  ALL=(ALL)       NOPASSWD: ALL

最好是禁止wheel组用户切换到root用户、更改root密码、执行visudo命令的权限,所以可以这样设置

1
%wheel  ALL=(ALL)       NOPASSWD: ALL,! /usr/bin/passwd  root,! /bin/su ,! /usr/sbin/visudo


然后赋予用户user1切换到deploy用户的权限

在/etc/sudoers.d目录下,创建一个文件,文件名可以是用户名,在该文件中写入以下内容

1
2
# cat /etc/sudoers.d/user1 
user1  ALL=NOPASSWD: /bin/su  - deploy

设置该文件权限为440











本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1842926,如需转载请自行联系原作者

目录
相关文章
|
数据安全/隐私保护
39Linux - 用户/权限管理(为创建的普通用户添加sudo权限)
39Linux - 用户/权限管理(为创建的普通用户添加sudo权限)
69 0
|
2月前
|
数据安全/隐私保护
JumpServer的权限管理
文章介绍了JumpServer的权限管理操作,包括如何创建授权规则和验证授权是否成功。
72 1
|
3月前
|
Linux 开发工具 数据安全/隐私保护
在Linux中,如何添加和管理用户账户以及如何设置sudo权限?
在Linux中,如何添加和管理用户账户以及如何设置sudo权限?
|
3月前
|
安全 Linux 网络安全
如何在 Debian VPS 上添加、删除和授予用户 sudo 权限
如何在 Debian VPS 上添加、删除和授予用户 sudo 权限
65 0
|
6月前
|
Shell Linux
用户权限提升Sudo
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。换句话说通过此命令可以让非root的用户运行只有root才有权限执行的命令。
93 0
|
Shell Linux 数据安全/隐私保护
Linux权限管理(4)sudo权限
学习 sudo 权限前,先了解一下当用户第一次使用sudo权限时CentOS的系统提示 我们信任您已经从系统管理员那里了解了日常注意事项。 总结起来无外乎这三点: #1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大,责任越大。
|
Web App开发 分布式计算 Hadoop
|
Linux 数据安全/隐私保护 Perl
下一篇
无影云桌面