Невозможно получить доступ к некоторым командам при входе в систему не -пользователем root (даже после «su root»)

Скорее всего, это связано с вашими настройками локализации. Установите язык Ubuntu на английский, а страну на США (, возможно, нет необходимости )и --опция прогресса чудесным образом начнет работать.

Изменить :«скорее всего», потому что у меня была такая же проблема на моем Raspberry Pi с Raspbian, который также основан на Debian как Ubuntu. Я решил проблему, изменив язык системы с турецкого на английский и страну на США. Но у меня нет Ubuntu, чтобы попробовать, поэтому мне пришлось сделать здесь предположение.

0
22.11.2019, 16:38
1 ответ

Переменная окружения PATHвашего пользователя не содержит пути, по которому находятся эти файлы. Когда вы используете su -, переменные окружения root загружаются в ваш сеанс. См.man su:

   -, -l, --login
          Start the shell as a login shell with an environment similar
          to a real login:

             o      clears all the environment variables except TERM and
                    variables specified by --whitelist-environment

             o      initializes the environment variables HOME, SHELL,
                    USER, LOGNAME, and PATH

             o      changes to the target user's home directory

             o      sets argv[0] of the shell to '-' in order to make
                    the shell a login shell

Чтобы лучше это понять, давайте посмотрим, где находится один из этих двоичных файлов, и сравним PATH пользователя root с вашим:

  1. сделатьsu -
  2. сделать which service. Это скажет вам, откуда будет загружен двоичный файл service, если вы запустите команду service.
  3. сделать echo $PATH. Это покажет вам PATH root. Вы заметите, что здесь указан каталог, в котором можно найти service.
  4. выполните exit, чтобы снова стать не -пользователем root.
  5. сделать echo $PATH. Вы увидите, что каталога, указанного на шаге 2, здесь нет.

Это нормальная настройка по умолчанию в определенных средах/дистрибутивах, где определенные административные программы, такие как service, fdiskи т. д., хранятся в каталоге, таком как /usr/sbinили /sbin, при этом такие каталоги не используются. ПУТИ обычных пользователей.

2
28.01.2020, 02:29

Теги

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