Предоставить доступ только для чтения к определенным папкам?

Предоставить доступ только для чтения к определенным папкам?

Я хотел бы предоставить пользователю доступ только для чтения, но я хочу, чтобы он/она видел только те папки, к которым я даю доступ. Например, он/она не должен(на) перемещаться по всему серверу и просматривать все папки пользователей и т. д. Даже если он/она будет перемещаться только вверх, вверх, вверх, я хочу, чтобы он/она перемещался только в те конкретные папки, которые я разрешаю. Итак, во-первых, как я могу разрешить определенному пользователю доступ к определенной папке, а затем поможет ли размещение символических ссылок на его/ее домашнюю папку? Чтобы они могли переходить непосредственно в необходимые папки, но не вверх или вниз?

решение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.

Связанный контент