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