sudo 可让你以其余用户的身份执行命令,然而并不是全部用户都能执行 sudo 仅有 /etc/sudoers 内的用户才能使用 sudo 。 vim
而 sudo 的配置文件 /etc/sudoers 仅有 root用户 和 root用户组能查看该文件。网络
能够直接用vim编辑来修改配置,但不建议使用,由于vim不会检查语法错误, 而/etc/sudoers 是有语法的,若是设置错误可能会形成系统级别的问题,推荐用 visudo 命令来修改。ide
sudo 的选项spa
-l 列出当前用户可使用的全部的 sudo 命令3d
-k 让认证信息失效日志
/var/log/secure 记录全部 sudo 相关操做的全部日志blog
如何使用sudo:get
用普通用户 tom 执行查询 /etc/shadow 因为 tom 不是 root 没权限查询it
尝试经过 sudo 命令来查询 因为 tom 不是 /etc/sudoers 内的用户因此没法经过 sudo 来执行该命令io
切回 root 用户 用 visudo 命令 去修改 /etc/sudoers
找到 root ALL=(ALL) ALL 这行 并在这行下新添加或修改已有的配置
4个参数的意义
第一个 表明用户 who
第二个 登录者的来源主机名(这个帐号是由哪一个主机链接到本主机) which_host
第三个 可切换的身份 runas
第四个 可执行的命令 (命令用绝对路径来写) command
ALL 表明任何 主机 身份 命令
语法格式: who which_host=(runas) command
注意:工做上不该该这么设置 普通用户拥有彻底的 root 权限简直是恐怖
sudo 支持别名机制 (注意:别名的名字所有且只能使用大写字母)
如:
用户别名:能够包含用户的用户名,组名还能够包含其余已经定义好的用户别名(!能够取反 !tom 表示除 tom 用户之外)。
主机别名:能够包含主机名,IP地址,网络地址或者其余定义好的主机别名。
ruans 别名:用户名,组名,其它定义好的ruans别名
命令别名:命令要用绝对路径,此目录下的全部命令,或者其余定义好的命令别名
配置好 visudo 后再经过 sudo 命令执行查询 其中输入密码是输入当前用户的密码(也就是 tom 用户的密码)
也能够在命令前 添加 NOPASSWD: 修改配置 就能够不用输入密码了
sudo 的时间间隔
若是使用同一帐号在短期内重复操做 sudo 来运行命令,在第二次执行 sudo 时不须要输入本身的密码,两次使用 sudo 的间隔时间在5分钟内才能够,如超过则需从新输入密码。