Это просто Просто создайте нового пользователя с домашним каталогом, для которого вы должны иметь доступ (эта команда должна быть запущена с помощью sudo
или root shell):
adduser --home /restricted/directory restricted_user
Это создаст пользователя restricted_user
, каталог /restricted/directory
а затем будут установлены разрешения для каталога, чтобы пользователь мог писать в него. По умолчанию у него не будет возможности писать в любой другой каталог.
Если у вас уже есть каталог, вы можете запустить команду adduser
с добавленной опцией --no-create-home
и установить разрешения вручную (также с привилегиями root), например:
chown restricted_user:restricted_user /restricted/directory
chmod 755 /restricted/directory
Если вам нужно сделать недоступными даже пользователю доступные для записи каталоги для этого пользователя, есть два варианта.
1) Если вы хотите предоставить пользователю интерактивную сессию оболочки, подумайте о том, чтобы следовать этому руководству по созданию тюрьмы chroot (в каталоге /restricted/directory
).
После этого добавьте следующее в ваш sshd_config
:
Match user restricted_user
ChrootDirectory /restricted/directory
2) Если вам нужно только, чтобы он скопировал файлы между конечной точкой соединения и вашим хостом, все гораздо проще. Добавьте эти строки в конце вашего sshd_config
:
Match user restricted_user
ForceCommand internal-sftp
ChrootDirectory /restricted/directory
Subsystem sftp internal-sftp
Затем закомментируйте Subsystem sftp /usr/lib/openssh/sftp-server
, поместив знак хеша (#
) в начале.
После перезапуска вашего SSH-сервера (он не прерывает интерактивные сеансы при перезапуске, поэтому он безопасен, даже если вы что-то неправильно настроили; также не закрывает запущенный сеанс, пока вы не проверили, что все еще можете войти), все должно работать как предполагалось.