предоставление разрешений на запись для группы в папку

34

Как я могу дать разрешение на запись 1 группе?
У меня 2 пользователя ( alexа ben).
alexявляется членом группы alexи группы consult.
benявляется членом группы benи группы consult.

Я хочу предоставить права на чтение и запись как для папки, так alexи benдля нее consult_documents.

Если я alexвладелец каталога consult_documentsи я предоставить 775доступ к каталогу consult_documents, benи alexбудет иметь возможность получить доступ к папке, я думаю.

Но позволит ли это benполучить доступ и к alexдругим папкам? Если пользователь входит в две группы, означает ли это, что все участники из обеих групп получают одинаковые разрешения для всех папок?

anatak
источник
Вы хотите, чтобы Алекс и Бен могли создавать файлы в consult_documents и разрешать им обоим доступ на чтение / запись к этим документам?
X Tian

Ответы:

42

Предоставление 775 разрешений для каталога не означает автоматически, что все пользователи в определенной группе получат rwxдоступ к нему. Они должны быть либо владельцем каталога, либо принадлежать к группе каталога:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Таким образом, чтобы позволить и alex, и ben иметь доступ для записи some_dir, сам some_dirкаталог должен принадлежать consultгруппе. Если это не так, владелец каталога (alex в вашем примере) должен выполнить следующую команду:

$ chgrp consult some_dir/

или изменить групповое владение всем внутри каталога:

$ chgrp -R consult some_dir/

Это будет работать только в том случае, если Алекс является членом consultгруппы, что, как кажется, имеет место в вашем примере.

Это не позволит Бену получить доступ ко всем каталогам alex по двум причинам:

  1. Не все каталоги alex будут принадлежать consultгруппе
  2. Некоторые из каталогов alex могут принадлежать consultгруппе, но alex, возможно, не разрешил rwxгрупповой доступ к ним.

Короче говоря, ответ зависит как от принадлежности группы, так и от битов разрешений группы, установленных для каталога.

Все это при условии, что вы не используете никаких дополнительных обязательных мер контроля доступа в вашей системе.

Джозеф Р.
источник
consult_documents - это каталог, тогда как вы можете указать его как группу?
Бабин Лонстон
@Babinlonston Вы не можете. Вы указываете consultкак группу.
Джозеф Р.
Спасибо, я искал, как дать доступ к каталогу одной группе. Я не понимал, что команда chgrp может сделать это. Я думал, что chgrp был только для добавления / удаления пользователей в группу.
Анатак
1
@anatak Изменение членства в группе осуществляется через usermodнеchgrp
Джозеф Р.
Это так же, как chown -R :consult some_dir/?
Аарон Франке
7

Это заставит Алекса и Бена сотрудничать друг с другом в этом Справочнике, и они не смогут сотрудничать в других каталогах.

Изменить группу пользователей, используя

# usermod -a -G alex,ben alex

Затем измените разрешение для папки

# chown alex:ben consult_documents

Проверьте здесь, я работал вокруг

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Посмотрите здесь

Бабин Лонстон
источник
6

Если я правильно понял ваш вопрос, ответ - да.

Позволь мне объяснить:

Ваши права доступа к папкам и файлам делятся на три категории:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Каждый файл и папка должны принадлежать пользователю.

Это означает, что если у вас есть папка с именем consult_documents и вы хотите, чтобы она была доступна всем членам группы Consult, у вас будет это (с правами доступа 755):

drwxrwxr-x Alex Consult [......]

Каталог принадлежит Алексею, а группа - Consult. У Алекса есть права доступа RWX. На Group Consult есть права доступа RWX. Другие пользователи имеют права RX.

Поскольку у вашего пользователя Alex несколько групп, вы можете выбрать группу для обмена.

Например, если ваша папка принадлежит Алексу из группы Alex:

drwxrwxr-x Alex Alex [......]

Сделай это:

chown Alex:Consult your_folder

Это станет:

drwxrwxr-x Alex Consult [......]

И тогда каталог доступен для группы Consult.

Обратите внимание, что, насколько мне известно, вы можете добавить группу, которая не входит в группу владельца. Но я не уверен, если это рекомендуется (не ясно, при чтении прав доступа).

Лоран С.
источник
3

setfacl -mg: передача-debian: rwx -R / mnt / sra

Нашел эту команду приятной, вместо chown , которая полностью изменит владельца файла или каталога!

На 'ls -Al' вы увидите, что будет добавлен знак + , чтобы показать, что существует более одного владельца!

drwxr-xr-x 2 root root 4096 8 нояб. 19:11 sdc1 /

drwxrwxr-x + 3 root root 4096 17 февраля 19:16 sra /

И тогда вы можете использовать getfacl, чтобы увидеть, кто может написать или прочитать файл или каталог!

# file: sra

# владелец: root

# группа: пользователь root :: rwx

группа :: гх

группа: Debian-передачи: RWX

Маска :: RWX

другое :: ого

по умолчанию: пользователь :: RWX

по умолчанию: группа :: гх

по умолчанию: группа: DEBiAN-передачи: RWX

по умолчанию: маска :: RWX

по умолчанию: другие :: гх

Марк Кабана
источник