Я хочу создать пользователя, который имеет доступ только к следующим каталогам и больше ничего не видит
/home/vehicles/ #read only
/home/images/ #read only
/home/dump/ #read and write
Я использовал эту ссылку https://unix.stackexchange.com/questions/15360/how-to-add-a-ssh-user-who-only-has-permissions-to-access-specific-folder
так что я создаю группу пользователей под названием testserver
Match Group testserver
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
и chmod этих папок, как показано ниже
chmod -R 755 /home/vehicles/
chmod -R 755 /home/images/
chmod -R 765 /home/dump/
Все прошло хорошо, за исключением того, что testuser все еще может получить доступ к другим папкам, как я запрещаю этому пользователю доступ к другой папке (т.е. доступ только к этим трем папкам)
Хорошо, во-первых, измените структуру каталогов на:
/home/testserver/vehicles
/home/testserver/images
/home/testserver/dump
Затем выполните
chown root.root /home/testserver /home/testserver/vehicles /home/testserver/images
chmod 755 /home/testserver
chown testuser.testserver /home/testserver/dump
chmod 775 /home/testserver/dump
Наконец, измените строку директивы ChrootDirectory в /etc/ssh/sshd_config
к
ChrootDirectory /home/testserver
Я также рекомендую вам много читать и освежить в памяти системное администрирование Linux в целом, поскольку ваш вопрос и то, что вы пытались сделать до сих пор, указывают на администрирование "культа карго" - копирование / вставка расширенных приемов администрирования, не понимая, что они это делают или как они это делают в надежде, что они сделают то, что вы хотите. Это может очень легко привести к катастрофе, которую вы не знаете, как исправить.
Удалите testuser из групп пользователей и любых других групп, а также используйте путь grsecurity для определения ваших списков RBAC.
Если вы собираетесь войти в систему с помощью testuser, тогда ему потребуются права на / bin и другие, например / proc.