LINUX.ORG.RU

/sbin не в $PATH

 , ,


1

1

По умолчанию в дебиане у пользователя в пути отсутствует /sbin. Я добавил пользователю его в /etc/profile, перезагрузился, но в $PATH переменной всё равно нет.

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Код в /etc/profile

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
fi
export PATH

Ответ на: комментарий от aureliano15

Помогло, спасибо. Но я понимаю где переписывается изначальное значение, задаваемое /etc/profile. Тут же просто добавление.

Код в ~/.profile.

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Eternellement ()

В некоторых дистрибутивах /sbin, /usr/sbin и (опционально) /usr/local/sbin добавляются в $PATH только пользователю root.

Подробнее смотри в /etc/profile, /etc/environment и /etc/bash (или что у тебя используется в качестве шелла).

mord0d ★★★★★ ()
Ответ на: комментарий от Eternellement

где переписывается изначальное значение, задаваемое /etc/profile

Не знаю. Если интересно, можно grep’нуть все конфиги в /etc/, юниты systemd и конфиги в ~./.* на цепочку PATH и поискать.

aureliano15 ★★ ()
    1. /etc/profile трогать не надо, есть /etc/profile.d/ для кастомизаций.
    1. /etc/profile выполняется только для интерактивных оболочек.
    1. есть /etc/bash.bashrc (debian, у redhat по другому, как-то назван) оно как для интерактивных, так и для неинтерактивных, если, конечно, у тебя bash/dash.

Добро пожаловать в чехарду :-).

Но /sbin/ пользователю ненадобен, если у нерута в нём есть потребность - ты чего-то делаешь не то.

vtVitus ★★★★★ ()