sudo权限管理

为什么使用sudo?

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

sudo:  switch user do,

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

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

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

例如:

[[email protected] ~]$ 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:不用切换到某个用户,就可以用该用户来执行某个命令

例如:

sudo useradd aaa

sudo的配置文件/etc/sudoers

该文件权限为400

# 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身份执行所有命令,怎么写?

deploy   ALL=(ALL)       ALL

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

deploy   ALL=(ALL)       NOPASSWD: ALL

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

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

sudo在生产环境中的用法:

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

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

#useradd  deploy
#usermod -a -G wheel deploy

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

%wheel  ALL=(ALL)       NOPASSWD: ALL

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

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

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

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

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

设置该文件权限为440

时间: 2024-10-12 07:01:01

sudo权限管理的相关文章

关于linux系统sudo权限管理的相关问题

本人初学linux运维,在观看oldboy视频教程后,对学习到的知识进行总结,知识内容均出自oldboy视频教程. ######################################################################################### linux系统中,只有root用户才能添加和删除用户,而在工作中,假如有很多个运维工程师作为普通用户,我们希望一部分的普通用户可以实现只有在root用户下才能实现的操作,但不是能干所有root用能干的事儿

Linux sudo权限管理项目实战

企业生产环境用户权限集中管理项目方案 问题现状当前我们公司里服务器上百台,各个服务器上的管理人员很多(开发+运维+架构DBA+产品+市场),在大家登录使用Linux服务器时,不同职能的员工水平不同,因此导致操作系统很不规范,root权限泛滥(几乎大部分人员都有root权限),经常导致文件等莫名其妙的丢失,老手和新手员工对服务器的熟知度也不同,这样使得公司服务器安全存在很大不稳定性.及操作安全隐患,据调查企业服务器环境,50%以上的安全问题都来自于内部,而不是外部.为了解决以上问题,单个用户管理权

sudo 权限的管理

一.sudo执行命令的流程将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户.具体工作过程如下:当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限-->确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认-->若密码输入成功,则开始执行sudo后续的命令 二.不需要输入密码的情况1.root执行sudo时不需要输入密码(eudoers文件中有配置root

linux笔记:权限管理-sudo

sudo可以将只有root可以使用的命令授权给普通用户: 授权的过程实际是修改配置文件: 授权示例: 普通用户使用sudo权限的示例:

第7章 权限管理(3)_文件系统属性和sudo权限

3. 文件系统属性chattr权限 (1)chattr命令 命令格式: #chattr [+-=][选项] 文件或目录名 +.-.= 分别表示增加权限.删除权限和赋于某种权限 选项 i:主要用来防止对文件或目录误操作.如果对文件设置i属性,那么不允许对文件进行删除.改名,也不能添加和修改数据:如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件.(注意,这里的设置对root也同样起作用) a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据:如果对

linux用户管理(2)----修改用户模式(usermod,sudo权限等)

修改使用者模式可以使用usermod命令实现. 一.usermod常用命令介绍: -a:              仅和-G一块使用,将用户添加到附属组群. -d:          修改用户登入时的目录,例如一般的用户登录时,默认进入预先设定的主目录,某些时候为了方便登录时就需要进入比较复杂的路径时,可以使用这个选项设置进入时目录. -g:           修改用户所属群组. -G:           修改用户所属的附加群组:在改变用户sudo权限时就可以使用这个选项. -s:    

【CentOS】Linux sudo权限集中管理案例

目的 使得公司的Linux系统权限管理更规范,让每个用户拥有自己所该有的权限,防止因为某些用户的权限过大后的一些误操作,导致服务器的不正常运行. 操作 1.编辑Linux系统中的sudoers文件 [[email protected] ~]# vim /etc/sudoers #Edit by root User_Alias NETMAN = net01, net02 #用户别名 User_Alias ADMIN = admin01, admin02 User_Alias SA = %sa #定

centos 6.x 7.x 批量添加用户 开启sudo 权限 并设置密匙登录

需求背景: 局域网内全公司有50余台Linux服务器,现在有两个运维人员,之前都是使用root账号登录来管理服务器,现在想在每台服务器添加各自的账号,开启sudo权限,并设置密钥登录(密钥提前准备好了). 需求分析: 功能其实很简单,但是如果逐一登录服务器去配置,一台服务器5分钟,50台我已经不敢想象了--,所以想办法弄得简单些. 搭建简单ftp服务器: 本机利用IIS建立一个ftp服务器,把shell脚本,和管理员公钥放进去,注意允许ftp通过防火墙(详细步骤略)5分钟内可以完成本步骤:浏览器

Linux用户配置sudo权限(visudo)

sudo的工作过程如下: 1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限 2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认 3,若密码输入成功,则开始执行sudo后续的命令 4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则) 5,若欲切换的身份与执行者的身份相同,也不需要输入密码 visudo使用vi打开/etc/sudoers文件,但是在保存退出时,