sudo详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sudo详解相关的知识,希望对你有一定的参考价值。

su:switch user

用户切换

登录式切换

su - user,

su -l user

非登录式切换

su user [-c ‘COMMAND‘]

sudo:execute a command as another user

能够让获得授权的用户以另外一个用户的身份运行指定的命令;

授权机制:sudo的授权文件 /etc/sudoers:default sudo security policy module

两类内容:

别名的定义,即为变量;

授权项,可使用别名进行授权;用户规范

编译此文件的专用命令:visudo # 有固定语法格式;

sudo命令:检票机制:能记录成功认证结果一段时间,默认为5分钟;

sudo  [options]  COMMAND

-u username:以指定的用户身份运行命令;

# sudo -u centos whoami

centos

-l :列出用户能以sudo方式执行的所有命令

-k   清除此前缓存用户成功认证结果;

授权项(每行一个授权项):

user   hosts=(runas)   commands

who    where=(whom)    commands

通过哪些主机 以谁的身份 命令

root ALL=(ALL) ALL 

%wheel ALL=(ALL)  ALL

把centos用户添加到wheel组;

usermod -aG wheel centos

echo mageedu |passwd --stdin centos

su - centos

sudo -l

sudo -u root whoami 

注意:用户通过sudo获得的授权,只能以sudo命令来启动;

who:用户

username:单个用户;

#uid:单个用户的ID号;

%groupname:组内的所有用户;

%#gid:组内的所有用户;

user_alias:用户别名;支持将多个用户定义为一组用户,称之为用户别名;

where:主机地址

IP或hostname:单个主机;

NetAddr:网络地址;

host_alias:主机别名;

whom:

username

#uid 

runas_alias:以谁的身份运行;

command:

command:单个命令;

directory:指定目录内的所有应用程序;

sudoedit:特殊权限,可用于向其它用户授予sudo权限;

cmnd_alias:命令别名;

例:只允许fedora用户以sudo权限运行useradd,usermod两个命令;

# useradd fedora

# echo mageedu |passwd --stdin fedora

# visudo #或者放到/etc/sudoers.d/目录下;

fedora ALL=(root)  /usr/sbin/useradd,/usr/sbin/usermod



定义别名的方法:

ALIAS_TYPE  NAME=item1, item2, item3, ...

ALIAS_TYPE:别名类型

User_Alias # 用户别名

Host_Alias # 主机别名

Runas_Alias # sudo用户别名

Cmnd_Alias # 命令别名

NAME:别名名称,必须使用全大写字符;不同即可;

常用标签:

NOPASSWD: # sudo时不需要密码;后面跟冒号(:);

PASSWD: # sudo时需要密码;

例1:

User_Alias  USERADMINS=tom, jerry

Cmnd_Alias  USERADMINCMNDS1=/usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/passwd [a-z]*,!/usr/bin/passwd root

Cmnd_Alias  USERADMINCMNDS2=/usr/sbin/userdel

USERADMINS ALL=(root)  NOPASSWD:  USERADMINCMNDS1    PASSWD: USERADMINCMNDS2

以sudo运行时不需要密码 以sudo运行时需要密码


例2:

#%wheel ALL=(ALL)   ALL

User_Alias  USERADMINS=user1,user2

Cmnd_Alias  CMDSHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/poweroff,/usr/sbin/reboot,/usr/sbin/init

Cmnd_Alias  CMDDANGER=/usr/sbin/visudo,/usr/bin/su,/usr/bin/passwd,/usr/sbin/userdel

USERADMINS  ALL=(root)  NOPASSWD:ALL,!CMDSHUTDOWN,!CMDDANGER

本文出自 “毛虫小臭臭” 博客,请务必保留此出处http://moerjinrong.blog.51cto.com/11124564/1967651

以上是关于sudo详解的主要内容,如果未能解决你的问题,请参考以下文章

sudo详解

sudo详解

sudo详解

sudo命令详解

sudo命令详解

sudo 详解