sudo指令詳解
sudo指令是Linux上的一個非常有用的工具,它允許系統管理者配置設定給普通使用者一些合理的“權利”,讓他們執行一些隻有超級使用者或其他特許使用者才能完成的任務,比如:運作一些像mount,userdel,useradd之類的指令,或者編輯一些系統配置檔案,像/etc/passwd,/etc/samba/smb.conf等。這樣以來,就不僅減少了root使用者的登陸次數和管理時間,也提高了系統安全性。
一、sudo指令的特點
1. sudo能夠限制指定使用者在指定主機上運作某些指令。
2. sudo可以提供日志,忠實地記錄每個使用者使用sudo做了些什麼,并且能将日志傳到中心主機或者日志伺服器。
3. sudo為系統管理者提供配置檔案,允許系統管理者集中地管理使用者的使用權限和使用的主機。它預設的存放位置是/etc/sudoers。
4.sudo使用時間戳檔案來完成類似“檢票”的系統。當使用者執行sudo并且輸入密碼後,使用者獲得了一張預設存活期為300秒的“入場券”(預設值可以在編譯的時候改變)。逾時以後,使用者必須重新輸入密碼。
二、配置檔案
1)授權機制:sudo的授權配置檔案,/etc/sudoers
對于此配置檔案,共分為兩類内容:
1.别名的定義:定義内建變量;
2.使用者規格:其實就是授權項,其中可以調用定義過的别名;
2)使用者規格(授權項):
每行隻能有一個授權項;
其格式為:
who where=(whom) what
user client=(runas) commands
注意:通過編輯/etc/sudoers檔案完成的授權,隻能通過sudo指令來啟用;
3)/etc/sudoers檔案的編寫格式:
who: 此次sudo配置的授權目标使用者;
username:單個使用者的使用者賬戶名稱;
#uid:單個使用者的UID;
%groupname:指定組内的所有使用者賬戶;
%#gid:以"gid"為GID的組内的所有使用者賬戶;
user_alias:事先定義過的使用者賬戶的别名;
where:定義被授權通路的用戶端主機;
ip/hostname:單個主機;
Network Address:網絡位址;
host_alias:事先定義過的主機的别名;
whom:授權使用者後續指令的運作者的真實身份;通常是root;
what:此次授權能夠運作的指令;
command:單個指令;
directory:指定目錄下所有的指令;
sudoedit:特殊指令,用于授權其他使用者可以執行sudo指令,并且可以編輯/etc/sudoers檔案;
cmnd_alias:實作定義過的指令的别名;
三、指令參數
sudo [option]... command
-u user:以指定的使用者身份運作指令;
-h 會顯示版本編号及指令的使用方式說明
-l 顯示出自己(執行sudo的使用者)的權限
-v 因為sudo在第一次執行時或是在 N 分鐘内沒有執行(N 預設為5)會問密碼,這個參數是重新做一次确認,如果超過N分鐘,也會問密碼
-k 将會強迫使用者在下一次執行sudo時問密碼(不論有沒有超過N分鐘)
-b 将要執行的指令放在背景執行
-p prompt 可以更改問密碼的提示語,其中%u會代換為使用者的帳号名稱,%h會顯示主機名稱
四、定義别名的方法
Alias_Type ALIASNAME = item1, item2, ...
Alias_Type:
User_Alias:
Host_Alias:
Runas_Alias:
Cmnd_Alias:
ALIASNAME:别名的名稱必須全部使用大寫字母;
User_Alias USERADMINUSERS = tom, jerry, centos, suse, %myclass
Cmnd_Alias USERADMINCOMMANDS = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod
USERADMINUSERS ALL=(root) USERADMINCOMMANDS
常用的标簽:
PASSWD
NOPASSWD
Cmnd_Alias USERADMINCOMMANDS = NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod
這樣NOPASSWD後面的指令在執行的時候是不需要輸入密碼的,PASSWD後面的指令執行的時候則需要輸入密碼。
本文轉自 Runs_ 51CTO部落格,原文連結:http://blog.51cto.com/12667170/1969678,如需轉載請自行聯系原作者