Linux學習筆記——使用指定的用戶權限執行程序——sudo


      sudo可以用來以其他用戶身份執行命令,sudo命令可以針對單個命令授予臨時權限。sudo僅在需要時授予用戶權限,減少了用戶因為錯誤執行命令損壞系統的可能性。

1:sudo的幫助信息如下:

qian@ubuntu:~/桌面$ sudo --help
sudo - 以其他用戶身份執行一條命令

usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...

選項:
-A, --askpass 使用助手程序進行密碼提示
-b, --background 在后台運行命令
-C, --close-from=num 關閉所有 >= num 的文件描述符
-E, --preserve-env 在執行命令時保留用戶環境
-e, --edit 編輯文件而非執行命令
-g, --group=group 以指定的用戶組或 ID 執行命令
-H, --set-home 將 HOME 變量設為目標用戶的主目錄。
-h, --help 顯示幫助消息並退出
-h, --host=host 在主機上運行命令(如果插件支持)
-i, --login 以目標用戶身份運行一個登錄 shell;可同時指定一條命令
-K, --remove-timestamp 完全移除時間戳文件
-k, --reset-timestamp 無效的時間戳文件
-l, --list 列出用戶權限或檢查某個特定命令;對於長格式,使用兩次
-n, --non-interactive 非交互模式,不提示
-P, --preserve-groups 保留組向量,而非設置為目標的組向量
-p, --prompt=prompt 使用指定的密碼提示
-r, --role=role 以指定的角色創建 SELinux 安全環境
-S, --stdin 從標准輸入讀取密碼
-s, --shell 以目標用戶運行 shell;可同時指定一條命令
-t, --type=type 以指定的類型創建 SELinux 安全環境
-U, --other-user=user 在列表模式中顯示用戶的權限
-u, --user=user 以指定用戶或 ID 運行命令(或編輯文件)
-V, --version 顯示版本信息並退出
-v, --validate 更新用戶的時間戳而不執行命令
-- 停止處理命令行參數

 

2:有關sudo需要注意的地方

注意sudo命令是用來以其他身份來執行命令的,其預設的身份為root(也就是說,經由 sudo 所執行的指令就好像是 root 親自執行的一樣)。在/etc/sudoers中設置了可執行sudo指令的用戶。若其未經授權的用戶企圖使用sudo,則會發出警告的郵件給管理員。用戶使用sudo時,必須先輸入密碼,之后有5分鍾的有效期限,超過期限則必須重新輸入密碼。

qian@ubuntu:~/桌面$ vim /etc/sudoers

/etc/sudoers" [權限不足] 

qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
[sudo] password for qian:
qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
qian@ubuntu:~/桌面$

從實驗中我們發現,首先,我們使用vim命令嘗試編輯 /etc/sudoers,系統提示我們“權限不足”。然后,我們試着加上sudo再嘗試。sudo要求我們提供用戶密碼。請注意:它要求你提供的是你的密碼,而不是root的密碼。最后,我們打開了 /etc/sudoers 這個文件。就這樣,我們相當於在不知道root用戶密碼的情況下,執行了只有root用戶才能操作的命令,是不是很好玩。

 

3:給用戶添加sudo權限

要使用sudo,用戶必須被定義在 /etc/sudoers 內才可以的。

方法一如下:

原文連接 http://blog.chinaunix.net/uid-25305993-id-126661.html

1:進入超級用戶模式。也就是輸入"su -",系統會讓你輸入超級用戶密碼,輸入密碼后就進入了超級用戶模式。(當然,你也可以直接用root用)

2:添加文件的寫權限。也就是輸入命令"chmod u+w /etc/sudoers"。 

3:編輯/etc/sudoers文件。也就是輸入命令"vim /etc/sudoers",進入編輯模式,找到這一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(這里的xxx是你的用戶名),然后保存退出。

4:撤銷文件的寫權限。也就是輸入命令"chmod u-w /etc/sudoers"。 然后就行了。

 

方法二如下:

原文連接 http://man.linuxde.net/sudo

配置sudo必須通過編輯/etc/sudoers文件,而且只有超級用戶才可以修改它,還必須使用visudo編輯。之所以使用visudo有兩個原因,一是它能夠防止兩個用戶同時修改它;二是它也能進行有限的語法檢查。

 

4:有關sudo其他比較有益的文章

http://os.51cto.com/art/201307/404879.htm

http://onlyzq.blog.51cto.com/1228/517701/

http://os.51cto.com/art/201010/229477.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM