Linux中su和sudo的用法整理


 

一、為什么會有su和sudo命令?

主要是因為在實際工作當中需要在Linux不同用戶之間進行切換。root用戶權限最高很多時候需要root用戶才能執行一些關鍵命令。所以需要臨時切換為root用戶。工作完成后,考慮到系統的安全性避免誤操作需要切換為普通用戶。su和sudo就是為了解決該問題內置的Linux命令。

二、su的用法

su命令其實就是切換用戶的意思。

示例:

su  #默認切換到root用戶,執行后然后輸入root密碼就可以切換root用戶,最后執行exit命令可以切換到原先的用戶。

su-  #切換為root用戶並且可以把當前目錄切換為root的用戶家目錄/root。

說明:在root用戶下可以切換為系統擁有的任意用戶並且不需要輸入其用戶密碼。

su命令的缺點:執行該命令是需要知道root用戶的密碼的。因為root用戶擁有系統的最高權限,很容易誤操作造成系統掛掉。一般情況下root密碼盡可能要進行保密。

三、sudo用法

sudo可以跳過root用戶登錄而去執行一些特定命令。比如:sudo passwd user1。當然前提是當前登錄用戶擁有執行該命令的權限。可以通過配置/etc/sudoers 文件來實現。

可以通過vi/vim命令修改文件。最好的做法是通過visudo來修改。這個命令可以編輯保存的同時檢查語法的正確性。這樣可以避免由於誤操作造成文件無法使用sudo命令。

文件內容(部分):

root    ALL=(ALL)       ALL

user1   ALL=(ALL)       ALL  

#新增上一行的內容,並修改用戶名為user1  這條命令的含義user1用戶可以執行任何的sudo命令。執行的同時需要輸入user1用戶的密碼。

user1    ALL=(ALL)     NOPASSWD:ALL 

#和上一句命令功能相同,不同之處是不需要用戶密碼。這樣其實和root權限一樣了。不建議這樣做。

user1    ALL=(ALL)      NOPASSWD:/sbin/shutdown,/usr/bin/reboot

# 對於常用的命令可以指定要執行的命令不需要輸入密碼。這條命令是user1用戶可以執行重啟服務的功能。不需要輸入密碼。

本質上理解sudo不是真的切換了用戶。而是通過當前登錄用戶的身份和權限去執行Linux命令。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM