su 和 sudo 的使用
1. su
su 命令的作用是直接将身份变成其他用户,需要输入其他用户的密码。
这个是我现在以zhang用户这个登录时,查询到的和'zhang'用户相关的环境变量,注意观察PATH,MAIL,PWD
等的值。现在我使用 su 命令切换到root用户,此处必须要输入root的密码。
注意:直接使用 su 命令默认的是切换到root用户,可以看到直接输入su命令切换到root用户时,此时root用户
PATH,MAIL,PWD等值还是zhang这个用户的值。刚切换到root用户时,root用户的当前工作目录是zhang,也
就是PWD的值。
使用su -也可以切换到root用户,和直接使用su的区别是:root用户的PATH,MAIL,PWD等的值真正切换成了
root的值,而不是zhang这个用户的。
su切换成其他用户的用法是:su -l 目标用户名或者 su - 目标用户名(此处也需要输入目标用户的密码)
退出使用su切换的用户使用exit命令。
2. sudo
sudo可以让你以其他用户的身份执行命令,当然也包括root身份,所以并不是所有的用户都可以执行sudo命令切
换身份的,只有在/etc/sudoers文件中指明的用户才能执行sudo命令来切换身份。系统刚装好的时候/etc/sudoers
中只有root用户,也就是root用户默认有sudo的执行权力。而要修改/etc/sudoers这个文件也必须要拥有root:
所以要让某个用户zhang拥有sudo的权力,请让root用户在/etc/sudoers文件中加入:
如果zhang用户拥有了sudo的权力,那他就可以切换成其他用户的身份执行命令了:
上面的命令是使用sudo切换成tao用户,然后以tao的身份创建a.txt文件,注意a.txt的所有者是tao。第一次使用
sudo -u 目标用户切换用户的时候是需要输入你的密码的,此处就是zhang用户的密码,下次使用就不用了(好像
间隔5分钟后要再次输入密码)。root执行sudo时是不需要输入密码的。
直接使用sudo切换默认的是root用户。
可以看出su和sudo的区别有一点就是使用su切换用户之后可以进行一连串操作,而是用sudo进行多次操作时有
点繁琐。