Debain (buster) su не работает должным образом, команда не найдена

747
James Greenland
  • Например: я установил ifconfig
  • Сначала я получаю root с "su"
  • Теперь я пишу «ifconfig» и получаю: «команда не найдена».
  • Я пишу "sudo ifconfig", и теперь это работает.

Похоже, это происходит со многими программами (не со всеми).

Другой пример: apt-get неправильно устанавливает приложения, если я не использую тот же метод.

Мне не нужно писать sudo, если я уже root.

Это почему? Что я могу сделать, чтобы это исправить?

0

1 ответ на вопрос

3
dsstorefile1

TL, DR: использовать su --loginили sudo.


Debian устанавливает разные PATHдля обычных пользователей. В /etc/profile, вы можете видеть, что по умолчанию резерв /sbinдля root:

if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" fi export PATH 

type ifconfigговорит, что утилита находится в, /sbin/ifconfigпоэтому обычные пользователи не могут получить к ней доступ легко. Когда вы запускаете suбез аргументов, среда вызывающего пользователя сохраняется, включая PATHпеременную. sudoс другой стороны, обеспечивает свежую среду и переопределяет вызывающего пользователя PATH.


Причина, почему вы считаете, что suнеисправно происходит потому, что сброс PATHи IFSпо умолчанию является наследие поведения. недавно бустер переключился на util-linuxреализацию, suкоторая работает по-другому; смотрите /usr/share/doc/util-linux/NEWS.Debian.gzдля деталей.

Или просто `/ sbin / ifconfig` без` sudo` и `su` GAD3R 5 лет назад 1

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