我怎样才能 sudo su 并在之后更改目录?

Mar*_*eck 14 shell bash su sudo

我想创建一个别名来做这样的事情:

alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access'
Run Code Online (Sandbox Code Playgroud)

因此,从我的命令行,我使用 sudo 用户登录,并且我想输入别名,userYYY以便我的 shell 现在使用userYYYpwdis登录/a/path/that/only/userYYY/has/access

我怎样才能做到这一点?这userYYY是为了运行一些进程,它的家中肯定有任何东西。因此,我尝试使用以下方法更改其 $HOME:

sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY 
Run Code Online (Sandbox Code Playgroud)

然后从我的 shell 和我的 sudoer 文件我做了sudo su userYYY。但这没有用。唯一有效的方法是sudo su -l userYYYY在我原来的 shell ( -bash-4.1$ ....)中打开了一个新的 bash 。

总之,我想要的是简单地避免在我的 shell 中写 2 行:

sudo su userYYY
cd /a/path/that/only/userYYY/has/access
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Cyr*_*rus 10

alias userYYY='sudo su userYYY -c "cd /a/path/that/only/userYYY/has/access; /bin/bash"'
Run Code Online (Sandbox Code Playgroud)

  • 实际上,在使用它一段时间后,我注意到终端使用这种方法经常被杀死(断开大约 15-30 分钟,通常,我的终端在断开连接前持续大约 6 小时) (2认同)

小智 7

一种选择是编辑~/.bashrc目标用户,然后cd在其中添加:

cd /a/path/that/only/userYYY/has/access
Run Code Online (Sandbox Code Playgroud)