Назад | Перейти на главную страницу

Специальная OS X, такая как разрешение ACL для Linux

У меня есть файловая система Unix, в которой я хотел бы эмулировать домашнюю папку OS X, в которой у меня есть подпапка Public, доступная для записи всем, но в которой файлы нельзя удалить.

Я установил ACL в систему и изменил / etc / fstab, чтобы смонтировать его с правами acl.

Когда я теперь смотрю на разрешения в домашней папке OS X с ls -le

0 drwxr-xr-x+ 5 cb0 staff 170 17 Nov 23:46 Public
0: group:everyone deny delete

Мой первый вопрос: есть ли в Linux равные команды для получения этого списка, потому что -e опция не существует в системах Linux.

Следующая проблема - это вариант group:everyone deny delete, Я думаю, это говорит ACL в OS X, что только пользователи группы могут удалять там файлы.

Как я могу добиться этого на машине Linux? Я не могу добавить дополнительную информацию к setfacl, или есть какая-то другая команда для этого?

Спасибо большое

Вероятно, вам нужно установить липкий бит на «другие» в каталоге.

Например. chmod o + t

Это позволяет владельцу файла удалить его, но никому другому (кроме, конечно, привилегированных пользователей).

Насколько я знаю, в файловой системе unix его невозможно предотвратить, чтобы владелец файла удалил его (без изменения содержащихся dirs perms после создания файла).

Delerious010: FYI OSX имеет дополнительные ACL, привитые в свою модель разрешения файловой системы, недоступную в большинстве файловых систем unix.

Соответствующие команды linux:

  • ls: Любая строка со знаком + после разрешений содержит списки управления доступом (rwxrwxrwx +).
  • setfacl: добавить / изменить списки управления доступом к файлу
  • getfacl: читать ACL в файле

Я не очень хорошо знаю OSx, но когда я читаю эти ACL, я вижу нечто иное. Для меня «группа: все запрещают удаление» было бы правилом, которое гласит, что членам группы «все» отказано в возможности удалять файлы.

В Linux, однако, нет такой вещи, как «запретить удаление». Возможность удаления дается возможностью писать. Следовательно, если вы хотите запретить удаление, вам также необходимо запретить запись, что может быть не совсем тем, что вы ищете. Опять же, вы должны понять, что это имеет смысл ... Если я могу писать в файл, технически ничто не мешает мне обнулить содержимое файла.

Но с таким широким правилом, которое, кажется, действует как уловка, вам вообще не нужны ACL. Просто установите «прочие» разрешения на r-- (0600), и пользователи, которые не являются ни владельцем, ни частью группы-владельца, не смогут записывать или выполнять файл. В вашем примере это будет означать любого, кто не является ни пользователем cb0, ни частью персонала группы.

При этом, если вас интересует более подробная информация о списках ACL и соответствующих им командах, я предлагаю вам уделить время и внимательно прочитать документ POSIX Access Controls: http://www.suse.de/~agruen/acl/linux-acls/online/