su 切換到root用戶,但是並沒有轉到root用戶家目錄下,即沒有改變用戶的環境。
su - 切換到root用戶,並轉到root用戶的家目錄下,即改變到了root用戶的環境。
這個涉及到不同用戶下的環境變量的配置。
sudo
通過sudo,我們能把某些超級權限有針對性的下放,並且不需要普通用戶知道root密碼(sudo用的不是root密碼,而是當前用戶密碼),所以sudo相對於權限無限制性的su來說,還是比較安全的,所以sudo也能被稱為受限制的su,另外sudo是需要授權許可的,所以也被稱為授權許可的su。
sudo執行命令的流程是當前用戶切換到root(或其他指定切換到的用戶),然后以root(或其他指定的切換到的用戶)身份執行命令,執行完成后,直接退回到當前用戶,而這些的前提是要通過sudo的配置文件/etc/sudoers來進行授權。
sudo的配置文件是/etc/sudoers,我們可以用他的專用編輯工具visodu來進行配置,配置好后,可以切換到您授權的用戶下,通過sudo -l來查看哪些命令是可以執行或禁止的。
之所以把這三個命令拿出來,是要提醒自己這三個命令是有區別的,在使用時遇到錯誤就要仔細想一下。
至於怎樣配置使用sudo,一般不做服務器管理應該用不到,這里不做詳細介紹,需要的時候可以去學習。
參考:
http://blog.csdn.net/robot__man/article/details/38920535