在我们要了解这三者之间的区别之前,首先要知道如何进入su (#^.^#)
如何设置初始su密码?
当我们输入su时会发现要输入密码,我们尝试输入自己当前用户的密码,发现failure。
但我们又不知道su密码是什么?其实su初始密码可以通过下面方式进行设置:
sudo passwd
设置完后再输入su命令并键入刚才设置的密码即可进入~
su、su - 和sudo的区别是什么?
su 切换到root用户,但并不转到root用户家目录下,即没有改变用户的环境。
su - 切换到root用户,并转到root用户家目录下,即改变到了root用户的环境。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码(sudo用的不是root密码,而是当前用户密码),所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su,另外sudo是需要授权许可的,所以也被称为授权许可的su。
以下是实例截图,请将我上面说的理论与实践相结合,加深理解:
注意到了没有?su退出的结果为exit,而su - 退出的结果为logout!
下面我来进一步说明 — —
单纯使用su切换到root,读取变量的方式是non-login shell,这样的方式仅仅是切换到root的身份。
而用su - 这样的方式的话,是login shell方式,它是先以root身份登录然后再运行别的操作。