Я могу использовать SSH и выполнять команды от имени системного администратора. Я также настроил некоторых пользователей на использование SFTP "в тюрьме".
Как я могу изменить следующий файл sshd_config, чтобы позволить TestUser2 выполнять как заключенный в тюрьму SFTP (ограниченный его каталогом), так и запускать команды с удаленного терминала. Например, в WinSCP вы можете нажать CNTL-P, чтобы открыть окно командной строки.
Subsystem sftp /usr/lib/openssh/sftp-server
#SFTP ONLY
Match User TestUser1
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
PasswordAuthentication no
PubkeyAuthentication yes
ForceCommand internal-sftp
#SFTP Plus Command Line
Match User TestUser2
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
PermitTTY yes
PasswordAuthentication no
PubkeyAuthentication yes
ForceCommand internal-sftp
Я использую Ubuntu 20.04, но думаю, что вопрос общий.
Обновление: я почти уверен, что «ForceCommand internal-sftp» - это то, что позволяет пользователю выполнять только SFTP, а не какие-либо другие команды оболочки. Но я знаю, что мой пользователь root может выполнять как команды SFTP, так и команды оболочки, поэтому хотел бы знать, как это сделать для user = TestUser2 выше.
Что вы хотите сделать, так это "удалить корень". Я не знаю, разрешает ли SSH это действие, поскольку SSH глобален для всех пользователей. Однако вы можете попробовать ACL заблокировать все другие каталоги для этого пользователя.