centos7.2 版本,我们不可能每次都用root账号登陆,root账号公认的不安全,所以,首先,禁止掉root账号的登陆。
1.静止root账号登陆。
$ vi /etc/ssh/sshd.conf (ssh服务的配置文件,直接修改)
----------------------------------
PermitRootLogin no ( 找到这一行,并将其改为 no )
---------------------------------------
保存退出
$ systemctl restart sshd (重启一下sshd服务)
2.创建用户并授权
$ adduser sss (创建用户sss)
$passwd sss (创建sss的密码)
$ chmod -v u+w /etc/sudoers (增加 sudoers 文件的写的权限,默认为只读)
$ vi /etc/sudoers (修改 sudoers)
-------------------------------------------------------
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
sss ALL=(ALL) ALL (添加这一行)
-------------------------------------------------------
保存,退出
$ chmod -v u-w /etc/sudoers (删除 sudoers 的写的权限)
好了,现在账号已经创建好了,使用sss账号登陆后,在命令前加 sudo 则是使用root权限了。第一次使用会弹出一些提示信息,正常现象。
sudo是一种权限管理机制,管理员可以授权于一些普通用户去执行一些root执行的操作,而该普通用户而不需要知道root的密码,它依赖于/etc/sudoers这个文件,可以授权于某个普通用户在主机上能够以管理员的身份执行什么样的管理命令,而且是有限的。这个文件相当于就是一个授权表。
实例
visudo= vi /etc/sudoers
语法
user MACHINE=COMMANDS
- user想要分配的用户
- MACHINE希望用户管理的机器
- COMMANDS希望用户拥有哪些权限(权限以命令为单位)
root ALL=(ALL) ALL
括号里表示允许该用户以哪个用户的权限去做事。
(1)
此时的Ian普通用户就相当于root了。
如果需要使用sudo,不输入密码:
二、普通用户添加sudo权限并不需要输入密码
vim /etc/sudoers
USERNAME ALL = NOPASSWD: ALL
但普通用户Ian在执行root操作时,必须得在命令前面加sudo,不然还是不能执行的。执行root操作时,需要的密码也不再是root超级用户的密码,而是普通用户的密码。
(2)
[root@muban ~]# which useradd #which 查看命令所在路径
/usr/sbin/useradd
三、linux 普通用户切换成root免密码的实现
[root@ok ~]# vim /etc/pam.d/su
#%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. #auth required pam_wheel.so use_uid auth include system-auth account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so
将第4行的#号去掉,然后将登陆用户加入 wheel组
[root@ok ok]# usermod -G wheel ok [ok@ok ~]$ su [root@ok ok]#
Comments | NOTHING