su命令
切换到普通用户:
[root@jan-01 ~]# su - Jan-1 [Jan-1@jan-01 ~]$ whoami Jan-1
如果普通用户不满足在home目录下有普通用户的家目录,并且里面配置文件,责使用su命令切换无效会提示不能反问
[root@jan-01 ~]# ls /home/Jan [root@jan-01 ~]# su - Jan su: user Jan does not exist
我们可以通过拷贝好所需文件到普通用户的家目录下,这样这个用户就可以使用了
[root@jan-01 ~]# ls -la /etc/skel 总用量 24 drwxr-xr-x. 2 root root 62 10月 14 21:59 . drwxr-xr-x. 77 root root 8192 12月 28 01:56 .. -rw-r--r--. 1 root root 18 8月 3 2016 .bash_logout -rw-r--r--. 1 root root 193 8月 3 2016 .bash_profile -rw-r--r--. 1 root root 231 8月 3 2016 .bashrc [root@jan-01 ~]# cp /etc/skel/.bash* /home/Jan [root@jan-01 ~]# chown -R Jan:Jan /home/Jan //别忘了执行用户家目录的所有者和所属组
sudo命令
给普通用户添加root权限命令:visudo
[root@hao1 ~]# visudo
root用户下,用visudo给普通用户添加root的权限命令,格式如下图: 内容行数显示:一般模式下输入 :set nu 写入格式:此目的是:给普通用户授权root用户才可以使用的一些相应命令! 普通用户 ALL=(root) ALL或root下命令的绝对路径
-## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Jan-1 ALL=(root) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
-## Allows members of the 'sys' group to run networking, software,
在普通用户下,运行ls命令查看root目录,是没有权限的,使用sudo 命令后即可
[Jan-1@jan-01 ~]$ ls /root ls: 无法打开目录/root: 权限不够 [Jan-1@jan-01 ~]$ sudo /usr/bin/ls /root [sudo] password for Jan-1: // 输入普通用户的密码 123.txt anaconda-ks.cfg cmatrix-1.2a vm.tar.gz vmware-tools-distrib Yan
以上使用sudo命令需要输入密码,每次操作都需要输入密码的话,这样效率就会大大降低,由此我们可以通过更改sudo免去输入密码这一步
-## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Jan-1 ALL=(root) NOPASSWD:ALL
-## Allows members of the 'sys' group to run networking, software,
这样改好后,我们就可以直接sudo命令 ls查看root目录了
[root@jan-01 ~]# su - Jan-1 上一次登录:四 12月 28 03:15:18 CST 2017pts/0 上 [Jan-1@jan-01 ~]$ sudo ls /root 123.txt anaconda-ks.cfg cmatrix-1.2a vm.tar.gz vmware-tools-distrib Yan
除此之外我们还可以通过修改sudo信息将其它命令归类到一块,这样我们在设置中就不用输入那么多路径了
-# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
Cmnd_Alias JAN_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
-## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Jan-1 ALL=(root) NOPASSWD:JAN_CMD
这样我们就可以登录普通用户执行我们所设定好的ls、mv、cat这三条命令,且不用输入密码了。
我们可以设定普通用户alias(相当于用户组的作用,可包含多个用户)
[root@jan-01 ~]# visudo -# User_Alias ADMINS = jsmith, mikem User_Alias JANS = Jan,Jan-1
接下来我们给包含了多个普通用户的别名,设定一下root用户才可以执行的超级管理权限命令
[root@jan-01 ~]# visudo -## Allow root to run any commands anywhere root ALL=(ALL) ALL Jan-1 ALL=(root) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat JANS ALL=(root) NOPASSWD:JAN_CMD
这样的作用是可以是多个用户所有的设置的root命令都是一样的,这样当我们切换到别名包含的任意一个用户的时候就都可以使用sudo的命令了
限制root远程登录
修改sshd.service配置文件,设定限制root远程登录
[root@jan-01 ~]# vi /etc/ssh/sshd_config -#LoginGraceTime 2m -#PermitRootLogin yes //把这项改成:PermitRootLogin no (注意前面没有井号) -#StrictModes yes -#MaxAuthTries 6 -#MaxSessions 10
然后重启sshd.service服务就好
[root@jan-01 ~]# systemctl restart sshd.service
这样就可以禁止远程工具登录root了。