Страница 1 из 1

PATH и su

Добавлено: 2010-06-20 14:21:13
mike345
Пара вопросов.
Какой PATH у user2 будет использоваться при таких вариантах:

Код: Выделить всё

user > su user2
user > su root > su user2
?

И второй вопрос, где прописывается PATH использующийся до логина?

Re: PATH и su

Добавлено: 2010-06-20 19:14:03
zg
mike345 писал(а):где прописывается PATH использующийся до логина?
в стартовом скрипте для шелла, который выбран для пользоувателя. Посмотреть шелл для пользователя можно так

Код: Выделить всё

%pw usershow zg -P
Ответ будет примерно таким

Код: Выделить всё

Login Name: zg                #7778         Group: zg                #7778
 Full Name: User Zg
      Home: /home/zg                        Class: russian
     Shell: /bin/csh                       Office: [None]
Work Phone: [None]                     Home Phone: [None]
Acc Expire: [None]                     Pwd Expire: [None]
    Groups: wheel
то есть для пользователя zg шеллом по умолчанию является csh. Для csh PATH задаётся в ~/.cshrc

Код: Выделить всё

%grep path /home/zg/.cshrc
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin)
для остальных оболочек нужно смотреть man на тему rc-файлов

Re: PATH и su

Добавлено: 2010-06-20 20:47:39
mike345
Зайду с другой стороны:
У юзера шелл sh. В домашнем каталоге есть файл .shrc.
В этом файле пишу команду, ну к примеру,

Код: Выделить всё

echo "HI!"
При простом логине команда выполняется, а когда через su - ни фига.
Как сие поправить?

Re: PATH и su

Добавлено: 2010-06-20 21:04:42
Гость
mike345 писал(а):И второй вопрос, где прописывается PATH использующийся до логина?
в /etc/login.conf

Код: Выделить всё

default:\
        :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
если PATH нигде не задан (напр. single user mode), то используется дефолт PATH=/usr/bin:/bin (_PATH_DEFPATH из <paths.h>)
mike345 писал(а):При простом логине команда выполняется, а когда через su - ни фига.
потому что su != login shell. Если хочешь чтобы выполнялось, то используй опцию -l в su(1) или tcsh/zsh/whatever. Еще можно задать ENV=~/.shrc, тогда ~/.shrc будет выполнятся при каждом запуске sh(1) независимо от того login shell или нет.

Re: PATH и su

Добавлено: 2010-06-20 21:10:09
Гость
кстати, sh(1) по дефолту использует только /etc/profile и ~/.profile. Не знаю откуда ты взял ~/.shrc, уже не из NetBSD ли, где ~/.profile по дефолту содержит

Код: Выделить всё

export ENV=$HOME/.shrc

Re: PATH и su

Добавлено: 2010-06-20 22:26:01
mike345
Так у меня ~/.shrc создается когда шелом юзеру sh назначаю. В 7 и 8...

Всем спасибо более менее разобрался...

Re: PATH и su

Добавлено: 2010-06-21 8:01:32
ViktorichZ
а так не пробовали ?? =)
su - user

Re: PATH и su

Добавлено: 2010-06-21 8:19:03
hizel
man su пробовали смотреть?