/etc/profile 不是为 `sudo su` 提供的

spr*_*aff 9 bash sudo path

我已经PATH=foo设置了/etc/profile

根据/etc/passwordrootmyaccount用户都/bin/bash作为登录shell。

当我以 身份登录时myaccountPATH已从 正确设置/etc/profile。如果 I 那么sudo suPATH不包括在/etc/profile.

如果我sudo su -改为,则/etc/profile来源。我知道无论如何这样做是一种很好的做法,但我不明白为什么有必要使用/etc/profile.

为什么sudo suclobber PATH,无视/etc/profile以及如何使它不?

roa*_*ima 14

sudo su 是应受诅咒直到地极的可憎之物。

解决了这个问题后,你会问你应该做什么。

# sudo asks for *your* password and must be configured via /etc/sudoers
sudo -s             # Shell for superuser
sudo -i             # Login shell for superuser
sudo -u jimmy -s    # Shell for user "jimmy"
sudo -u jimmy -i    # Login shell for user "jimmy"

# su asks for the root password and usually requires no configuration
su                  # Shell for superuser
su -                # Login shell for superuser
su jimmy            # Shell for "jimmy"
su - jimmy          # Login shell for "jimmy"
Run Code Online (Sandbox Code Playgroud)

仅登录 shell 源/etc/profile