sudo授权、su切换用户、免密登陆与切换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sudo授权、su切换用户、免密登陆与切换相关的知识,希望对你有一定的参考价值。
参考技术A 1、由root用户切换至普通用户:su chenfei
2、由普通用户切换至root用户
su root
但是需要输入密码
免密切换root用户的方法:
vim /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth sufficient pam_wheel.so trust use_uid #将这一行的#去掉,取消注释
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth include system-auth
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so
保存退出
将普通用户添加到wheel组中
usermod -G wheel chenfei
然后再来切换即可
######################################
使用ssh或telnet登陆后如何自动切换root:
方法:
首先切到普通用户:su chenfei
然后回到家目录中:cd (cd就可以)
修改:vim .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
sudo su - root #加入这么一个授权的命令
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
回到root用户
su root #上面的操作可以实现由普通用户免密切换到root用户,所以这边不用输密码
修改sudoers这个文件
vim /etc/sudoers
root ALL=(ALL) ALL
chenfei ALL=(ALL) NOPASSWD: ALL #在root后面添加普通用户
保存退出
切换普通用户可以进行测试: ssh登陆或者sudo su - root或sudo su root
su root与su - root的区别:
实践是检验真理的唯一标准:
[chenfei@master ~]$ sudo su root
[root@master chenfei]#
再看下一个:
[chenfei@master ~]$ sudo su - root
[root@master ~]#
用户切换命令:su 与 sudo
SU
su 切换用户
su - 用户名 是彻底 切换用户
-c 以当用户身份执行“这条命令
/etc/skel 模板文件
"!$ " 上条命令的最后参数
SUDO
sudo 可以让普通用户临时指定root用户的身份执行
visudo 命令实际上打开的是-> /etc/sudoers 配置文件
root ALL = ( ALL ) ALL
用户 被管理主机的地址= 可用的身份 授权命令 (绝对路径)
huige ALL = ( ALL ) /usr/sbin/shutdown -h now
NOPASSWD 不使用密码
vi编辑器 :set nu 查看行数
%wheel 用户组设置
总结su与sudo
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
其实,还有几个类似的用法:
sudo /bin/bash : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。
sudo su - : 这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su - ,这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的,但是也有不同,sudo 只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。
sudo su - 约等于 sudo -i
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。
禁止远程登录root用户
!禁止远程登录root用户
visudo
User_Alias huige1 = huige, user1, user2
huige1 ALL=(ALL) NOPASSWD: /usr/bin/su
vim /etc/ssh/sshd_config
vi 编辑器 “/root ” 搜索
#PermitRootLogin yes
修改为
PermitRootLogin no
systemctl restart sshd.service 重启服务
禁止远程登录root
以上是关于sudo授权、su切换用户、免密登陆与切换的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统命令"su - user"在普通用户之间的免密切换