sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制
sudo -i: 为了频繁的执行某些只有管理员才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
sudo -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell(即默认shell),sudo -s 只是从结果看 切换到了root ,但是sudo -s 是否等于sudo su - 其实执行的动作是不一样的。
做个试验来验证,我修改了我普通用户的$SHELL(改成bash,而root的还是默认的csh)
[pb@localhost ~]$ id
uid=500(pb) gid=500(pb) groups=500(pb) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[pb@localhost ~]$ echo $SHELL
/bin/bash
[pb@localhost ~]$
补充 : 另外需要给pb用户添加sudo权限
在root用户权限下添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers
编辑sudoers文件 : vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
撤销sudoers文件写权限,命令 : chmod u-w /etc/sudoers
pb用户就可以使用sudo了