su-sudo
su:switch user
用戶切換
(1) su -l user
(2) su -l user -c 'COMMAND'
sudo
能夠讓獲得授權的用戶以另外一個用戶的身份運行指定的命令;
授權機制:授權文件 /etc/sudoers
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
編譯此文件的專用命令:visudo
授權項:
who where=(whom) commands
users hosts=(runas) commands
users:
username
#uid
%groupname
%#gid
user_alias
支持將多個用戶定義爲一組用戶,稱之爲用戶別名,即user_alias;
hosts:
ip
hostname
NetAddr
host_alias
runas:
...
runas_alias
commands:
command
directory:表示目錄下的所有命令
sudoedit:特殊權限,可用於向其它用戶授予sudo權限;
cmnd_alias
定義別名的方法:
ALIAS_TYPE NAME=item1, item2, item3, ...
NAME:別名名稱,必須使用全大寫字符;
ALIAS_TYPE:
User_Alias
Host_Alias
Runas_Alias
Cmnd_Alias
例如:
User_Alias NETADMIN=tom, jerry
Cmnd_Alias NETCMND=ip, ifconfig, route
NETADMIN localhost=(root) NETCMND
sudo命令:
檢票機制:能記錄成功認證結果一段時間,默認爲5分鐘;
以sudo的方式來運行指定的命令;
sudo [options] COMMAND
-l[l] command 列出用戶能執行的命令
-k 清除此前緩存用戶成功認證結果;
/etc/sudoers應用示例:
Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]*, !/usr/bin/passwd root
User_Alias USERADMIN = bob, alice
USERADMIN ALL=(root) USERADMINCMNDS
常用標籤:
NOPASSWD:
PASSWD:
USERADMIN ALL=(root) NOPASSWD:USERADMINCMNDS