sudo是linux系统管理指令,是容许系统管理员让普通用户执行一些或者所有的root命令的一个工具,如halt,reboot,su等等。这样不只减小了root用户的登陆 和管理时间,一样也提升了安全性。sudo不是对shell的一个代替,它是面向每一个命令的。(百度百科)linux
su是最简单的身份切换命令,通常都是su - username,而后输入password就ok了,root用su至其余用户无须密码;但非root用户切换时须要密码。切换到root可使用su -和su - root。shell
编辑配置文件的方式vim
# sudoedit /etc/sudoers
# vim /etc/sudoers
# visudo
配置文件: /etc/sudoers, /etc/sudoers.d/
时间戳文件: /var/db/sudo
日志文件: /var/log/secure
配置文件支持使用通配符glob:centos
? :任意单一字符 * :匹配任意长度字符 [wxc]:匹配其中一个字符 [!wxc]:除了这三个字符的其它字符 \x : 转义 [[alpha]] :字母 示例: /bin/ls [[alpha]]*
配置文件规则有两类安全
user: 运行命令者的身份
host: 经过哪些主机
(runas): 以哪一个用户的身份
command: 运行哪些命令 网络
sudo受权示例user1 ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod
ide
sudo -u centos 切换身份 -V 显示版本信息等配置信息 -u user 默认为root -l 列出当前用户可使用的全部sudo命令 -v 再延长密码有效期限5分钟,更新时间戳 -k 认证信息失效,清除时间戳(1970-01-01),下次须要从新输密码 -b 在后台执行指令
man帮助文件显示该参数的正确含义:
#jack能够运行任何命令在定义地CSNET(128.138.243.0, 128.138.242.0和128.138.204.0/24的子网)中,不过注意前两个不须要匹配子网掩码由于是本地主机地址,而最后一个必须匹配掩码由于是网络地址。
jack CSNETS = ALL
#lisa能够运行任何命令在定义为CUNETS(128.138.0.0)的子网中主机上。
lisa CUNETS = ALL工具