] Вот еще один способ:[
] [$ stat filename && file "$_"
]
[] Пример:[
] [$ stat /usr/bin/yum && file "$_"
File: ‘/usr/bin/yum’
Size: 801 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d Inode: 1189124 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:rpm_exec_t:s0
Access: 2014-06-11 22:55:53.783586098 +0700
Modify: 2014-05-22 16:49:35.000000000 +0700
Change: 2014-06-11 19:15:30.047017844 +0700
Birth: -
/usr/bin/yum: Python script, ASCII text executable
]
[] Это работает в [] bash[
] и []zsh[
]. Это также работает в []mksh[
] и []dash[
], но только в интерактивном режиме. В AT&T ksh это работает только тогда, когда файл [] "$_"[
] находится на другой строке, чем [] stat[
].[
Для этого можно использовать Списки управления доступом (ACL), предоставляя дополнительные разрешения конкретному пользователю для определенного файла или каталога.
Прежде всего, убедитесь, что в рассматриваемой файловой системе включена опция acl
: обычно она будет по умолчанию, но вы можете добавить ее к параметрам в fstab
(и / или перемонтировать).
При включенных списках управления доступом вы управляете списком управления доступом к определенному файлу или каталогу с помощью команды setfacl
:
setfacl -m "user:vonflynee:rwx" /home/foo/www
, которая устанавливает разрешение для каждого пользователя для пользователя vonflynee
из rwx
(в формате chmod
) для этого конкретного каталога, в дополнение к разрешениям, которые уже есть у владельца файла.У вас может быть несколько спецификаций ACL для конкретного файла для разных пользователей и групп, с которыми вам нужно иметь дело, и они могут иметь любую комбинацию различных разрешений.
Как и в случае с другими разрешениями, вам необходимо иметь возможность перемещаться по всему дереву до файла, к которому вы хотите получить доступ, поэтому вам может потребоваться настроить другие разрешения выше по дереву, и вам также потребуется доступ к файлам. setfacl
поддерживает - рекурсивный
режим для установки разрешений для всего дерева.
Другой вариант, более традиционный, - просто создать новую группу « vonflyneeandfoo
», добавить в нее обоих пользователей, chown -R
каталог в эту группу, chmod g + s
каталог, чтобы новые файлы унаследовали его группу, а затем chmod -R g + rX dir
, чтобы дать группе файлов разрешение на запись.
Если есть только этот единственный случай, с которым вам нужно разобраться, это, вероятно, будет более простым вариантом. Даже если это так, если у вас много локальных пользователей, и вы полагаетесь на то, что apache
уже является членом группы, тогда сделать работу с разрешениями на чтение сложнее, а списки управления доступом будут для вас более удобными.