Команда ifconfig или fdisk внезапно возвращает ошибку command not found под root — почти всегда это признак того, что в переменной PATH суперпользователя отсутствуют каталоги /usr/local/sbin, /usr/sbin и /sbin. Именно в этих трёх путях в Unix-подобных системах хранятся системные утилиты администрирования, недоступные обычным пользователям. Проверить ситуацию можно одной командой: echo $PATH от имени root.

Экзаменационные вопросы по Linux (например, из курсов администрирования) часто формулируют это как требование: в PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin. За этой формулировкой стоит вполне практическая логика разделения системных и пользовательских программ. Ниже разберём, зачем нужен каждый каталог, как устроена иерархия и что делать, если пути пропали.

Что такое PATH и как она работает

Переменная окружения PATH — это список каталогов, разделённых двоеточиями, которые оболочка просматривает при поиске исполняемого файла. Когда вы вводите команду без полного пути, shell последовательно проверяет каждый каталог из списка и запускает первое найденное совпадение.

Если нужного каталога в списке нет, система честно сообщает command not found, даже когда программа физически установлена. Посмотреть текущее значение можно так:

echo $PATH

Для обычного пользователя типичный набор — /usr/local/bin, /usr/bin, /bin. У root к этому списку добавляются sbin-каталоги, где лежат инструменты администрирования.

💡

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