Linux su與sudo的區別
su的用法
su命令就是切換使用者的工具。
比如我們以普通使用者dustin登入的,但要新增使用者任務,執行useradd ,dustin使用者沒有這個許可權,而這個許可權恰恰由root所擁有。解決辦法無法有兩個,一是退出dustin使用者,重新以root使用者登入,但這種辦法並不是最好的;二是我們沒有必要退出beinan使用者,可以用su來切換到root下進行新增使用者的工作,等任務完成後再退出root。我們可以看到當然通過su切換是一種比較好的辦法;通過su可以在使用者之間切換,如果超級許可權使用者root向普通或虛擬使用者切換不需要密碼,而普通使用者切換到其它任何使用者都需要密碼驗證。
su 不加任何引數
su 在不加任何引數,預設為切換到root使用者,但沒有轉到root使用者家目錄下,也就是說這時雖然是切換為root使用者了,但並沒有改變工作目錄和環境變數:
su - 加了-作為引數
su 加引數 - ,表示預設切換到root使用者,並且改變到root使用者的環境:
-實際上是–login的縮寫:
su的優缺點
su 的確為管理帶來方便,通過切換到root下,能完成所有系統管理工具,只要把root的密碼交給任何一個普通使用者,他都能切換到root來完成所有的系統管理工作;但通過su切換到root後,也有不安全因素;比如系統有10個使用者,而且都參與管理。如果這10個使用者都涉及到超級許可權的運用,做為管理員如果想讓其它使用者通過su來切換到超級許可權的root,必須把root許可權密碼都告訴這10個使用者;如果這10個使用者都有root許可權,通過root許可權可以做任何事,這在一定程度上就對系統的安全造成了威協;想想Windows吧,簡直就是惡夢。
“沒有不安全的系統,只有不安全的人”,我們絕對不能保證這 10個使用者都能按正常操作流程來管理系統,其中任何一人對系統操作的重大失誤,都可能導致系統崩潰或資料損失;所以su 工具在多人蔘與的系統管理中,並不是最好的選擇,su只適用於一兩個人蔘與管理的系統,畢竟su並不能讓普通使用者受限的使用;超級使用者root密碼應該掌握在少數使用者手中,這絕對是真理!所以集權而治的存在還是有一定道理的。
sudo的用法
通過sudo,我們能把某些超級許可權有針對性的下放,並且不需要普通使用者知道root密碼,所以sudo 相對於許可權無限制性的su來說,還是比較安全的,所以sudo 也能被稱為受限制的su ;另外sudo 是需要授權許可的,所以也被稱為授權許可的su。
sudo的執行過程是這樣的:
- 檢查使用者是否在/etc/sudoers的列表中
- 如果在,以root許可權執行命令
- 取消使用者的root
例如,使用者dustin是沒有檢視/etc/shadow檔案的許可權,但是我在建立dustin這個使用者時曾經賦予了他可以作為管理員的許可權,所以當用sudo執行less /etc/shadow命令時,系統會提醒我要小心操作,然後輸入dustin的密碼即可執行,而不需要使用root密碼,這樣既可以讓多人來管理系統,又減少了root密碼洩露的可能。而且此命令執行之後,獲取的管理員許可權立刻就會失去。
而且很容易發現,sudo和su一樣,沒有切換工作目錄和環境變數,只是賦予使用者許可權:
相關文章
- Linux命令su、sudo、sudo su、sudo -i使用和區別Linux
- Linux 命令 su 和 sudo 的區別Linux
- su和sudo的區別與使用(轉)
- Linux su命令和sudo命令的區別Linux
- su和sudo命令的區別
- 深度解析!Linux 命令 su 和 sudo 的區別Linux
- 實際操作中命令 su 與 sudo 的區別(轉)
- 【轉】linux下命令su與su - 的區別。Linux
- Linux下su與su -命令的本質區別Linux
- Linux中su和sudo命令有什麼區別?Linux學習教程Linux
- su和su - 的區別
- su和sudo命令
- Linux– su和sudo 切換使用者Linux
- linuxsu和sudo命令的區別Linux
- linux sudo命令的概念與使用Linux
- 設定su和sudo為不需要密碼密碼
- linux cache與buffer的區別Linux
- linux中fork()與vfork()的區別Linux
- Linux sudoLinux
- Linux命令 切換使用者型別 suLinux型別
- Linux的優缺點,Linux與windows的區別LinuxWindows
- Linux執行緒與程式的區別Linux執行緒
- Linux程式與執行緒的區別Linux執行緒
- Linux和Ubuntu的區別與聯絡LinuxUbuntu
- linux shell 中 printf 與 echo的區別Linux
- 認識Linux與Unix區別Linux
- linux sudo 命令Linux
- linux配置sudoLinux
- ??與?:的區別
- Linux中檔案與目錄的區別Linux
- Linux 常見目錄與區別Linux
- Linux free中buffer與cache區別Linux
- linux sudo命令使用Linux
- linux sudo提權Linux
- 轉載_Linux程式與執行緒的區別Linux執行緒
- Linux中程式與程式、執行緒的區別!Linux執行緒
- linux原始碼包與RPM包的區別Linux原始碼
- [轉] linux下 /dev/null與/dev/zero的區別LinuxdevNull