Linux命令(17)——su与sudo命令

来源:互联网 发布:c语言编程求最简分数 编辑:程序博客网 时间:2024/05/22 17:37

1.su命令

1.1作用

su用于临时切换身份到另一个指定的用户,未指定用户名默认为root。使用su切换用户身份后,默认情况下不改变当前工作目录,但会改变“HOME”、“SHELL”、“USER”、“LOGNAME”等shell的环境变量。

1.2语法

su [选项] [参数]

1.3选项

-c [command],--command=[command]:执行完指定命令后,立即恢复原来的用户身份;--session-command=[COMMAND]:将一个命令传递到shell中,但不创建新会话;-,-l,--login:切换用户身份时启动一个新的登陆shell。此选项可同时改变工作目录和HOMESHELLUSERLOGNAME等环境变量,也包括环境变量PATH-f,--fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell-m,--preserve-environment:保留原用户的shell环境变量;-p:同-m;-s [shell],--shell=[shell]:指定使用的shell;--help:显示帮助信息;--version:显示版本信息;

2.sudo命令

2.1简介

sudo可以用指定的用户身份执行指定的指令,而无需输入指定用户的密码,只需要输入当前用户的密码。未指定用户名默认为root。

2.2格式

sudo [选项] [参数]

sudo常见用法,以指定用户身份执行命令:

sudou [username] [command]

2.3命令选项

-A:通常sudo需要密码,它目前终端读取。使用-A选项,表明使用辅助程序(可能是图形化界面)读取用户的密码并将密码输出到标准输出。如果设置了环境变量SUDO_ASKPASS,它会指定辅助程序的路径,否则,由配置文件sudoers的askpass选项来指定;-b(background):把sudo指令所要运行的指令放到后台运行;-H(Home):设置用户的主目录-l:显示通过sudo允许当前用户执行的指令和无法执行的指令-L:显示sudo命令的配置选项;-s [command]:执行环境变量SHELL所指定的shell,或是/etc/passwd里所指定的shell。如果后跟[command],则将指定的命令传递给shell执行;-u [username]:指定执行命令时使用的用户身份,默认为root;-h:显示帮助信息;-V:显示版本信息;-v:延长密码有效期限5分钟; -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;-p:改变询问密码的提示符号;

注意:
sudo运行时要参照配置文件”/etc/sudousers”配置。在文件中设置用户能够执行的命令。

3.su和sudo命令的区别

(1)二者功能不同
su用来长时间切换用户,常见用法是su [username],未指定username默认切换至root。

sudo允许被授权的用户以其他用户或者管理员身份来执行命令,可以使用-u命令选项来指明需要使用的用户身份,默认是root。sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”)[1]。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入当前用户密码,如果当前用户是root或者当前用户与目标用户一致,无需输入密码,之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。


参考文献

[1]sudo.百度百科

原创粉丝点击