用户切换的命令:su
su和su -
- su 【用户】命令切换用户,不改变当前目录和环境变量,同时集成了切换到用户的环境变量(拥有2个用户的环境变量)
- su - 【用户】命令就是新建连接进入的状态,进入自己的家目录和拥有自己的环境变量
应用场景就是考虑是否集成切换用户环境变量,避免切换后重新配置,如果没有环境变量需求还是建议直接su - 切换的干净点
sudo
由于root是最高权限,特定的服务和文件都必须root权限才能操作,就需要切换账号,但是root账号切换需要输入root的密码。
- 省去了每次的切换账号操作
- 针对root密码的安全性有了保障(普通用户不必知道root密码)
- 运行还是root用户(类似windows的右键管理运行一样)
- 格式:sudo cmd (正常操作前面加上sudo命令)
sudo配置文件
- /etc/sudoers,默认文件为只读,需要强制保存:wq!
配置1:
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL
用户/%用户组 ALL是否可以远程连接 (ALL)允许切换的用户 ALL允许执行的命令(绝对路径)
NOPASSWD:sudo命令后不需要再输入当前用户密码(免密)
ALL权限指定的都是加sudo命令后的权限,权限都是针对的白名单(黑名单可能效果会好点),一般都是默认ALL即可
配置2:
自定义组(别名),主要是为了多个用户在不同组中,也无法将整个组给权限。
User_Alias ADMINS = jsmith, mikem
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig
ADMINS为别名的名称(理解为组),后面为具体的用户
NETWORKING命令权限的控制组名,后面为绝对路径的命令配置文件
ADMINS ALL=(ALL) NOPASSWD:ALL
配置应用生效