Linux--sudo权限讲解
sudo简介:sudo是linux系统管理指令,是允许让普通⽤户执⾏⼀些或者全部的root命令的⼀个⼯具,如halt,reboot,su等等。这样不仅减少了root⽤户的登录和管理时间,同
样也提⾼了安全性。sudo不是对shell的⼀个代替,它是⾯向每个命令的
基本操作
[root@localhost /]# uradd Daniel #创建⼀个⽤户
[root@localhost /]# passwd Daniel #设置密码
[root@localhost /]# su Daniel #切换⽤户到Daniel
bash-4.1$ #切换成功
#给权限
#Linux sudo命令以系统管理者的⾝份执⾏指令,也就是说,经由 sudo 所执⾏的指令就好像是 root 亲⾃执⾏。
#使⽤权限:在 /etc/sudoers 中有出现的使⽤者。这⾥可以直接修改sudoers,也可以额使⽤visudo,推荐使⽤visudo,可以判断你的语法是否正确
root@localhost /]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Daniel ALL=(ALL) ALL #这是我们新添加的⼀⾏,意思是Daniel这个⽤户,可以使⽤所有的命令,使⽤单个命令(⽐如uradd),可以将ALL改成/ur/sbin/add
#测试
-bash-4.1$ ls /root/
ls: ⽆法打开⽬录/root/: 权限不够caption
-bash-4.1$ sudo ls /root/
[sudo] password for Daniel: #sudo后输⼊Daniel的密码即可
4级多少分过anaconda-ks.cfg install.log install.log.syslog
#现在让我们来看⼀下那三个ALL到底是什么意思。第⼀个ALL是指⽹络中的主机,可以将它改成localhost=,它指明foobar可以在此主机上执⾏后⾯的命令。第⼆个括号⾥的ALL是指⽬标⽤户,也就是以谁的⾝份去执⾏命令。最后⼀个ALL当然就是指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_ret
别名
#别名类型
1)Host_Alis定义主机别名
Host_Alias WEBSERVERS = web1, web2 #WEBSERVERS是主机组,web1,web2是主机 #每个主机使⽤逗号分隔逗号后⾯有空格,=号两边也有空格,主机组就是别名,可以⽤这个别名来限制,主机就是在第⼀个ALL位置,可以定义很多这样的#正在⽣产场景中,⼀般情况不需要设置主机别名,在定义授权规则时可以通过ALL来匹配所有的主机
2)Ur_Alias定义⽤户别名英语话题作文
trackingnumber#别名成员可以是⽤户,⽤户组(⽤户组前⾯要加%号)minimum是什么意思
Ur_Alias ADMINS = Daniel, qwer, %groupname
#假如说⽤户Daniel,qwer和⽤户组%groupname都有⼀样的权限,那么直接就可以使⽤别名ADMINS限制了,后期如果要增加⼀个同样权限的⽤户或组,直接在后⾯加上即可
#引⽤位置Daniel ALL=(ALL) ALL ALL #Daniel就是⽤户别名的引⽤位置
3)Runas_Alias定义runas别名
#这个别名指定的是“⽤户⾝份”,即sudo允许切换到的⽤户
lacros怎么读#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来使⽤这些命令了
#完整定义
#Ur_Alias by Daniel
Ur_Alias ADMINS = admin, Daniel, %admins
Ur_Alias NETADMINS = netadmin, %netadmins
Ur_Alias USERADMINS = uradmin
#Cmnd_Alias by Daniel
Cmnd_Alias USERCMD = /usr/sbin/uradd, /usr/sbin/urdel, /ur/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
add upUSERADMINS ALL=(OP) NOPASSWD: USERCMD #NOPASSWD,表⽰输⼊完⼀次后不需要在输⼊密码了,默认是输⼊完毕后,五分钟内不需要在输⼊