Как разрешить определенному пользователю Unix доступ только к одному каталогу, например

Я хочу разрешить следующему измерению имени пользователя обращаться только к следующему каталогу /var /opt /test /reports /*

Как я могу сделать это через Unix?

1 ответ1

2

Самый простой способ сделать это - использовать отрицательный ACL, то есть явно запретить пользователю (называть его user_no) использовать любой каталог, кроме того, который вы упомянули.

После установки ACL, следующая команда

 setfacl -m user:user_no:0 /home/my_home

помешает ему доступ к вашему дому. Вы должны помнить, что нужно явно блокировать каждое место, где вы хотите его запретить, но вы должны помнить, чтобы разрешить использование некоторых каталогов (/usr, /bin ..), иначе вы также запретите ему использовать обычные команды Unix.

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

Кроме того, вы можете изменить учетную запись. Это можно сделать двумя способами: во-первых, вы разрешаете доступ только по ssh, во-вторых, вы изменяете учетную запись оболочки. Второй метод более сложный, и я никогда не пробовал его, поэтому не могу предложить никаких указаний. Вы можете Google chroot shell аккаунт. Первый способ прост, просто измените файл /etc /ssh /sshd_config, введя эти строки в самом низу:

 Subsystem     sftp   internal-sftp
 Match Group sftp
     ChrootDirectory %h
     ForceCommand internal-sftp
     AllowTcpForwarding no   

Это связывает пользователя с его домашним каталогом (% h выше) и гарантирует, что он имеет доступ к справке internal-sftp. Кроме того, добавьте user_no в группу sftp следующим образом:

 # usermod -G sftp user_no
 # usermod -s /bin/false user_no
 # chown root:root /home/user_no
 # chmod 0755 /home/user_no

Важная команда - вторая: она гарантирует, что пользователь никогда не получит доступ к оболочке.

Наконец, создайте символическую ссылку в домашнем каталоге пользователя на каталог, к которому вы хотите предоставить ему доступ:

 # cd /home/user_no
 # ln -s /var/opt/test/reports work

Это создает подкаталог, к которому он имеет доступ, но не может создать какой-либо файл, только работать с существующими. Если вы хотите разрешить ему создавать файлы, вам придется изменить права доступа к /var /opt /test /reports.

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