Восстановление ACL с помощью setfacl / getfacl? - PullRequest
1 голос
/ 10 октября 2010

Я недавно удалил свой ACL, потому что моему профессору нужно было скопировать определенные файлы. Теперь я знаю, что должен был просто предоставить ему права пользователя вместо того, чтобы удалять все это с помощью 'setfacl -b.' в моем домашнем каталоге.

Итак, вопрос в том, как мне восстановить или установить новый ACL для моего домашнего каталога с помощью setfacl / getfacl?

1 Ответ

4 голосов
/ 10 октября 2010

Вы не можете «восстановить» то, что вы отбросили с помощью ACL. Если вы знаете, что вы установили ранее, вы можете осторожно восстановить эти запомненные списки ACL.

Основные разрешения

В системе Unix наиболее важными критериями для вас являются группа и другие: они не зависят напрямую от ACL, но они контролируют доступ, не регулируемый ACL, и вы должны их правильно понимать. Вы должны решить, что подходит в вашей среде. Для многих корпоративных настроек целесообразно разрешить групповым и другим пользователям доступ на чтение файлов, выполнение программ, а также чтение и поиск (выполнение) в каталогах:

chmod 644 file
chmod 755 program
chmod 755 directory

Если вы не должны позволять другим людям брать на себя вашу курсовую работу, вы бы забили вещи так, чтобы группа и другие вообще не допускались:

chmod 600 file
chmod 700 program
chmod 700 directory

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

Не забудьте использовать соответствующий параметр umask, чтобы файлы создавались с правильными разрешениями по умолчанию. Для многих подходит умаск 022; Ни члены группы, ни другие не могут писать в файл или каталог, но они могут читать файлы или выполнять программы.

Использование ACL

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

Страница man для Solarf 10 для setfacl сообщает, что синтаксис команды:

 setfacl [-r] -s acl_entries file
 setfacl [-r] -md acl_entries file
 setfacl [-r] -f acl_file file

Здесь не упоминается опция '-b', упомянутая в вопросе, поэтому вы можете использовать другую платформу. Обратите внимание, что элементы управления ACL должны были быть POSIX 1e, но фактически никогда не были стандартизированы, поэтому на разных платформах реализованы несколько разные варианты команд.

Затем страница руководства Solaris 10 объясняет, как установить часть описания 'acl_entries', с примечанием, что часть по умолчанию может быть применена только к каталогу, но значения по умолчанию будут использоваться для файлов в справочник.

 ACL Entry                     Description
 u[ser]::perms                 File owner permissions.
 g[roup]::perms                File group owner permissions.
 o[ther]:perms                 Permissions for  users  other  than
                               the  file  owner or members of file
                               group owner.
 m[ask]:perms                  The ACL mask. The mask entry  indi-
                               cates   the   maximum   permissions
                               allowed for users (other  than  the
                               owner)  and for groups. The mask is
                               a quick way to  change  permissions
                               on all the users and groups.
 u[ser]:uid:perms              Permissions for  a  specific  user.
                               For  uid,  you can specify either a
                               user name or a numeric UID.
 g[roup]:gid:perms             Permissions for a  specific  group.
                               For  gid,  you can specify either a
                               group name or a numeric GID.
 d[efault]:u[ser]::perms       Default file owner permissions.
 d[efault]:g[roup]::perms      Default file  group  owner  permis-
                               sions.
 d[efault]:o[ther]:perms       Default permissions for users other
                               than  the  file owner or members of
                               the file group owner.
 d[efault]:m[ask]:perms        Default ACL mask.
 d[efault]:u[ser]:uid:perms    Default permissions for a  specific
                               user.  For  uid,  you  can  specify
                               either a user  name  or  a  numeric
                               UID.
 d[efault]:g[roup]:gid:perms   Default permissions for a  specific
                               group.  For  gid,  you  can specify
                               either a group name  or  a  numeric
                               GID.

Вам нужно будет решить, кому, кроме вашего профессора, нужен доступ к файлам. Может быть, ваш партнер лаборатории делает; может быть, помощники учителя делают; может быть, весь ваш год (но не годы ниже вас - те, кто выше вас, вероятно, уже знают то, что вы знаете). Но без дополнительной информации о ваших требованиях к защите никто больше не сможет вам помочь. И вообще, легко получить неправильные списки ACL - используйте экономно, если вообще используйте стандартные разрешения Unix в качестве основного элемента управления доступом.

И в следующий раз я предлагаю просто позволить вашему профессору добавить (не стирая) списки ACL - или спросить его, куда он хочет, чтобы вы копировали файлы (возложить на него ответственность за решение проблем с разрешениями), или скопировать файлы в каталог, такой как $ HOME / tmp / prof.jones, с разрешением 711 для каталога, 644 разрешениями для файлов и скажите ему, какие файлы ему нужно скопировать.

...