Зберігання судо в командах і оболонках без редагування / etc / sudoers


0

Я не вірю, що моє запитання - це класичне питання env_keep, яке іноді виникає заново. збереження змінних середовища в оболонках.

Я хочу зберегти експортовану функцію та експортовану змінну оточуючого середовища не просто sudo -s, а й якщо людина працює sudo command. Я не в змозі редагувати / etc / sudoers, що виглядає приблизно так:

Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

/etc/sudoers.dОднак я можу редагувати . Я спробував Defaults! Env_reset, але це не допомагає. Я також спробував env_keep, але це також не працює. Я останній раз намагався за замовчуванням env_keep + = "моя функція".

Коли я кажу, що це не працює, я маю на увазі, що якщо я запускаю sudo -sі потім env, я можу побачити збереження, але змінні та функції не зберігаються, якщо я запускаю sudo somecommand. Мета полягає в тому, щоб переменная середовища завжди передавалася у двійковий файл, незалежно від того, як вона викликається як звичайний користувач або як root.

Простіше кажучи, це працює:

test_var="hello world"
sudo -s
echo $test_var

Але це не працює, і я хотів би це зробити

test_var="hello world"
sudo /bin/bash -c echo $test_var

Якщо хтось може порадити, це було б дуже радимо. Я не впевнений, чи можливо це, враховуючи обмеження неможливості редагування / etc / sudoers, незважаючи на можливість редагування /etc/sudoers.d.

Спасибі заздалегідь


sudo -V як корінь (коли запускається sudo -s спочатку), показує мій змінний під змінними середовища для збереження, тому я починаю думати, що я потрапив у обмеження sudo.
користувач3526827

Чи sudo -Eвирішує ваша проблема? Якщо ви хочете не хочете , щоб пройти один варіант кожен раз , коли ви можете зробити псевдонім sudo -E.
ojs

Це не вирішує проблему. На жаль, ми намагаємося зберегти змінні, коли користувачі виконують sudo somecommand, і у нас немає шансів навчити їх інакше. Я думаю, це може бути помилка чи обмеження судо.
користувач3526827

Хм, для мене, якщо я зроблю ваш другий приклад, який працює добре, просто видаючи, sudo -E echo $test_varто я отримую відповідь Hello world.
ojs

Правильно, але наші користувачі виконують команду sudo, і якби ми могли сказати їм виконувати sudo -E якийсь команда, нам не потрібно було б зберігати змінні середовища, оскільки ми могли просто сказати їм, що робити безпосередньо ..
user3526827
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.