Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: synner в Sep 28, 2017, 14:29



Титла: Запазване на environment variable при sudo su -
Публикувано от: synner в Sep 28, 2017, 14:29
Здравейте, банда.

User 'jeko' се логва през SSH на даден сървър. В неговия environment има set-ната променлива KEYHOLDER=jeko.
jeko изпълнява 'sudo su -' и става root, но KEYHOLDER вече не е дефинирана/празна.
Как да запазя KEYHOLDER при изпълнение на 'sudo su -'?

В /etc/sudoers вече имам:
Цитат
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Defaults        env_keep += "KEYHOLDER"

...

jeko ALL=NOPASSWD:ALL

Пробвах различни варианти намерени в Google/unix.stackexchange.com, но нищо не ми сработва...?
Help?!? :'(


Титла: Re: Запазване на environment variable при sudo su -
Публикувано от: ddantgwyn в Sep 28, 2017, 15:01
Здравейте, банда.

User 'jeko' се логва през SSH на даден сървър. В неговия environment има set-ната променлива KEYHOLDER=jeko.
jeko изпълнява 'sudo su -' и става root, но KEYHOLDER вече не е дефинирана/празна.
Как да запазя KEYHOLDER при изпълнение на 'sudo su -'?

А какъв е резултата от употребата само на su -- без тире. Имам някакви спомени, че тогава запазваше променливите на средата, дефинирани за потребителя, докато тирето указваше да се използват тези за root. Но имай предвид, че може и да греша.


Титла: Re: Запазване на environment variable при sudo su -
Публикувано от: synner в Sep 28, 2017, 15:12
ddantgwyn, ако изпълня само 'sudo su' тогава се запазва променливата KEYHOLDER.
Обаче при 'sudo su' се зарежда само .bashrc, а при 'sudo su -' се зарежда всичко /etc/profile, .profile and .bashrc, което е за предпочитане...
Source @ AskUbuntu ($2)

Има ли как да стане с тирето?

P.S. Дистрибуциина, на които го тествам това са Ubuntu 16.04.2 LTS и Debian 8.8 (Jessie).


Титла: Re: Запазване на environment variable при sudo su -
Публикувано от: remotexx в Sep 28, 2017, 16:10
Колега без тирето не ти зарежда профила на стария потребител защото той вече е зареден, а с тирето зарежда профила на новия потребител - така е по дизайн.
Като искаш това нещо да го има и под руут има два начина
1. Сетваш го за постоянно и под руут, keyholder=jeko
2. По надолу в скритпа или на ръка ако го пускаш ръчно си я експортираш временно т.е. докато то трае сесията с тоя потребител или не я ънсетваш отново ръчно.