linux基礎之sudu的簡單用法
阿新 • • 發佈:2019-05-02
擁有 bin commands com sudoers 管理員權限 nop 顯示 版本
su: Switch User, 以管理員身份運行某些命令:
su -l root -c ‘COMMAND‘
但是想要限制某個用戶只擁有一部分管理員權限,而不是擁有全部權限,這就需要用到sudo
sudo: 是可以讓某個用戶不需要擁有管理員的密碼,可以執行管理員的權限
作為管理員可以指派某些用戶可以執行某些特定命令,類似suid
配置文件:/etc/sudoers
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
-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
linux基礎之sudu的簡單用法