Linux ssh 切换登录用户自动转到root用户,很多场景里需要用到。

例如,Ubuntu本机普通用户切换到root,AWS和滴滴云默认普通用户切换到root

 

使用SSH登录远端的Linux服务器,假设登录使用的用户名是mimvp

登录成功后,会直接进入/home/mimvp/目录下,但这时使用的用户名还是mimvp,如下所示:

mimvp@ubuntu:~$ pwd
/home/mimvp
mimvp@ubuntu:~$ whoami
mimvp

 

如果要使用root用户的话,必须使用 sudo –s 进行切换,

因为root权限会频繁使用,如果希望SSH连接到Linux服务器后,自动切换到root用户,

方法如下:

1、修改普通用户的环境变量

切换到普通用户模式,修改普通用户目录下的 .bash_profile 配置文件

vim /home/mimvp/.bash_profile   或   vim ~/.bash_profile 

mimvp@ubuntu:~$ pwd /home/mimvp
mimvp@ubuntu:~$ sudo vim .bash_profile

在该文件中修改两处:

1)添加一行  

sudo su root

2)修改一行

PATH=$PATH:$HOME/.local/bin:$HOME/bin

PATH=$PATH:$HOME/bin

修改后的 .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/.local/bin:$HOME/bin
PATH=$PATH:$HOME/bin

export PATH

使用 SecureCRT连接工具,不用重启,重新登录,即可切换到了 root (米扑验证成功

若本机需要生效,需要重启服务器,使修改生效

 

2、/etc/sudoers 文件修改

#修改文件权限,拥有编辑文件写的权限
chmod u+w /etc/sudoers
vim /etc/sudoers
#编辑文件,在root ALL=(ALL)ALL行下添加
xxx ALL=(ALL) NOPASSWD:ALL
#XXX为你的用户名
#改回文件的原权限
chmod u-w /etc/sudoers

 

 

参考推荐

Linux sudo 免密码输入

Linux shell 脚本通过expect实现自动输入密码

Ubuntu 14.04 设置开机启动脚本

Mac OS 查看网络端口

Mac 上启用 root 用户或更改 root 密码

Mac sudo: /etc/sudoers is owned by uid 501, should be 0