常用Shell命令--切换用户 su和sudo
su:切换用户的命令。如su root或者su david,若su后面为空则代表切换到root账号。 注意:su 还可以有带-的用法,和不带-的区别:
1 su root(或su 其他账号):表示不切换环境变量到当前用户,仍然使用之前用户的环境变量。
2 su - root(或su - 其他账号):表示切换当前的环境变量到新用户环境变量。
通俗理解,su - 账号切换的更彻底。
比如在执行root才能运行的命令时,例如useradd、userdel、shutdown、halt,必须要切换到root
sudo:表示临时获取root权限,如此时想添加一个户,必须要以root身份才可以。用sudo useradd abc可以添加一个abc账号。(该过程不要求输入root密码,这是和su命令不同的地方)
用户不在sudoers文件中的解决办法
在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。
$ su root
# chmod 777 /etc/sudoers
# vi /etc/sudoers
编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息
root ALL=(ALL) ALL
david ALL=(ALL) ALL
保存并退出,测试该user账号是否能执行sudo命令。