用户和组管理(三)

摘要:3.7 su命令  

          3.8 sudo命令

          3.9 限制root远程登录

扩展

sudo与su比较http://www.apelearn.com/bbs/thread-7467-1-1.html

sudo配置文件样例 www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers 

sudo不错的教程http://www.jianshu.com/p/51338e41abb7

sudo -i 也可以登录到root吗?http://www.apelearn.com/bbs/thread-6899-1-1.html

一 su命令

    用于切换用户

    1.用法# su - [用户名]

        从root用户切换到普通用户,无需密码即可实现,从普通用户切换到root用户,从普通用户切换到普通用户在知道密码的情况下也可实现

用户和组管理(三)_第1张图片

    2.不登录普通用户执行命令

# su - -c "待执行命令" 【用户名】

当切换用户时出现以下故障,说明用户密码被锁定,需要解锁

用户和组管理(三)_第2张图片

    3.当普通用户家目录不存在时

 当普通用户家目录不存在时,系统会提示用户登录失败,

用户和组管理(三)_第3张图片

这时,我们先来创建用户的家目录

# id [用户名]

# mkdir /home/[用户名]

# chown [所有者]:[所属组] [用户名]

用户和组管理(三)_第4张图片

此时,我们再来切换用户仍然失败,因为用户家目录下没有配置文件: .bash_logout  .bash_profile   .bashrc ,

用户和组管理(三)_第5张图片

这时我们可以在系统的模板目录下将3个.bash开头的隐藏文件复制到该用户的家目录下,然后再来登录该用户即可成功登录

用户和组管理(三)_第6张图片

二  sudo命令

    可以让普通用户临时以指定用户的身份去执行一条命令,通常情况下都是给普通用户授权root用户的身份

    1.查看sudo配置文件

    # visudo

用户和组管理(三)_第7张图片

小技巧:编辑模式下使用:set nu可以查看行数

用户和组管理(三)_第8张图片

在下图位置加入如下代码:

        user02     ALL=(ALL)         /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

用户和组管理(三)_第9张图片

        随后保存配置,如果语法错误,则系统会提示,如果没有语法错误,则没有提示。

        我们来测试下su 和sudo,直接使用su登录普通用户后执行ls命令的话系统会提示权限不够,使用前记得去掉上图设置的命令的所有者和所属组的s权限

用户和组管理(三)_第10张图片

再来使用# sudo [命令] [目录] 

用户和组管理(三)_第11张图片

但是上图用法中使用了密码,如果想不输入密码直接使用命令,可以在sudo配置文件中加入NOPASSWD,如下图:

配置成功后,再来第一次使用sudo命令则不需用户输入密码

用户和组管理(三)_第12张图片

在配置sudo的过程中,也可以给命令做一个别名Alias后使用,修改如下图:

设置完毕后再来测试是否生效

用户和组管理(三)_第13张图片

另外,如果针对几个不同用户想以root用户身份使用相同的几个命令,可以将这几个用户放在同一个组中,再给这个组设置对应的sudo权限

三 限制root远程登录

1.编辑配置文件

    # vi /etc/ssh/sshd_config

    进入编辑模式,去掉下面这一行行首的#,行末的yes改为no

用户和组管理(三)_第14张图片

2.重启服务

    # systemctl restart sshd.service

另外,如果普通用户想切换到root用户下,但又不知道密码,此时管理员可以编辑sudo配置文件,给某普通用户授予su -  root的权限

配置完成后,我们再来在普通用户下不需密码登录到root用户

你可能感兴趣的:(用户和组管理(三))