udo命令允許您以其他用戶身份運行命令與程序,默認是root用戶。如果您是個命令行用戶,那么sudo是您將經常使用的命令之一。
使用sudo而不是以root用戶身份登錄會更安全,因為您可以為單個用戶授予有限的管理權限,而無需讓他們知道root用戶密碼。
sudo命令已預先安裝在大多數Linux發行版中。要檢查系統是否安裝sudo命令,請使用快捷鍵ctrl+alt+t
打開終端臺,鍵入sudo
,然后按Enter
。
如果您的系統已安裝sudo,系統將顯示一條簡短的幫助消息,否則您將看到類似sudo command not found
的信息。
如果你未安裝sudo,則可以使用發行版的軟件包管理器安裝它,例如apt命令或者yum命令安裝sudo。
如果你的計算機運行的是基于Debian的Linux發行版,例如Ubuntu,Linux mint,則可以運行命令sudo apt install sudo
安裝sudo。
如果你的計算機運行的是基于RedHat的Linux發行版,例如CentOS,Fedora,則可以運行命令yum install sudo
安裝sudo。
apt install sudo #for ubuntu and debian
yum install sudo #for CentOS and RedHat
sudo命令選項
sudo
命令的基本語法是sudo OPTION.. COMMAND
。sudo
命令有用于控制其行為的選項,但通常sudo
都是以其最基本的形式使用,沒有任何選項。
其中COMMAND
是您要運行的命令。sudo將讀取/etc/sudoers
文件,并檢查用戶是否授予sudo的訪問權限。
在第一次使用sudo時,系統會提示您輸入當前用戶密碼,并且該命令將以root用戶執行。
例如,要列出/root
目錄中的所有文件,請運行命令sudo ls /root
。
sudo ls /root
[sudo] password for myfreax:
. .. .bashrc .cache .config .local .profile
sudo 重定向
如果您嘗試將sudo命令的輸出重定向到用戶沒有寫權限的文件,則會收到權限拒絕的錯誤消息permission denied
。
例如命令sudo echo "test" > /root/file.txt
使用echo和重定向操作符>
,將標準輸出重定向到/root/file.txt
文件。
你將會收到錯誤消息bash: /root/file.txt: Permission denied。之所以會這樣,是因為標準輸出的重定向>
是以您登錄的用戶而不是sudo指定的用戶運行。
重定向在調用sudo
命令之前發生。一種解決方案是使用sudo sh -c
以root用戶創建子shell進程運行命令。
另一種解決方是將普通用戶的標準輸出通過管道傳遞給到tee
命令。
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
sudo sh -c 'echo "test" > /root/file.txt'
echo "test" | sudo tee /root/file.txt
結論
至此,你已經理解如何解決sudo與重定向的權限拒絕的問題,如果您有任何疑問,請隨時發表評論。
-
Linux
+關注
關注
87文章
11229瀏覽量
208927 -
命令
+關注
關注
5文章
678瀏覽量
21984
發布評論請先 登錄
相關推薦
評論