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与sudo的用法与实例

切换用户su命令授权sudo命令限制root远程登录

Linux系统命令"su - user"在普通用户之间的免密切换

Linux学习笔记(十三) su sudo 限制root远程登陆

账号安全控制之用户切换与提权

su和sudo命令的使用及日志追踪