Печать переменных среды всех пользователей

#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. Рад помочь и вернуть усилия сообществу 🙂