摘要: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用户,从普通用户切换到普通用户在知道密码的情况下也可实现
2.不登录普通用户执行命令
# su - -c "待执行命令" 【用户名】
当切换用户时出现以下故障,说明用户密码被锁定,需要解锁
3.当普通用户家目录不存在时
当普通用户家目录不存在时,系统会提示用户登录失败,
这时,我们先来创建用户的家目录
# id [用户名]
# mkdir /home/[用户名]
# chown [所有者]:[所属组] [用户名]
此时,我们再来切换用户仍然失败,因为用户家目录下没有配置文件: .bash_logout .bash_profile .bashrc ,
这时我们可以在系统的模板目录下将3个.bash开头的隐藏文件复制到该用户的家目录下,然后再来登录该用户即可成功登录
二 sudo命令
可以让普通用户临时以指定用户的身份去执行一条命令,通常情况下都是给普通用户授权root用户的身份
1.查看sudo配置文件
# visudo
小技巧:编辑模式下使用:set nu可以查看行数
在下图位置加入如下代码:
user02 ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
随后保存配置,如果语法错误,则系统会提示,如果没有语法错误,则没有提示。
我们来测试下su 和sudo,直接使用su登录普通用户后执行ls命令的话系统会提示权限不够,使用前记得去掉上图设置的命令的所有者和所属组的s权限
再来使用# sudo [命令] [目录]
但是上图用法中使用了密码,如果想不输入密码直接使用命令,可以在sudo配置文件中加入NOPASSWD,如下图:
配置成功后,再来第一次使用sudo命令则不需用户输入密码
在配置sudo的过程中,也可以给命令做一个别名Alias后使用,修改如下图:
设置完毕后再来测试是否生效
另外,如果针对几个不同用户想以root用户身份使用相同的几个命令,可以将这几个用户放在同一个组中,再给这个组设置对应的sudo权限
三 限制root远程登录
1.编辑配置文件
# vi /etc/ssh/sshd_config
进入编辑模式,去掉下面这一行行首的#,行末的yes改为no
2.重启服务
# systemctl restart sshd.service
另外,如果普通用户想切换到root用户下,但又不知道密码,此时管理员可以编辑sudo配置文件,给某普通用户授予su - root的权限
配置完成后,我们再来在普通用户下不需密码登录到root用户