3.7 su命令

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码,其语法为: su - username **注意:**以上命令加上-切换才彻底,否则切换后的当前目录仍然还是在切换前的用户的家目录下,并没有一并切换到自己的家目录下. 以指定用户的身份去执行一条命令,例如: su - -c "touch /tmp/usertest.tat" usertest

系统模板目录 /etc/skel/ ls -la /etc/skel/ #查看系统模板目录 上图红框所示3个文件是初始家目录配置文件,若有用户家目录丢失,可创建家目录然后拷贝这3个文件过去,家目录就完整了. 延伸知识点: cat /etc/redhat-release #查看发行版 uname -a #查看内核

3.8 sudo命令

sudo命令用来以其他身份来执行命令,预设的身份为root. 例如,想让普通用户执行某些root才有权限使用命令,又不想提供root密码,则可用sudo命令. 要想给某个普通用户授予用sudo命令执行root身份的能用的命令,root用户需要先编辑/etc/sudoers.tmp配置文件(此处不建议用vi打开编辑,建议用visudo命令,其原因是通过visudo命令打开系统会帮忙检查语法错误,用vi则不会),授予某普通用户相关命令权限. 案例:现有普通用户usertest,他想通过cat查看/root/helleworld文件,系统会提示"权限不够" 现在我们切换回root用户,输入visudo命令打开编辑/etc/sudoers.tmp配置文件,找到## Allow root to run any commands anywhere这一行,按i键,加入如下一行: usertest ALL=(ALL) /usr/bin/cat 按Esc退出编辑模式,输入:wq保存退出. 这时我们再切换回usertest用户,输入如下命令: sudo cat /root/helloworld 此时系统提示输入usertest用户自己的密码(仅首次使用时需要),输入密码后则有权限查看/root/helleworld文件了.

***小技巧: *** visudo #查看sudo配置文件,可检测语法错误 当用visudo查看配置文件时,输入:set nu能显示行号

3.9 限制root远程登录

某些情况下为安全起见,需要限制root的远程登录,其操作步骤如下: 输入vi /etc/ssh/sshd_config,编辑SSH配置文件 找到#PermitRootLogin yes这一行, 按i键进入编辑模式,将其改成PermitRootLogin no 按Esc退出编辑模式,输入:wq保存退出.

然后输入如下命令重启sshd服务: systemctl restart sshd.service 此时再用root远程登录则不成功了. 延伸知识点: 要想让一个普通用户不用输入密码就能切换到root用户,可通过在/etc/sudoers.tmp文件中为相关用户设置su命令NOPASSWD的方法来实现,如下图则是设置了用户usertest,usertest2能通过sudo su - 命令直接切换到root用户.