我有一个使用以下方式创建的用户
adduser --system --shell /bin/bash --home /home/myuser myuser
/etc/passwd 中的相应行如下:
myuser:x:106:65534::/home/myuser:/bin/bash
当我通过运行以该用户身份登录时sudo -u myuser bash
,出现错误
bash: /root/.bashrc: Permission denied
确实,echo $HOME
给了我/root/
。因此,每次我以该用户身份登录时,都必须export HOME=/home/myuser
手动运行,否则许多程序将无法正常运行。我已将此行添加到此用户的 .profile、.bash_profile 和 .bashrc(以防万一),但无济于事。
任何帮助都值得感激。谢谢!
答案1
你不是以该用户身份登录。sudo
只会更改您的安全凭证(UID、GID……),最多会调用几个 PAM 会话模块,但这仍然不是真正的“登录”(实际上都不是,su
甚至不是su -l
)。
特别是,sudo
为了方便起见,经常配置为保留原始主目录,因为许多人使用sudo -s
root 权限但想保留他们的常规 ~/.vimrc 等。
有sudo -H
强制设置 $HOME 的选项,以及sudo -i
以“登录”模式运行 shell 的选项(让其读取 .bash_profile),但无论如何,这些都不是完全登录。要以该用户身份正确登录,请尝试ssh myuser@localhost
,或者直接从常规登录提示符执行。