Некоторые команды отсутствуют, если только я не использую sudo

Основываясь на комментарии @RalfFriedl, я проверил сервер и обнаружил команду fuser, расположенную в /sbin. в этой ситуации мы должны передать /sbin/fuser из ssh.

0
10.01.2020, 16:55
2 ответа

(Как прокомментировано в другом ответе :)«Пути /sbin/и /usr/sbin/часто исключаются из переменной PATH по дизайну, потому что исполняемые файлы в этих каталогах обычно требуют привилегий root и, таким образом, не ожидается, что они будут запускаться обычные пользователи».

Используйте полную команду sudo, но вместо этого начните с echo. Затем, если что-то пойдет не так, например, вы случайно нажмете клавишу Enter, команда просто отобразится на экране, и вы вернетесь в командную строку, но ничего не произойдет (будьте осторожны с подстановкой команд, хотя ). Затем вы можете использовать стрелку Up, чтобы вернуться к редактированию команды, как вы это делали.

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

Например, sfdiskимеет опцию-n(или :--no-action), которая выполняет все действия, о которых вы просите, но не записывает данные в устройство , поэтому никакие фактические модификации не требуются. сделанный.

Чтобы внести постоянные изменения, отредактируйте файл .bashrcв домашнем каталоге пользователя (, если вы используете BASH ). Чтобы сделать изменение постоянным для новых пользователей, вы можете настроить или изменить соответствующий файл в /etc/skel/. Содержимое этого каталога по умолчанию копируется в домашние каталоги любых новых пользователей, которых вы добавляете.

Уведомление о безопасности:В руководстве по следующей ссылке предлагается добавить каталог bin/в домашние каталоги для каждого пользователя, чтобы позволить им использовать свои собственные исполняемые файлы. Однако хорошей практикой безопасности является запрет запуска исполняемых файлов из раздела /homeс помощью модификатора noexecв fstab. Это позволит запускать только исполняемые файлы, одобренные администратором -.Дерево каталогов /usr/local/предоставляет место для добавления исполняемых файлов, которые не проходят через стандартный (безопасный )репозиторий, так что административный контроль может быть сохранен, но при этом разрешено расширение стандартных пакетов, предоставляемых дистрибутивом.

Возможно, будет полезно взглянуть на краткий учебник, подобный этому:https://www.tecmint.com/set-path-variable-linux-permanently/

0
28.01.2020, 02:29

Благодаря комментариям я узнал, что /sbinи /usr/sbinпо умолчанию исключены из $PATHв Debian. Я исправил это, добавив следующую строку в~/.bashrc:

PATH=$PATH:/sbin:/usr/sbin

Все команды теперь отображаются как обычно:

$ update-grub
grub-mkconfig: You must run this as root
2
28.01.2020, 02:29

Теги

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