为su新用户创建bash别名并获取脚本

时间:2014-05-29 18:33:35

标签: bash su

我想创建一个执行以下操作的bash别名:

  • su给其他用户
  • cd到某个目录
  • source另一个脚本(特别是python virtualenv激活脚本)

运行别名后,我希望以激活virtualenv的目录中的用户身份登录。我可以让一切工作除了su,它似乎生活在它自己的平行宇宙中。

我看不到让cdsourcesu环境中运行的方法,并让我能够继续在su环境中工作。 (例如su -c只运行操作并离开我开始的地方。)

更新

为了澄清一点,我想要这样的事情:

sudo -u www-data bash -c 'cd /var/www; pwd; whoami'

但我想留在交互式子shell中,直到我^D出来。

1 个答案:

答案 0 :(得分:2)

如果您不关心~/.bashrc,则可以直接找到您的文件:

su -c 'bash --rcfile myfile' 

如果你关心并且你的文件只导出变量(即没有定义别名或完成):

su -c 'source myfile; bash'

如果您确实需要~/.bashrc,并且需要定义别名和完成,则可以使用以下内容来源:

su -s /bin/bash -c 'bash --rcfile <(echo "source ~/.bashrc; source myfile")'