Linux--sudo权限讲解



sudo简介:sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的

基本操作

[[email protected] /]# useradd Daniel #创建一个用户
[[email protected] /]# passwd Daniel  #设置密码
[[email protected] /]# su Daniel  #切换用户到Daniel
bash-4.1$  #切换成功 

#给权限
#Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
#使用权限:在 /etc/sudoers 中有出现的使用者。这里可以直接修改sudoers,也可以额使用visudo,推荐使用visudo,可以判断你的语法是否正确

[email protected] /]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
Daniel  ALL=(ALL)       ALL       #这是我们新添加的一行,意思是Daniel这个用户,可以使用所有的命令,使用单个命令(比如useradd),可以将ALL改成/user/sbin/add

#测试
-bash-4.1$ ls /root/
ls: 无法打开目录/root/: 权限不够
-bash-4.1$ sudo ls /root/
[sudo] password for Daniel:    #sudo后输入Daniel的密码即可
anaconda-ks.cfg  install.log  install.log.syslog

#现在让我们来看一下那三个ALL到底是什么意思。第一个ALL是指网络中的主机,可以将它改成localhost=,它指明foobar可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了。例如,我们想让Danielr用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件:
Daniel   linux=(jimmy,rene)    /bin/kill
#但这还有个问题,Daniel到底以jimmy还是rene的身份执行?这时我们应该想到了sudo -u了,它正是用在这种时候。 Daniel可以使用sudo -u jimmy kill PID或者sudo -u rene kill PID,但这样挺麻烦,其实我们可以不必每次加-u,把rene或jimmy设为默认的目标用户即可。再在上面加一行:
Defaults:foobar    runas_default=rene
Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行:
Defaults    env_reset

  

别名

#别名类型
1)Host_Alis定义主机别名
Host_Alias    WEBSERVERS = web1, web2  #WEBSERVERS是主机组,web1,web2是主机 #每个主机使用逗号分隔逗号后面有空格,=号两边也有空格,主机组就是别名,可以用这个别名来限制,主机就是在第一个ALL位置,可以定义很多这样的别名,每个别名可以当做一个主机组,平常很少用到
#正在生产场景中,一般情况不需要设置主机别名,在定义授权规则时可以通过ALL来匹配所有的主机

2)User_Alias定义用户别名
#别名成员可以是用户,用户组(用户组前面要加%号)
User_Alias ADMINS = Daniel, qwer, %groupname
#假如说用户Daniel,qwer和用户组%groupname都有一样的权限,那么直接就可以使用别名ADMINS限制了,后期如果要增加一个同样权限的用户或组,直接在后面加上即可
#引用位置Daniel ALL=(ALL)  ALL ALL #Daniel就是用户别名的引用位置

3)Runas_Alias定义runas别名
#这个别名指定的是“用户身份”,即sudo允许切换到的用户
#Runas-Alias定义的是某个系统用户可以执行sudo切换身份到Runas_Alias下包含的成员身份
#语法
Runas_Alias OP = root
#引用位置:括号里的那个ALL。表示使用sudo的时候是使用的OP身份来使用的(也就是root)

4)Cmnd_Alias定义命令别名
#命令别名就是定义一个可以把汗一对命令的名字
Cmnd_Alias  NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /usr/bin/net, /sbin/iptables
#引用位置:最后一个ALL。定义完成后,可以放在最后一个ALL位置,授权后,该用户或组就可以通过sudo来使用这些命令了

#完整定义
#User_Alias by Daniel
User_Alias    ADMINS = admin, Daniel, %admins
User_Alias    NETADMINS = netadmin, %netadmins
User_Alias    USERADMINS = useradmin

#Cmnd_Alias by Daniel
Cmnd_Alias    USERCMD = /usr/sbin/useradd, /usr/sbin/userdel, /user/bin/passwd [A-Za-z]*, /bin/chown, /bin/chmod
Cmnd_Alias    DISKCMD = /sbin/fdisk, /sbin/parted
Cmnd_Alias    NETCMD  = /sbin/ifconfig, /etc/init.d/network
Cmnd_Alias    CTRLCMD = /usr/sbin/reboot, /usr/sbin/halt

Runnas_Alias    OP = root, Daniel

##
ADMINS    ALL=(ALL)    USERCMD, NETCMD, CTRLCMD
NETADMINS    ALL=(OP)    NOPASSWD: NETCMD
USERADMINS    ALL=(OP)    NOPASSWD:  USERCMD #NOPASSWD,表示输入完一次后不需要在输入密码了,默认是输入完毕后,五分钟内不需要在输入

  



  

原文地址:https://www.cnblogs.com/wazy/p/8352369.html

时间: 2025-01-31 08:28:45

Linux--sudo权限讲解的相关文章

【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 #定

Linux sudo权限管理项目实战

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

Linux 用户组权限讲解

用户分类 用户分类 管理员 ID 0 普通用户 ID 1-65535 系统用户 ID centos7:1-999 centos6: 1-499 登入用户 ID centos7:1000-60000 centos6 500-60000 用户信息表 /etc/passwd 组 组 管理员组 gid 0 普通用户组 gid 1-65535 系统用户组:gid 1-499(CentOS6), 1-999(CentOS7) 登录用户组:gid 500-60000(CentOS6), 1000-60000(

Linux给用户添加sudo权限

linux给用户添加sudo权限: 有时候,linux下面运行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be reported. 这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决: 进入超级用户模式.也就是输入" su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(当然,你也可以直接用root用) 添加文件的写权限.也就是输入命令" chmod

Linux给普通用户添加sudo权限

在Linux中,root用户权限是最高.操作起来也是最危险的用户. 因此,我们平常都通过普通用户来管理Linux,当我们成功创建好一个普通用户之后,就需要为此添加sudo权限. 本文就教大家在Linux系统中,如何给普通用户添加sudo权限. 1.如果当前用户为root用户,请跳过本步骤.否则进入root用户. 即输入命令:"su" 2.给/etc/sudoers配置写权限. 输入命令"chmod u+w /etc/sudoers" 3.编辑/etc/sudoers

04.给linux用户添加sudo权限

linux给用户添加sudo权限: 有时候,linux下面运行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be reported. 这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决: 进入超级用户模式.也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(当然,你也可以直接用root用) 添加文件的写权限.也就是输入命令"chmod u+

linux给用户添加sudo权限:

root用户对于linux就是万能的天神,任何文件都能进入,任何文件都能修改,对我们这些菜鸟实在是危险啊 所以有些时候就需要给用户sudo权限 进入超级用户模式.也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(当然,你也可以直接用root用)添加用户的sudo权限就是在/etc/sudoers文件中添加ouyangjun ALL=(ALL) ALL 这样的一句话此文件默认所有者只有r的权限,所以在修改之前需要添加W的权限chmod u+w /etc

Linux给用户增加sudo权限

有时候我们在Linux下执行sudo的时候,出现 xxx is not int the sudoers file 告诉我们当前用户不是sudoer,所以我们要把当前用户添加进去,步骤如下: 1.进入超级用户模式,也就是 'su -' 命令,输入超级用户密码.(也就是root用户) 2.编辑sudoers文件,增加用户sudo权限 >  vim /etc/sudoers  或  visudo 进入编辑模式,增加"xxx ALL=(ALL) ALL"(这里的xxx是需要增加sudo的

linux给用户加入sudo权限

linux给用户加入sudo权限: 有时候,linux以下执行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be reported. 这里,xxx是username称.然后导致无法运行sudo命令,这时候,例如以下解决: 进入超级用户模式. 也就是输入"su -",系统会让你输入超级用户password,输入password后就进入了超级用户模式.(当然.你也能够直接用root用) 加入文件的写权限.也

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

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