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