Я хотел бы предоставить пользователю доступ только для чтения, но я хочу, чтобы он/она видел только те папки, к которым я даю доступ. Например, он/она не должен(на) перемещаться по всему серверу и просматривать все папки пользователей и т. д. Даже если он/она будет перемещаться только вверх, вверх, вверх, я хочу, чтобы он/она перемещался только в те конкретные папки, которые я разрешаю. Итак, во-первых, как я могу разрешить определенному пользователю доступ к определенной папке, а затем поможет ли размещение символических ссылок на его/ее домашнюю папку? Чтобы они могли переходить непосредственно в необходимые папки, но не вверх или вниз?
решение1
Вам следует установить необходимые разрешения для каталогов. Для каталогов они следующие:
- читать: разрешено просматривать файлы и подкаталоги в этом каталоге
- писать: разрешено создавать файлы и подкаталоги в этом каталоге
- выполнять: разрешено входить в каталог.
С файлами ситуация аналогичная, она вполне очевидна, поэтому вы справитесь с ней самостоятельно.
Пронумеруйте эти разрешения:
- читать-4
- писать-2
- выполнять-1
Для редактирования разрешений используйте chmod
. Использование:chmod xyz <file or directory>
- Икс- суммавладелецразрешения
- у- суммагруппа владельцевразрешения
- з- суммаостальные пользователи/группыразрешения
Пример:
$ chmod -R 664 /home/jack/
Джек и группа Джека будут иметьчитать+писатьдоступ к /home/jack ивсеэто подкаталоги. Остальные будут иметь только доступ на чтение. -R
опция здесь используется длярекурсивноустановить разрешения.
Другой пример:
$ chmod 700 /home/jack/video/
даст jack полный доступ к /home/jack/video
каталогу. См. также: chown
, chgrp
для смены владельца и группы владельцев.
решение2
Я также не считаю необходимым настраивать chroot. Чтобы предотвратить переход на родительские каталоги, назначьте строгое разрешение.
$ mkdir --parent 1/2/3
$ ls 1
2
$ chmod 100 1
$ ls 1
ls: cannot open directory 1: Permission denied
$ ls 1/2
3
Если мы хотим предоставить пользователю доступ к /home/1, но запретить ему видеть другие материалы в /home, мы делаем /home собственностью пользователя root и даём ему разрешение 111. Таким образом, пользователь никогда не узнает, существует ли /home/2.