這幾天練習郵件服務器的時候經常需要切換到其他用戶發一份測試郵件,然后再切換到另一個用戶查收郵件,于是就想起 Linux 的 sudo 命令了。這條命令的作用就是讓你以任意用戶的身份或者管理員身份運行后面的指令或者打開文件,使用方法如下:
sudo [-u username] command...
其中的 -u username 是可以指定一個用戶,以這個用戶身份運行權限,而不指定則默認使用 ROOT 用戶權限運行。除 ROOT 用戶外,其他用戶指定另外用戶運行時均須要輸入密碼。
例如:
# sudo -u test1 echo test
test
# su test1
$ sudo echo test
[sudo] password for test1:
test
而在實際操作過程中發現,剛裝好的 Linux 默認只有 ROOT 用戶可以使用 sudo 命令,原因是其他用戶沒有被添加到 sudoers 列表中。所以為方便測試,如果想讓所有用戶都可以執行 sudo 命令,可以在 ROOT 用戶下編輯 /etc/sudoers
文件第 98 行,將
root ALL=(ALL) ALL
改成
ALL ALL=(ALL) ALL
保存 (可能需要用強制保存,:wq!
) ,這時其他用戶可以使用 sudo 執行命令,但是需要輸入當前用戶密碼。如果需要去掉密碼,則需要繼續編輯剛剛的 /etc/sudoers
文件,將剛剛的那行繼續修改:
root ALL=(ALL) NOPASSWD: ALL
保存,測試,這時其他用戶在執行 sudo 命令時可以免密碼執行了。這個方法請不要用在正式生產環境中,因為這會導致嚴重的安全問題。如果只是測試單個用戶,可以單獨指定,比如為 test1
添加 sudo 權限:
test1 ALL=(ALL) ALL
添加到原文件 98 行的下面即可,最好不要覆蓋 ROOT 那行。