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

centos允许root登录 centos怎么以root权限登录_普通用户

语法 
user MACHINE=COMMANDS

  • user想要分配的用户
  • MACHINE希望用户管理的机器
  • COMMANDS希望用户拥有哪些权限(权限以命令为单位)

root ALL=(ALL) ALL 
括号里表示允许该用户以哪个用户的权限去做事。

(1)

此时的Ian普通用户就相当于root了。 

centos允许root登录 centos怎么以root权限登录_linux_02

但普通用户Ian在执行root操作时,必须得在命令前面加sudo,不然还是不能执行的。执行root操作时,需要的密码也不再是root超级用户的密码,而是普通用户的密码。 

centos允许root登录 centos怎么以root权限登录_创建用户_03

(2)

centos允许root登录 centos怎么以root权限登录_linux_04


 


  1. [root@muban ~]# which useradd #which 查看命令所在路径
  2. /usr/sbin/useradd
  • Centos下,我们可以用SU命令让当前用户临时获得管理员权限。
    su是最简单的身份切换名,用su可以进行任何用户的切换,一般都是su - username,然后输入密码就ok了,但是root用su切换到其他身份的时候是不需要输入密码的。一般切换身份都是切换到root,然后进行一些只有root能干的事,比如修改配置文件,比如下载安装软件,这些都只能是root才有权限干的事,切换到root可以是单纯的su,或者是su -和su - root,后面两个是一样的意思。

    centos允许root登录 centos怎么以root权限登录_centos允许root登录_05

    单纯使用su切换到root,读取变量的方式是non-login shell,这种方式下很多的变量都不会改变,尤其是PATH,所以root用的很多的命令都只能用绝对路径来执行,这种方式只是切换到root的身份。而用su -这种方式的话,是login shell方式,它是先以root身份登录然后再执行别的操作。如果只要切换到root做一次操作就好了,只要在su后面加个-c参数就好了,执行完这次操作后,又会自动切换回原账号身份,很方便。