三周第三次课(12月27日)
3.7 su命令
3.8 sudo命令
3.9 限制root远程登录
3.7 su命令
su命令就是切换用户的工具,通过su可以在用户之间切换,如果超级权限用户root向普通用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。
1. 格式:su [选项参数][-] [用户]
# -, -l或--login:登录并改变到所切换的用户环境,此外也会变更PATH变量。大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,所以环境变量信息也会变更为新用户的相应信息。如果没有指定USER,缺省情况是root。
# -c<指令>或--command=<指令>:执行完指定的指令后,退出所切换到的用户环境,即恢复原来的身份;
# -f或--fast:适用于csh与tsch,使shell不用去读取启动文件;
# -l或-login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
# -m,-p或--preserve-environment:变更身份时,不要变更环境变量;
# -s<shell>或--shell=<shell>:指定要执行的shell;
# --help:显示帮助;
#--version;显示版本信息
2. su命令与su - 命令的区别
su 是切换到其他用户,但是不切换环境变量
su - 是切换到自己的家目录下,是完整的切换到一个用户环境。
所以建议大家切换用户的时候,尽量使用 su - ,这样才切换彻底。
举例:
1)切换到自己的家目录下,会加载自己家目录下的配置文件
2)在当前用户下,不登录到其他用户,以其他用户的身份去执行一条命令,
属组信息
3)普通用户下切换另外的普通用户下
;
4)切换到的用户如果没有家目录的情况下,没有相应的用户配置文件加载导致的
恢复正常的操作:
还是不正常的原因是在用户家目录下没有任何配置文件
系统下有个模板目录“/etc/skel/”
拷贝上图红框里的3个文件到user5用户下
5)普通用户切换到root用户
3.8 sudo命令
sudo服务的配置原则也很简单一一在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。
sudo命令用于可以给普通用户临时拥有root用户的身份,可以避免把root用户的密码给普通用户,可以给普通用户授权单独指定某
一些命令
格式为 "sudo [参数] 命令名称"
# -h:列出帮助信息
# -l:列出当前用户在主机上可执行的命令;
# -u 用户名或UID: 以指定的用户身份执行命令
# -v:验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作; 用-v 可以跟踪最新的时间戳;
# -k:清空密码的有效时间,下次执行sudo时需要再次进行密码验证
# -b:在后台执行指定的命令
# -p:更改询问密码的提示语
总结来说,sudo命令具有如下功能:
1)限制用户执行指定的命令;
2)记录用户执行的每一条命令;
3)配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
2. visudo命令
如果担心直接修改配置文件会出现问题,则可以使用sudo命令提供的visudo命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
只有root管理员才可以使用visudo命令编辑sudo服务配置文件。
在配置文件中,定位到如下位置,这里是整个配置文件中最核心的配置
【:set nu】可以查看文件的行数
格式:
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
use1用户是无法使用【ls】命令的
用sudo就可以使用了。 先用【sudo –l】查看当前用户在主机上可执行的命令
第一次执行时会让你输入用户密码,第二次有不需要了。
不输入密码:
命令alias
用户组限制:
3.9 限制root远程登录
1)让普通用户可以临时切换到root用户
编辑visudo文件
2)编辑“/etc/ssh/sshd_config”文件
修改“PermitRootLogin” yes---》no
重启服务
测试root用户无法登陆
用普通用户登录