Linux 用户管理之sudo 用法



  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

wKiom1ZdxGahjhD3AABC3DcJpH4458.png



尝试经过 sudo 命令来查询 因为 tom 不是 /etc/sudoers 内的用户因此没法经过 sudo 来执行该命令io

wKiom1ZdxGahgG3uAAB3LaTr0dI582.png



切回 root 用户 用 visudo 命令 去修改 /etc/sudoers 

找到  root    ALL=(ALL)     ALL    这行 并在这行下新添加或修改已有的配置

wKioL1ZdxM2jL6ivAAAfeNXL2wg730.png


4个参数的意义

第一个  表明用户           who 

第二个  登录者的来源主机名(这个帐号是由哪一个主机链接到本主机)          which_host

第三个  可切换的身份            runas

第四个  可执行的命令 (命令用绝对路径来写)           command

ALL 表明任何 主机 身份 命令

语法格式: who     which_host=(runas)      command


注意:工做上不该该这么设置 普通用户拥有彻底的 root 权限简直是恐怖




sudo 支持别名机制  (注意:别名的名字所有且只能使用大写字母)

如:


用户别名:能够包含用户的用户名,组名还能够包含其余已经定义好的用户别名(!能够取反 !tom 表示除 tom 用户之外)。


wKioL1ZhCOig1NutAAB***kI5Xw339.png




主机别名:能够包含主机名,IP地址,网络地址或者其余定义好的主机别名。


wKiom1ZhCBehetd9AABam3FIIUE293.png




ruans 别名:用户名,组名,其它定义好的ruans别名


wKiom1ZhC1CCz7q4AAAXJJclAyQ836.png






命令别名:命令要用绝对路径,此目录下的全部命令,或者其余定义好的命令别名


wKioL1ZhCIODsUCDAADT75hlB70852.png






配置好 visudo 后再经过 sudo 命令执行查询 其中输入密码是输入当前用户的密码(也就是 tom 用户的密码)

wKiom1ZdxGjTYsx8AACRjpvXpvg351.png



也能够在命令前 添加 NOPASSWD: 修改配置  就能够不用输入密码了

wKioL1Zd11jTrYuyAAAj1eAoJtM970.png

wKiom1Zd1vOhbMY8AABlxHXInRQ425.png



sudo 的时间间隔

若是使用同一帐号在短期内重复操做 sudo 来运行命令,在第二次执行 sudo 时不须要输入本身的密码,两次使用 sudo 的间隔时间在5分钟内才能够,如超过则需从新输入密码。  

相关文章
相关标签/搜索