В настоящее время я работаю над протоколом SSH в Python, и я потратил огромное количество времени, чтобы запустить сервер OpenSSH. После этого я смог запустить его и нормально запустить свои скрипты Python. Там не было никаких проблем с разрешением ни для одного.

Но проблема в том, что когда я делаю which ssh он указывает местоположение клиента openssh (usr/bin/ssh). Но когда я пытаюсь, which sshd ничего не возвращает, но сервер работает нормально до сих пор. Почему это происходит и как я могу это исправить?

1 ответ1

2

ssh обычно предназначен для запуска кем-либо, sshd не предназначен для вызова обычными пользователями; поэтому первый находится (например) в /usr/bin а второй в /usr/sbin .

Ну, эти пути могут отличаться. Дело в том, что каталог исполняемого файла ssh находится в PATH обычного пользователя, но каталог исполняемого файла sshd обычно отсутствует (хотя он должен быть в root PATH ).

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

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

Этим исполняемым файлам нужен root по причинам. Для sshd причины:

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

which sshd ничего не возвращает для вас, sudo which sshd должен что-то вернуть. Это кажется нормальным. Там нет ничего, чтобы исправить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .