1. 程式人生 > >linux基礎之sudu的簡單用法

linux基礎之sudu的簡單用法

擁有 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的簡單用法