這篇文章主要介紹“l(fā)inux的sudo命令有哪些功能”,在日常操作中,相信很多人在linux的sudo命令有哪些功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”linux的sudo命令有哪些功能”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!
在你想要使用超級權限臨時(shí)運行一條命令時(shí),sudo 命令非常方便,但是當它不能如你期望的工作時(shí),你也會(huì )遇到一些麻煩。比如說(shuō)你想在某些日志文件結尾添加一些重要的信息,你可能會(huì )嘗試這樣做:
$ echo "Important note" >> /var/log/somelog -bash: /var/log/somelog: Permission denied
好吧,看起來(lái)你似乎需要一些額外的特權。一般來(lái)說(shuō),你不能使用你的用戶(hù)賬號向系統日志中寫(xiě)入東西。我們使用 sudo 再?lài)L試一次吧。
$ sudo !! sudo echo "Important note" >> /var/log/somelog -bash: /var/log/somelog: Permission denied
嗯,它還是沒(méi)有啥反應。我們來(lái)試點(diǎn)不同的吧。
$ sudo 'echo "Important note" >> /var/log/somelog' sudo: echo "Important note" >> /var/log/somelog: command not found
接下來(lái)該干什么?
上面在執行完第一條命令后的回應顯示,我們缺少向日志文件寫(xiě)入時(shí)必須的特權。第二次,我們使用 root 權限運行了第一次的命令,但是返回了一個(gè)“沒(méi)有權限”的錯誤。第三次,我們把整個(gè)命令放在一個(gè)引號里面再運行了一遍,返回了一個(gè)“沒(méi)有發(fā)現命令”的錯誤。所以,到底錯在哪里了呢?
第一條命令:沒(méi)有 root 特權,你無(wú)法向這個(gè)日志中寫(xiě)入東西。
第二條命令:你的超級權限沒(méi)有延伸到重定向。
第三條命令:sudo 不理解你用引號括起來(lái)的整個(gè) “命令”。
而且如果你的用戶(hù)還未添加到 sudo 用戶(hù)組的時(shí)候,如果嘗試使用 sudo,你可能已經(jīng)看到過(guò)像下面的這么一條錯誤了:
nemo is not in the sudoers file. This incident will be reported.
你可以做什么?
一個(gè)相當簡(jiǎn)單的選擇就是使用 sudo 命令暫時(shí)成為 root。鑒于你已經(jīng)有了 sudo 特權,你可以使用下面的命令執行此操作:
$ sudo su [sudo] password for nemo: #
注意這個(gè)改變的提示符表明了你的新身份。然后你就可以以 root 運行之前的命令了:
# echo "Important note" >> /var/log/somelog
接著(zhù)你可以輸入 ^d 返回你之前的身份。當然了,一些 sudo 的配置可能會(huì )阻止你使用 sudo 命令成為 root。
另一個(gè)切換用戶(hù)為 root 的方法是僅用 su 命令,但是這需要你知道 root 密碼。許多人被賦予了訪(fǎng)問(wèn) sudo 的權限,而并不知道 root 密碼,所以這并不是總是可行。
(采用 su 直接)切換到 root 之后,你就可以以 root 的身份運行任何你想執行的命令了。這種方式的問(wèn)題是:1) 每個(gè)想要使用 root 特權的人都需要事先知道 root 的密碼(這樣不很安全);2) 如果在運行需要 root 權限的特定命令后未能退出特權狀態(tài),你的系統可能會(huì )受到一些重大錯誤的波及。sudo 命令旨在允許您僅在真正需要時(shí)使用 root 權限,并控制每個(gè) sudo 用戶(hù)應具有的 root 權限。它也可以使你在使用完 root 特權之后輕松地回到普通用戶(hù)的狀態(tài)。
另外請注意,整個(gè)討論的前提是你可以正常地訪(fǎng)問(wèn) sudo,并且你的訪(fǎng)問(wèn)權限沒(méi)有受限。詳細的內容后面會(huì )介紹到。
還有一個(gè)選擇就是使用一個(gè)不同的命令。如果通過(guò)編輯文件從而在其后添加內容是一種選擇的話(huà),你也許可以使用 sudo vi /var/log/somelog,雖然編輯一個(gè)活躍的日志文件通常不是一個(gè)好主意,因為系統可能會(huì )頻繁的向這個(gè)文件中進(jìn)行寫(xiě)入操作。
最后一個(gè)但是有點(diǎn)復雜的選擇是,使用下列命令之一可以解決我們之前看到的問(wèn)題,但是它們涉及到了很多復雜的語(yǔ)法。第一個(gè)命令允許你在得到 “沒(méi)有權限” 的拒絕之后可以使用 !! 重復你的命令:
$ sudo echo "Important note" >> /var/log/somelog -bash: /var/log/somelog: Permission denied $ !!:gs/>/|sudo tee -a / <===== $ tail -1 /var/log/somelog Important note
第二種是通過(guò) sudo 命令,把你想要添加的信息傳遞給 tee。注意,-a 指定了你要附加文本到目標文件:
$ echo "Important note" | sudo tee -a /var/log/somelog $ tail -1 /var/log/somelog Important note
sudo 有多可控??
回答這個(gè)問(wèn)題最快速的回答就是,它取決于管理它的人。大多數 Linux 的默認設置都非常簡(jiǎn)單。如果一個(gè)用戶(hù)被安排到了一個(gè)特別的組中,例如 wheel 或者 admin組,那這個(gè)用戶(hù)無(wú)需知道 root 的密碼就可以擁有運行任何命令的能力。這就是大多數 Linux 系統中的默認設置。一旦在 /etc/group 中添加了一個(gè)用戶(hù)到了特權組中,這個(gè)用戶(hù)就可以以 root 的權力運行任何命令。另一方面,可以配置 sudo,以便一些用戶(hù)只能夠以 root 身份運行單一指令或者一組命令中的任何一個(gè)。
如果把像下面展示的這些行添加到了 /etc/sudoers 文件中,例如 “nemo” 這個(gè)用戶(hù)可以以 root 身份運行 whoami 命令。在現實(shí)中,這可能不會(huì )造成任何影響,它非常適合作為一個(gè)例子。
# User alias specification nemo ALL=(root) NOPASSWD: WHOAMI # Cmnd alias specification Cmnd_Alias WHOAMI = /usr/bin/whoami
注意,我們添加了一個(gè)命令別名(Cmnd_Alias),它指定了一個(gè)可以運行的命令的全路徑,以及一個(gè)用戶(hù)別名,允許這個(gè)用戶(hù)無(wú)需密碼就可以使用 sudo 執行的單個(gè)命令。
當 nemo 運行 sudo whoami 命令的時(shí)候,他將會(huì )看到這個(gè):
$ sudo whoami root
注意這個(gè),因為 nemo 使用 sudo 執行了這條命令,whoami 會(huì )顯示該命令運行時(shí)的用戶(hù)是 root。
至于其他的命令,nemo 將會(huì )看到像這樣的一些內容:
$ sudo date [sudo] password for nemo: Sorry, user nemo is not allowed to execute '/bin/date' as root on butterfly.
sudo 的默認設置
在默認路徑中,我們會(huì )利用像下面展示的 /etc/sudoers 文件中的幾行:
$ sudo egrep "admin|sudo" /etc/sudoers # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL <===== # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL <=====
在這幾行中,%admin 和 %sudo 都說(shuō)明了任何添加到這些組中的人都可以使用 sudo 命令以 root 的身份運行任何命令。
下面列出的是 /etc/group 中的一行,它意味著(zhù)每一個(gè)在該組中列出的成員,都擁有了 sudo 特權,而無(wú)需在 /etc/sudoers 中進(jìn)行任何修改。
sudo:x:27:shs,nemo
總結
sudo 命令意味著(zhù)你可以根據需要輕松地部署超級用戶(hù)的訪(fǎng)問(wèn)權限,而且只有在需要的時(shí)候才能賦予用戶(hù)非常有限的特權訪(fǎng)問(wèn)權限。你可能會(huì )遇到一些與簡(jiǎn)單的 sudo command 不同的問(wèn)題,不過(guò)在 sudo 的回應中應該會(huì )顯示你遇到了什么問(wèn)題。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站