su: Switch User, 以管理員身份運行某些命令:vim
su -l root -c 'COMMAND'
可是想要限制某個用戶只擁有一部分管理員權限,而不是擁有所有權限,這就須要用到sudoui
sudo: 是能夠讓某個用戶不須要擁有管理員的密碼,能夠執行管理員的權限spa
做爲管理員能夠指派某些用戶能夠執行某些特定命令,相似suidcode
配置文件:/etc/sudoersblog
root ALL=(ALL) ALL %wheel ALL=(ALL) ALL
%wheel: 運行命令者的身份,user
第一個ALL:在哪些主機上, host
第二個ALL:以哪一個用戶的身份, runas
第三個ALL:運行哪些命令, command
配置項: users hosts=(runas) commands users: username #uid user_alias %group_name %#gid hosts: ip hostname netaddr commands: command name directory sudoedit Alias_Type NAME = item1, item2, ... NAME: 必須使用全大寫字母 Alias_Type: User_Alias Host_Alias Runas_Alias Cmnd_Alias Alias_type NETADMIN = netuser1, netuser2 Cmnd_Alias NETADMINAMNDS = /usr/sbin/ip
實例:vim /etc/sudoers User_Alias NETADMIN = netuser1, netuser2 Cmnd_Alias NETADMINCMNDS = /usr/sbin/ip NETADMIN ALL=(root) NETADMINCMNDS
命令: sudo [-u user] COMMAND ip
-V: 顯示版本編號 -h: 會顯示版本編號及指令的使用方式說明 -l: 顯示出本身(執行sudo的使用者)的權限 -v: 由於sudo在第一次執行時或是在N分鐘內沒有執行(N預設爲五)會問密碼,這個參數是從新作一次確認,若是超過N分鐘,也會問密碼 -k: 將會強迫使用者在下一次執行sudu時問密碼(不論有沒有超過N分鐘) -b: 將要執行的指令放在後臺執行
-p prompt 能夠更改問密碼的提示語,其中%u會代換爲使用者的帳號名稱,%h會顯示主機名稱
-u username/#uid 不加此參數,表明要以root的身份執行指令,而加了此參數,能夠以username的身份執行指令(#uid爲該username的使用者號碼)
實例 User_Alias USERADMIN = poweruser1, poweruser2 Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]* !/usr/bin/passwd root //不容許修改root管理員密碼 USERADMIN ALL=(root) NOPASSWD: USERADMINCMNDS