普通用户缺少一些权限,有些命令不能进行操作,这时候我们就需要拿到root权限才可以,拿到root权限有两种方式
*- 方式一:使用su - 或者su
此时就会提示你输入密码,输入密码成功以后就能以root权限操作,变成root以后会从$变成#
su- 和su 虽然都能切换到root权限,但两者还是有区别的
使用su切换到root身份,读取的变量设置方式为non-login shell的方式,这种方式下很多原本的变量不会被改变,比如主文件夹,和PATH变量都没有成为root的环境。可以通过 env | grep ‘dayday’查看。
root@dayday-Lenovo-U41-70:~# env | grep 'dayday'
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/dayday
GPG_AGENT_INFO=/home/dayday/.gnupg/S.gpg-agent:0:1
SESSION_MANAGER=local/dayday-Lenovo-U41-70:@/tmp/.ICE-unix/1432,unix/dayday-Lenovo-U41-70:/tmp/.ICE-unix/1432
XAUTHORITY=/home/dayday/.Xauthority
OLDPWD=/home/dayday
所以切换用户的时候请用su -
su - 的用法和su差不多,但是su - 可以加入-c这个参数,使得执行一次root命令以后切换回原来的身份
例:
dayday@dayday-Lenovo-U41-70:~$ su - -c "head -n 3 /etc/shadow "
密码:
root:$6$kIGPIZX0$QXvfpPIywXHqeh1aJeBXe0zgs.GTJarFokRYNGYnnLDYIs80fOjElfFLoKWVXXkjmC/FPDN..ksVYRVhX7Rr9.:17459:0:99999:7:::
daemon:*:17212:0:99999:7:::
bin:*:17212:0:99999:7:::
dayday@dayday-Lenovo-U41-70:~$
- 方法二:使用sudo
sudo默认只有root身份使用,使用sudo可以让你切换身份进行某项任务
若想除了root之外的其他帐号使用sudo执行属于root的权限命令,则root需要先使用visudo去修该/etc/sudoers,让该帐号能够使用全部或部分的root命令功能
- 切换用户:
exit,回到原先的用户上面