bash: shutdown: команда не найдена

Вопрос или проблема

Я установил последнюю версию Debian (netinstall).
У меня проблема: терминал не знает такие команды, как shutdown, reboot и так далее.
Когда я использую whereis shutdown, он говорит мне, что это находится в /usr/sbin.

Я исправил это в другой попытке установки, написав /usr/sbin в /etc/profile, где записывается $PATH.
Но на этот раз это не сработало.

Я посмотрел это: https://wiki.debian.org/EnvironmentVariables, но либо эти файлы не существуют, либо я не знал, куда вставить путь.
И команда export PATH=$PATH:usr/sbin не постоянна, она исчезает после перезагрузки, так что это тоже не подходит.

Редактировать: Постойте, возможно, я должен изменить PATH в /etc/environment?!
Я должен это протестировать, когда дам Debian ещё одну попытку.

Бинарные файлы в директориях /sbin и /usr/sbin предназначены для выполнения только суперпользователями/пользователями с правами sudo. Если вы хотите запустить что-то оттуда, добавьте в начало команды sudo. Тем не менее, ваш пользователь должен быть членом группы sudoers.

$ sudo shutdown -P +0

Чтобы доказать концепцию, попробуйте which shutdown против sudo which shutdown.

Вы это разгадали, вы были на верном пути с export PATH="$PATH:/usr/sbin". Что нужно сделать: отредактировать файл .bashrc и добавить export PATH="$PATH:/usr/sbin" в конце, затем сохранить и закрыть. После этого это будет работать постоянно.

SystemD через агент аутентификации polkit позволяет выполнять эти команды (shutdown/reboot…) прозрачно:

systemctl poweroff

выключает систему.

Вы даже можете сделать Bash псевдоним:

alias shutdown="systemctl poweroff"

И затем использовать shutdown прозрачно.

Я установил “sudo” в Debian 11. Затем я снова попробовал “shutdown -r now”, и проблема была решена.

Debian – Невозможно выключить/перезагрузить мой Debian (“bash: shutdown: command not found”)

Войдите как root и выполните…

echo '
export PATH="$PATH:/usr/sbin"
' | tee -a /root/.bashrc

… или явно укажите su, чтобы установить переменную окружения, как если бы пользователь входил напрямую…

su -

ДОПОЛНИТЕЛЬНО:

Добавьте пользователя в группу sudo с помощью

usermod -aG sudo <USERNAME>

Сделайте это от имени аккаунта root (или аккаунта с правами root).

[Рефераты: https://unix.stackexchange.com/a/664942/61742,
https://superuser.com/a/1539749/195840 ]

Вы можете просто скопировать команды shutdown и reboot из

/usr/sbin

в папку

/usr/bin

sudo cp /usr/sbin/shutdown /usr/bin && sudo cp /usr/sbin/reboot /usr/bin

Таким образом, проблема решена, и вы можете выключить или перезагрузить устройство, не будучи root.

После этого вы можете использовать

which shutdown 

и

which reboot

чтобы проверить, используется ли правильная команда.

Ответ или решение

Ошибка, при которой команда shutdown выдает сообщение «bash: shutdown: command not found», может стать неожиданностью для пользователей, установивших новую версию Debian через netinstall. Несмотря на то, что эта команда является стандартной в большинстве Linux-систем, она может потребовать дополнительных настроек в зависимости от конфигурации системы.

Теория

Команды shutdown и reboot расположены в директории /usr/sbin. Директории /sbin и /usr/sbin обычно включают программы, предназначенные для выполнения администраторских задач, и, как правило, доступны только для пользователей с привилегиями superuser (root) или пользователей, имеющих соответствующие права доступа через sudo.

Следовательно, проблема заключается не в отсутсвии файлов shutdown и reboot на диске, а в неправильной настройке переменной окружения PATH, которая не указывает на эти директории для обычных пользователей. Без указания на эту директорию система не может идентифицировать путь к исполняемым файлам.

Пример

Существует несколько способов решения этой проблемы:

  1. Редактирование переменной PATH:

    Одним из временных решений является использование команды export PATH=$PATH:/usr/sbin, однако это изменение будет действовать лишь до перезагрузки системы.

  2. Обновление файла .bashrc:

    Для того чтобы изменение было постоянным, добавьте строку export PATH="$PATH:/usr/sbin" в файл .bashrc, расположенный в домашней директории пользователя. Это добавит путь /usr/sbin в переменную PATH при каждом запуске интерпретатора Bash.

  3. Использование sudo:

    Поскольку shutdown и reboot предназначены для выполнения административных задач, рекомендуется использование команды с sudo, например: sudo shutdown -h now.

  4. Создание алиасов для команд SystemD:

    Системы, использующие SystemD, могут выполнять аналогичные команды — systemctl poweroff для завершения работы и systemctl reboot для перезагрузки. Эти команды можно алиасировать в .bashrc, чтобы упрощать исполнение: alias shutdown="systemctl poweroff".

  5. Добавление в группу sudo:

    Убедитесь, что ваш пользователь входит в группу sudo, что можно сделать через команду usermod -aG sudo <USERNAME>, выполнив ее от имени пользователя root.

Применение

Чтобы максимально упростить процесс управления системой, следует выполнять следующие шаги:

  1. Редактирование .bashrc:

    Запустите текстовый редактор, например nano, с помощью команды nano ~/.bashrc. Добавьте в конец файла строку export PATH="$PATH:/usr/sbin" и сохраните изменения. Это обеспечит автоматическое выполнение экспорта при запуске каждого нового сеанса рабочего терминала.

  2. Добавление пользователя в sudo:

    Проверьте, входит ли ваш пользователь в группу sudo, выполнив команду groups. Если не входит, выполните sudo usermod -aG sudo <ваше_имя_пользователя>, чтобы предоставить необходимый доступ.

  3. Использование команд SystemD:

    Настройте простые алиасы в .bashrc, добавив строки, такие как alias shutdown="systemctl poweroff", для легкодоступного использования команд выключения и перезагрузки.

  4. Копирование в /usr/bin:

    В качестве крайней меры, для преодоления ограничений по пути, можно скопировать исполняемые файлы из /usr/sbin в /usr/bin, таким образом позволив их выполнение без указания полного пути и без использования привилегий администратора. Однако это может ввести беспорядок в системе и рекомендуется только в исключительных случаях.

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

Оцените материал
Добавить комментарий

Капча загружается...