歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> 利用sudo命令為Ubuntu分配管理權限

利用sudo命令為Ubuntu分配管理權限

日期:2017/2/27 17:40:07   编辑:Unix教程
Ubuntusudo

Ubuntu 有一個與眾不同的特點,那就是初次使用時,你無法作為root來登錄系統,為什麼會這樣?這就要從系統的安裝說起。對於其他Linux系統來說,一般在安裝過程就設定root密碼,這樣用戶就能用它登錄root帳戶或使用su命令轉換到超級用戶身份。與之相反,Ubuntu默認安裝時,並沒有給root用戶設置口令,也沒有啟用root帳戶。問題是要想作為root用戶來運行命令該怎麼辦呢?沒關系,我們可以使用sudo命令達此目的。

  sudo是linux下常用的允許普通用戶使用超級用戶權限的工具,該命令為管理員提供了一種細顆粒度的訪問控制方法,通過它人們既可以作為超級用戶又可以作為其它類型的用戶來訪問系統。這樣做的好處是,管理員能夠在不告訴用戶root密碼的前提下,授予他們某些特定類型的超級用戶權限,這正是許多系統管理員所夢寐以求的。

  1.sudo的缺省配置

  默認時,Ubuntu為sudo提供了一個基本的配置,該配置保存在/etc目錄下的sudoers文件中。在修改該配置文件時,務必使用visudo工具來進行編輯,因為該工具會自動對配置語法進行嚴格檢查,如果發現錯誤,在保存退出時給出警告,並提示你哪段配置出錯,從而確保該配置文件的正確性。相反,如果使用其它的文本編輯程序的話,一旦出錯,就會給系統帶來嚴重的後果。下面給出的是Ubuntu默認的/etc/sudoers文件內容:

# User privilege specification

root ALL=(ALL) ALL

# Members of the admin group may gain root privileges

%admin ALL=(ALL) ALL

  下面對以上配置做簡要說明:

  第一項配置的作用,是允許root用戶使用sudo命令變成系統中任何其它類型的用戶。第二個配置規定,管理組中的所有成員都能以root的身份執行所有命令。因此,在默認安裝的Ubuntu系統中,要想作為root身份來執行命令的話,只要在sudo後面跟上欲執行的命令即可。下面用一個例子加以說明,如果您想執行apt-get update的話,應當在命令行中鍵入以下內容:

$ sudo apt-get update

  2.配置文件語法詳解

  接下來,我們用一個實例來詳細解釋/etc/sudoers文件的配置語法,請看下面的例子:

jorge ALL=(root) /usr/bin/find, /bin/rm

  上面的第一欄規定它的適用對象:用戶或組,就本例來說,它是用戶jorge。此外,因為系統中的組和用戶可以重名,要想指定該規則的適用對象是組而非用戶的話,組對象的名稱一定要用百分號%開頭。

  第二欄指定該規則的適用主機。當我們在多個系統之間部署sudo環境時,這一欄格外有用,這裡的ALL代表所有主機。但是,對於桌面系統或不想將sudo部署到多個系統的情況,這一欄就換成相應的主機名。

  第三欄的值放在括號內,指出第一欄規定的用戶能夠以何種身份來執行命令。本例中該值設為root,這意味著用戶jorge能夠以root用戶的身份來運行後面列出的命令。該值也可以設成通配符ALL,jorge便能作為系統中的任何用戶來執行列出的命令了。

  最後一欄(即/usr/bin/find, /bin/rm)是使用逗號分開的命令表,這些命令能被第一欄規定的用戶以第三欄指出的身份來運行它們。本例中,該配置允許jorge作為超級用戶運行 /usr/bin/find和 /bin/rm這兩個命令。需要指出的是,這裡列出的命令一定要使用絕對路徑。

  3.sudo命令的使用方法

  現在的問題是,用戶jorge怎樣利用分配給他的權限呢?其實很簡單,只要在命令行模式下使用sudo命令。

  加上他想運行的程序就可以了,比如:

jorge@ubuntu:~$ sudo find . ! -name '*.avi' -exec rm -f //{/
     
      
     
    
    
    

			
Copyright © Linux教程網 All Rights Reserved