su和sudo的區別及忘記su密碼後咋辦

一、sudo與su之間的區別

sudo 命令需要輸入當前用戶的密碼,su 命令需要輸入 root 用戶的密碼。另外一個區別是其默認行爲。sudo 命令只允許使用提升的權限運行單個命令,而 su 命令會啓動一個新的 shell,同時允許使用 root 權限運行儘可能多的命令,直到明確退出登錄。

Linux su 命令

su 命令的主要作用是讓你可以在已登錄的會話中切換到另外一個用戶。換句話說,這個工具可以讓你在不登出當前用戶的情況下登錄爲另外一個用戶。
su 命令經常被用於切換到超級用戶或 root 用戶(因爲在命令行下工作,經常需要 root 權限),但是 - 正如前面所提到的 - su 命令也可以用於切換到任意非 root 用戶。
如何使用 su 命令切換到 root 用戶,如下只需在終端直接輸入su即可:
su
不帶命令行參數的 su 命令
如上,su 命令要求輸入的密碼是 root 用戶的密碼。所以,一般 su 命令需要輸入目標用戶的密碼。在輸入正確的密碼之後,su 命令會在終端的當前會話中打開一個子會話。
su -
還有一種方法可以切換到 root 用戶:運行 su - 命令
su - 命令
那麼,su 命令與 su - 命令之間有什麼區別呢?前者在切換到 root 用戶之後仍然保持舊的(或者說原始用戶的)環境,而後者則是創建一個新的環境(由 root 用戶 ~/.bashrc 文件所設置的環境),相當於使用 root 用戶正常登錄(從登錄屏幕登錄)。
sudo vs. su
現在,我們已經討論了關於 su 命令的基礎知識,是時候來探討一下 sudo 和 su 命令之間的區別了。

關於密碼:

兩個命令的最大區別是:sudo 命令需要輸入當前用戶的密碼,su 命令需要輸入 root 用戶的密碼。
很明顯,就安全而言,sudo 命令更好。例如,考慮到需要 root 訪問權限的多用戶使用的計算機。在這種情況下,使用 su 意味着需要與其他用戶共享 root 用戶密碼,這顯然不是一種好習慣。
此外,如果要撤銷特定用戶的超級用戶/root 用戶的訪問權限,唯一的辦法就是更改 root 密碼,然後再告知所有其他用戶新的 root 密碼。
而使用 sudo 命令就不一樣了,你可以很好的處理以上的兩種情況。鑑於 sudo 命令要求輸入的是其他用戶自己的密碼,所以,不需要共享 root 密碼。同時,想要阻止特定用戶訪問 root 權限,只需要調整 sudoers 文件中的相應配置即可。

二、su密碼忘記如何用sudo進行修改

me@leiyuxing:~$ sudo passwd
Password: <--- 輸入安裝時那個用戶的密碼
Enter new UNIX password: <--- 新的Root用戶密碼
Retype new UNIX password: <--- 重複新的Root用戶密碼
passwd:已成功更新密碼

sh-3.2#exit 退出root模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章