#linux #bash #environment-variables
#linux #bash #переменные среды
Вопрос:
Я искал везде в Интернете, чтобы найти способ отображения всех переменных среды всех пользователей (как root) на сервере Linux.
Я попытался написать скрипт для запуска env
или printenv
от имени каждого пользователя, доступного в системе, но я хотел бы знать более простой способ сделать это.
Не могли бы вы мне помочь, пожалуйста?
Спасибо.
Комментарии:
1. Как насчет использования find /proc -name «environ» -exec cat ‘{}’ ;
Ответ №1:
AFAIC вы не можете получить его для всех пользователей сразу, используя одну команду, но для одного пользователя:
# RHEL
sudo -Hiu $USER env
# Deb
su - $USER -c 'printenv'
Зная это, вы можете создать сценарий, что-то вроде:
#!/bin/bash
for USER in $(grep /home /etc/passwd | cut -d: -f1)
do
echo "==== User: ${USER}"
su - $USER -c 'printenv'
done
Комментарии:
1. Привет Факти и большое вам спасибо за ваш ответ. К сожалению, я боюсь, что sudo не установлен, потому что я получаю «команда sudo не найдена». Возможно, я что-то упускаю, но не могу ли я сделать это от имени root без использования «sudo»?
2. Интересно 🙂 …. тогда вы можете попробовать
su - $user -c 'printenv'
, какой дистрибутив вы используете?3. Я использую Debian 9. Теперь это работает как шарм, большое вам спасибо за ваше время, это мне очень помогло! 🙂 Использование
su
было именно тем, чего мне не хватало!4. Рад помочь и вернуть усилия сообществу 🙂