1. 程式人生 > >Linux中su和sudo的用法整理

Linux中su和sudo的用法整理

passwd 命令 當前目錄 輸入密碼 情況 bfc nbsp 家目錄 root用戶登錄

一、為什麽會有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命令。

Linux中su和sudo的用法整理