shell命令--sudo_右键shell命令--sudo



shell命令--sudo

0、sudo命令的专属图床

点此快速打开文章【图床_shell命令sudo

1、sudo命令的功能说明

​ ​​sudo​​ 命令以系统管理者的身份执行指令,也就是说,经由 ​​sudo​​ 所执行的指令就好像是 ​​root​​ 亲自执行。使用权限:在 ​​/etc/sudoers​​ 中有出现的使用者。

2、sudo命令的语法格式

SYNOPSIS
sudo -h | -K | -k | -V
sudo -v [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-AbEHnPS] [-a type] [-C num] [-c class] [-g group] [-h host] [-p prompt] [-r role] [-t type]
[-T timeout] [-u user] [VAR=value] [-i | -s] [command]
sudoedit [-AknS] [-a type] [-C num] [-c class] [-g group] [-h host] [-p prompt] [-T timeout]
[-u user] file ...

3、sudo命令的选项说明

  • -V:显示版本编号
  • -h:会显示版本编号及指令的使用方式说明
  • -l:显示出自己(执行 sudo 的使用者)的权限
  • -v:因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k:将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b:将要执行的指令放在背景执行
  • -p prompt:可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid:不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s:执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H:将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command:要以系统管理者身份(或以 -u 更改为其他人)执行的指令

4、sudo命令的实践操作

范例1:查看用户被​​visudo​​ 授权后拥有的权限操作

模拟环境

whoami  -->root用户下操作
useradd usertest
\cp /etc/sudoers{,.bak} -->操作前备份
echo "usertest1 ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
visudo -c -->语法检查

权限操作

su - usertest
whoami
ls /root
sudo ls /root

范例2:查看​​usertest​​ 用户授权的结果情况

whoami
sudo -l

范例3:被授权 ​​NOPASSWD: ALL​​,相当于 ​​root​​ 权限,可免密码切换 ​​root​

whoami
sudo su -
whoami