2

В Mac OS X относительно легко запретить людям видеть файлы, содержащиеся в вашем домашнем каталоге: chmod 700 ~

Я хотел бы выполнить вариацию этого. Я хочу, чтобы когда люди открывали /Users /stalepretzel, они видели только одну папку в списке: Public. Оттуда я хотел бы установить права доступа Public, чтобы люди могли войти в эту папку и читать все, что не указано иначе.

Опять же, чтобы уточнить, я бы хотел, чтобы другой пользователь без прав администратора мог выполнить:

$ cd /Users/stalepretzel; ls
Public
$ cd Public
All     the     contents     of
my      public  folder

3 ответа3

3

Боюсь, это невозможно. Пользователь не может получить доступ ни к какому файлу или папке в любом месте дерева каталога, для которого у него нет прав на чтение. Если пользователь имеет право на чтение каталога (и весь его superdirectories), он может ls увидеть все файлы , содержащиеся в нем.

Это может показаться не совсем аккуратным, но если вы хотите, чтобы пользователи не могли получить ls вашему домашнему каталогу, вам придется создать Public где-то за пределами ~ . Если вам проще получить доступ к своему общедоступному каталогу из ~/Public , создайте символическую ссылку (например, ln -s ~/Public /Users/Shared/stalepretzel).

1

Я не думаю, что вы можете сделать лучше, чем (стандартные вещи Unix):

$ chmod 711 ~/
$ chmod g-rx,o-rx ~/*
$ chmod 755 ~/Public

сделать ваш домашний каталог доступным, но нечитаемым, а все остальное, кроме «Public», недоступным.

[Перечень разрешений Unix - выполнение битов в каталоге разрешает обход, чтение битов позволяет просматривать содержимое.]

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

-1

Откройте свой домашний каталог, чтобы прочитать:

$ chmod 0744 ~

и спрятать там все

$ chmod 700 ~/*

затем откройте только публичный каталог:

$ chmod 0744  ~/Public

Примечание: изменил порядок команд, чтобы сделать его правильным

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