SU

su 切换用户
su - 用户名 是彻底 切换用户 -c 以当用户身份执行“这条命令

/etc/skel 模板文件 "!$ " 上条命令的最后参数

SUDO

sudo 可以让普通用户临时指定root用户的身份执行 visudo 命令实际上打开的是-> /etc/sudoers 配置文件 root ALL = ( ALL ) ALL 用户 被管理主机的地址= 可用的身份 授权命令 (绝对路径) huige ALL = ( ALL ) /usr/sbin/shutdown -h now NOPASSWD 不使用密码 vi编辑器 :set nu 查看行数

%wheel 用户组设置

总结su与sudo

sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。

su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。

其实,还有几个类似的用法: sudo /bin/bash : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。 sudo -s : 如上 sudo su : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。 sudo su - : 这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su - ,这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的,但是也有不同,sudo 只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。

sudo su - 约等于 sudo -i
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。

禁止远程登录root用户

!禁止远程登录root用户 visudo

User_Alias huige1 = huige, user1, user2

huige1 ALL=(ALL) NOPASSWD: /usr/bin/su

vim /etc/ssh/sshd_config

vi 编辑器 “/root ” 搜索

#PermitRootLogin yes
修改为 PermitRootLogin no #拒绝root登录,其他用户还可以登录

systemctl restart sshd.service 重启服务

禁止远程登录root