Linux命令 - sudo命令
Linux中 sudo 命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
1.语法:
whoami [参数]
2.功能:
可让用户以其他的身份来执行指定的指令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
3.参数:
-b 在后台执行指令。
-h 会显示版本编号及指令的使用方式说明。
-H 将HOME环境变量设为新身份的HOME环境变量。
-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l 列出目前用户可执行与无法执行的指令。
-p 改变询问密码的提示符号,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称。
-s<shell> 执行指定的shell或是 /etc/passwd 里所指定的 shell。
-u<用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v 延长密码有效期限5分钟。
-V 显示版本信息。
4.常用范例:
例一:列出目前的权限
命令:sudo -l
[root@localhost ~]# sudo -l
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE
KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用户 root 可以在 localhost 上运行以下命令:
(ALL) ALL
例二:给用户赋sudo权限
1)切换至root账户,为sudo文件增加写权限,默认是读权限
命令:chmod u+w /etc/sudoers
2)修改/etc/sudoers文件
命令:vi /etc/sudoers
- 找到如下图所示的一行:
- 然后给普通用户esther添加sudo权限,在“root ALL=(ALL)ALL”这一行下面,加入如下图所示的一行(用户名 ALL=(ALL) ALL),并保存
3)修改保存之后再收回sudoersd写的权限
命令:chmod u-w /etc/sudoers