sudo命令详解
sudo命令是Linux上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像mount,userdel,useradd之类的命令,或者编辑一些系统配置文件,像/etc/passwd,/etc/samba/smb.conf等。这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。
一、sudo命令的特点
1. sudo能够限制指定用户在指定主机上运行某些命令。
2. sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。
3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为300秒的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。
二、配置文件
1)授权机制:sudo的授权配置文件,/etc/sudoers
对于此配置文件,共分为两类内容:
1.别名的定义:定义内建变量;
2.用户规格:其实就是授权项,其中可以调用定义过的别名;
2)用户规格(授权项):
每行只能有一个授权项;
其格式为:
who where=(whom) what
user client=(runas) commands
注意:通过编辑/etc/sudoers文件完成的授权,只能通过sudo命令来启用;
3)/etc/sudoers文件的编写格式:
who: 此次sudo配置的授权目标用户;
username:单个用户的用户账户名称;
#uid:单个用户的UID;
%groupname:指定组内的所有用户账户;
%#gid:以"gid"为GID的组内的所有用户账户;
user_alias:事先定义过的用户账户的别名;
where:定义被授权访问的客户端主机;
ip/hostname:单个主机;
Network Address:网络地址;
host_alias:事先定义过的主机的别名;
whom:授权用户后续命令的运行者的真实身份;通常是root;
what:此次授权能够运行的命令;
command:单个命令;
directory:指定目录下所有的命令;
sudoedit:特殊命令,用于授权其他用户可以执行sudo命令,并且可以编辑/etc/sudoers文件;
cmnd_alias:实现定义过的命令的别名;
三、命令参数
sudo [option]... command
-u user:以指定的用户身份运行命令;
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行sudo的使用者)的权限
-v 因为sudo在第一次执行时或是在 N 分钟内没有执行(N 预设为5)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k 将会强迫使用者在下一次执行sudo时问密码(不论有没有超过N分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中%u会代换为使用者的帐号名称,%h会显示主机名称
四、定义别名的方法
Alias_Type ALIASNAME = item1, item2, ...
Alias_Type:
User_Alias:
Host_Alias:
Runas_Alias:
Cmnd_Alias:
ALIASNAME:别名的名称必须全部使用大写字母;
User_Alias USERADMINUSERS = tom, jerry, centos, suse, %myclass
Cmnd_Alias USERADMINCOMMANDS = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod
USERADMINUSERS ALL=(root) USERADMINCOMMANDS
常用的标签:
PASSWD
NOPASSWD
Cmnd_Alias USERADMINCOMMANDS = NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod
这样NOPASSWD后面的命令在执行的时候是不需要输入密码的,PASSWD后面的命令执行的时候则需要输入密码。
本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1969678,如需转载请自行联系原作者