su:
切换用户
su - user1 (切换到user1用户,加- 表示彻底切换,包括加载用户的环境配置,家目录等;不加- 切换后仍然停留在切换前的目录)
su - -c “命令” user1 (不切换到user1用户,但使用user1用户去执行“”里面的命令)
sudo:
给一个用户授权另外一个用户的权限去临时执行命令,通常给普通用户授权root用户去临时执行命令。
visudo :打开sudo的配置文件;查找“root ALL=(ALL) ALL” 下行添加:
“user1 ALL=(ALL) NOPASSWD: ALL” #user1用户允许 不用输入自己的密码NOPASSWD 在任意地方(ALL=(ALL)) 执行任意命令(最后的ALL)亦可更改成特定的命令:命令1, 命令2, 命令3(命令用绝对路径,逗号后有空格)
user1用户执行 sudo [命令]: 即可临时使用root权限执行[命令]
限制root远程登陆:
1. visudo :打开sudo的配置文件;查找“root ALL=(ALL) ALL” 下行添加:
“user1 ALL=(ALL) NOPASSWD: /usr/bin/su” #允许user用户在任意地方不需要密码临时拥有root权限使用su命令
2. 登陆user1用户,执行 sudo su - #切换到root用户,无限制
3. 编辑/etc/ssh/sshd_config,搜索“PermitRoot” 搜出来的”#PermitRootLongin yes“ 将 “#”去掉和“yes”改成“no”,注意修改并重启sshd服务后将不能使用root用户登录
PS:
普通用户家目录下基础环境配置文件模板:/etc/skel/ (包含.bash_logout;.bash_profile;.bashrc)