当我从 root 用户切换到用户(安装时自动创建)git 自动部署) 和
sudo -u git-auto-deploy /bin/bash
我总是收到这个错误:
bash: /root/.bashrc: 权限被拒绝
我创建了一个用户主目录,并.profile
在其中添加了以下内容(source
也在其中运行):
export HOME=/srv/users/git-auto-deploy
该命令finger git-auto-deploy
给出以下输出:
Login: git-auto-deploy Name:
Directory: /srv/users/git-auto-deploy Shell: /bin/bash
Never logged in.
以此用户身份登录时,该env
命令仍然列出不正确的目录:
HOME=/root
我究竟做错了什么?
答案1
使用sudo -s -H -u git-auto-deploy
。
sudo
其本身不会改变 的值,但在使用HOME
时会改变 的值。-H
这就是您收到“权限被拒绝”错误的原因。用户无法访问root
的主目录(也不应该能够访问)。
该-s
选项使sudo
指定用户启动任何配置为登录 shell 的 shell(即无需显式运行/bin/bash
)。