Как установить переменную среды для всех пользователей, даже при выполнении sudo su?

Я создал файл с именем x.sh в каталоге /etc/profile.d/, поэтому он должен быть доступен для всех пользователей. Я ожидал, когда я изменю текущего пользователя в терминале (зарегистрированного пользователя) с помощью команды sudo su other_user, те переменные, которые я установил в файле x.sh, должны быть доступны, но они нет. Как я могу установить переменные как доступные?

3
задан 20 November 2017 в 13:11

22 ответа

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду, загрязненную переменными от первоначального пользователя. Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл должен быть прочитан su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 22 May 2018 в 16:04
  • 1
    Это оно! благодаря – Soheil Pourbafrani 20 November 2017 в 12:55
  • 2
    Только вторая команда sudo su - other_user работала, PLS редактировать. – Soheil Pourbafrani 20 November 2017 в 12:56
  • 3
    @soheil sudo -i other_user не работает? – Olorin 20 November 2017 в 12:56
  • 4
    нет, это не сработало the command not found, может быть, вы имеете в виду sudo su -l other_user – Soheil Pourbafrani 20 November 2017 в 13:10
  • 5
    @soheil Команда не найдена? Что именно вы запустили? Если вы можете сделать sudo su, команда sudo существует и явно выполняется вами. o.o – Olorin 20 November 2017 в 13:12

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду, загрязненную переменными от первоначального пользователя. Вы должны выполнить любую из этих команд:

sudo -iu other_user sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл должен быть прочитан su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 18 July 2018 в 02:58

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду, загрязненную переменными от первоначального пользователя. Вы должны выполнить любую из этих команд:

sudo -iu other_user sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл должен быть прочитан su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 24 July 2018 в 17:42

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 31 July 2018 в 13:14

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 31 July 2018 в 20:45

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 2 August 2018 в 13:51

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 3 August 2018 в 18:01

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 5 August 2018 в 03:10

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 6 August 2018 в 20:01

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 9 August 2018 в 00:28

/etc/profile (и, следовательно, /etc/profile.d) читается для систем входа. sudo su other_user не запускает оболочку входа. Это плохая практика, она оставляет среду зараженной переменными от исходного пользователя . Вы должны выполнить любую из этих команд:

sudo -iu other_user
sudo su - other_user

Обе эти нагрузки /etc/profile, поскольку они запускают оболочки входа, и оба начинают с относительно чистых сред.

В идеале, хотя , переменные должны быть установлены в /etc/environment, если это возможно. Этот файл следует читать с помощью su, поэтому переменные там будут доступны независимо от того, запущена ли оболочка входа. Однако этот файл не поддерживает синтаксис оболочки, поэтому, если вам нужен сложный код оболочки для установки ваших переменных, вы не сможете его использовать.

5
ответ дан 14 August 2018 в 18:40
  • 1
    Это оно! Спасибо – Soheil Pourbafrani 20 November 2017 в 12:55
  • 2
    Только вторая команда sudo su - other_user работала, PLS редактировать. – Soheil Pourbafrani 20 November 2017 в 12:56
  • 3
    @soheil sudo -i other_user не работает? – Olorin 20 November 2017 в 12:56
  • 4
    нет, это не сработало the command not found, может быть, вы имеете в виду sudo su -l other_user – Soheil Pourbafrani 20 November 2017 в 13:10
  • 5
    @soheil Команда не найдена? Что именно вы запустили? Если вы можете сделать sudo su, команда sudo существует и явно выполняется вами. o.o – Olorin 20 November 2017 в 13:12
  • 6
    – Soheil Pourbafrani 20 November 2017 в 13:20

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 22 May 2018 в 16:04
  • 1
    Я пробовал это, но это было нежелательно. Я могу войти в систему с использованием пользователя A и myVariable, но когда я меняю пользователя на пользователя B через терминал с помощью команды sudo su B, myVariables для пользователя B не являются доступными! – Soheil Pourbafrani 20 November 2017 в 12:52

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 18 July 2018 в 02:58

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 24 July 2018 в 17:42
  • 1
    Я пробовал это, но это было нежелательно. Я могу войти в систему, используя пользователя A и myVariable, но когда я меняю пользователя на пользователя B через терминал с помощью команды sudo su B, myVariables для пользователя B не являются доступными! – Soheil Pourbafrani 20 November 2017 в 12:52

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 31 July 2018 в 13:14

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 31 July 2018 в 20:45

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 2 August 2018 в 13:51

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 3 August 2018 в 18:01

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 5 August 2018 в 03:10

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 6 August 2018 в 20:01

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 9 August 2018 в 00:28

Следуя Как постоянно устанавливать переменные среды · U & amp; L bash загрузит

/etc/profile

, так что это подходящее место для добавления переменных, эффективных для всех пользователей.

2
ответ дан 14 August 2018 в 18:40
  • 1
    Я пробовал это, но это было нежелательно. Я могу войти в систему с использованием пользователя A и myVariable, но когда я меняю пользователя на пользователя B через терминал с помощью команды sudo su B, myVariables для пользователя B не являются доступными! – Soheil Pourbafrani 20 November 2017 в 12:52

Другие вопросы по тегам:

Похожие вопросы: