LINUX.ORG.RU

Не применяются переменные при входе через su

 , ,


0

1

В данный момент меня интересует переменная $EDITOR прописанная в /etc/environment, необходимая (хз с каких пор) для работы mc. Нормальное применение для обычного юзера и для root в консоли, но при входе как root через su -. Единственное что нагуглил - опция -m, которая не совместима с опцией -, без которой вероятно также полезут проблемы.

Как вернуть нормальное поведение su с применением переменных и без дополнительных портянок при логине?

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

А что в файле /etc/pam.d/su-l (для login используется он)?

Уточню, не буквальное содержимое, а иклудится туда что-нибудь, содержащие pam_env?

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)

For backward compatibility, su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOGNAME if the target user is not root). It is recommended to always use the –login option (instead of its shortcut -) to avoid side effects caused by mixing environments.

(1).

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от yars068

Ну, дак не стали с укзанием, что кому надо, сами отредактируют /etc/pam.d/su-l.

Видимо, в арче так и задумано, это не бага, а фича. Если кто-то хочет внести измения в конфиг, то не будем его личные изменения распространять на весь дистр. У su специально разные файлы в /etc/pam.d для просто ″su″ и ″su -″.

Какой дистр у ТС я не знаю, да и это не особо поможет, так как лень выискивать дефолтный конфиг /etc/pam.d для его дистрибутива. Насколько я знаю, нет сайта, где бы можно было просто посмотреть что в каком файле в произвольном дистрибутиве...

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

У меня работает. Видимо ты что-то делаешь не так.

% podman run --pull=always -it --rm archlinux
[root@04f1391eeb51 /]# echo 'myvar=myvalue' >> /etc/environment
[root@04f1391eeb51 /]# su
[root@04f1391eeb51 /]# echo $myvar

[root@04f1391eeb51 /]# exit
exit
[root@04f1391eeb51 /]# echo 'session required pam_env.so' >> /etc/pam.d/su
[root@04f1391eeb51 /]# su
[root@04f1391eeb51 /]# echo $myvar
myvalue
vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от yars068

По умолчанию в арче /etc/pam.d/su и /etc/pam.d/su-l имеют идентичное содержание. Подозреваю, что отличие лишь в том, что su вызовет bash с argv[0] = "bash", а su - вызовет bash с argv[0] = "-bash" (и в потенциальных последующих различиях при обработке стартовых файлов башем), но в плане pam и чтения /etc/environment различий не должно быть.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 3)

переменная $EDITOR прописанная в /etc/environment, необходимая (хз с каких пор) для работы mc

Debian, небось? Можно сделать файл /etc/mc/mc.ini

[Midnight-Commander]
use_internal_edit=true

и удалить ~/.config/mc

Редактор по умолчанию в Debian можно выбирать командой update-alternatives --config editor

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

internal edit не особо то удобен в использовании. Может и пофункциональнее, но не хочу тратить лишнее время.

kirill_rrr ★★★★★
() автор топика
Последнее исправление: kirill_rrr (всего исправлений: 1)