sudo 命令用来以其他身份来执行命令,Linux
系统下的sudo
命令主要是用来分配系统的权限,使用sudo命令可以提高普通用户的权限,来执行一些操作。预设的身份为root
。在/etc/sudoers
中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo
,则会发出警告的邮件给管理员。用户使用sudo
时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
查看、修改或者执行某些命令需要 root
用户的权限,如果不想直接切换到root
用户,就可以使用sudo
命令。sudo
命令用于针对单个命令授予临时权限。sudo
仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。
使用方法是在原有命令之前加上 sudo +
空格。
用法示例:以root
用户的身份修改主机名为yujian
$ sudo hostname yujian
名称:sudo
使用权限:在 /etc/sudoers
中有出现的使用者
使用方式:
sudo -V sudo -h sudo -l sudo -v sudo -k sudo -s sudo -H sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s sudo command
说明:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行
参数:
-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
将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
-H
要以系统管理者身份(或以
command -u
更改为其他人)执行的指令
范例:
sudo -l 列出目前的权限 sudo -V 列出 sudo 的版本资讯
小结:
1、授权指定用户在指定主机上运行指定的管理命令;
2、详细记录用户基于sudo
执行的命令的相关日志信息;
3、“检票系统”:时效性认证,用户第一次执行sudo
时会要求输入密码来验正用户身份,成功后用户会获得一个有固定存活时长的“令牌”;5
分钟