для обычного пользователя я получаю:
/ usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin : / sbin: / bin: / usr / games: / usr / local / games: / home / monty / google_appengine
blockquote>, который фактически является содержимым
/etc/environment
Для пользователя root я получаю:
/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
blockquote>В чем причина этого и в каком файле содержится эта строка?
PATH - это переменная среды, и поэтому она "по умолчанию" или "сбрасывается" при изменении среды. См. man sudoers
для объяснения:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, SHELL, USER, USERNAME and the SUDO_* vari-
ables. Any variables in the caller's environment that
match the env_keep and env_check lists are then added.
The default contents of the env_keep and env_check
lists are displayed when sudo is run by root with the
-V option. If sudo was compiled with the SECURE_PATH
option, its value will be used for the PATH environment
variable. This flag is on by default.
/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
- это базовый путь без доработок. Разным пользователям будут добавлены разные каталоги по нескольким причинам.
Причина должна быть такой: root никогда не должен иметь больше каталогов в своем PATH, чем необходимо. Или наоборот: если root нужен файл, он должен находиться в / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
. Вы не играете в игры с правами root. Вы не используете диспетчер рабочего стола как root. Корень предназначен для административных задач.
В вики есть дополнительная информация (среди прочего, какие файлы используются для добавления в PATH): https://help.ubuntu.com/community/EnvironmentVariables
В случае обычного пользователя такие файлы, как ~ / .profile
, ~ / .bash_profile
, ~ / .bashrc
может быть добавлен к вашему пути по умолчанию (который должен быть таким же, как тот, который вы указали для root.
Вы можете проверить любой из этих файлов (это самые распространенные, о которых я знаю) на наличие таких строк, как
экспорт PATH = $ PATH: / usr / games: / usr / local / games: / home / monty / google_appengine
или
экспорт PATH = / usr / lib / lightdm / lightdm: $ PATH
.bashrc
и .profile
, похоже, имеют версии по умолчанию ( / etc / profile /
и /etc/bash.basrhc
) в ] / etc /
, вы можете проверить их на предмет пути к корневому каталогу.
Кроме того, / root /
эквивалентен / home /
для ] root
. Я ожидаю, что в этом каталоге есть файлы ~ / .profile
, ~ / .bash_profile
, ~ / .bashrc
, что аль так что помогите управлять $ PATH root
.