Каталог, совместно используемый пользователями [дубликат]

Давайте скажем, на моем сервере 3 пользователя:

  • / home / bob
  • / home / joe
  • / home / fred

Я хочу создать папку в / share , в которой Боб и Джо могут как добавлять, так и удалять файлы. Я хочу, чтобы все файлы, добавленные в этот каталог, имели разрешения, чтобы оба пользователя могли их изменять или удалять.

Проблема в том, что когда каталоги создаются в / share / , они создаются с разрешениями для владельца. Если папка создана в / shared, то она принадлежит создателю, и никто другой не может изменять / удалять ее содержимое.

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

0
задан 29 January 2015 в 03:31

2 ответа

Использование групп

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

Создать группу:

sudo groupadd groupname

Можно использовать что-либо вместо groupname, просто помнить, каково это! Затем, давайте создадим папку в доле /

sudo mkdir /share

Набор, что группа папки к созданной, и хорошо как полномочия набора

sudo chgrp groupname /share
sudo chmod 775 /share

Remeber для изменения groupname на тот созданный! Вы видите, что мы изменяем полномочия /share кому: 775, вот explaination того, что это означает.

7 в первом положении это дает владельцу папки, читайте (перечисляет файлы в папке), запишите (создайте/удалите файлы в папке), и выполнитесь (смочь к cd в ту папку). В нашем случае владелец папки является корнем.

7 во втором положении это дает группу папки, прочитайте, запишите и выполните разрешение. В нашем случае группа папки groupname или независимо от того, что Вы устанавливаете его на.

5 в конечном положении это дает общественность (кто бы ни может войти в систему к системе), читайте и выполните разрешение. Это позволяет им cd в папку и список использование файлов ls или подобная команда. Если Вы хотите предотвратить других от cd'луг в папку можно использовать 0 вместо 5, значение они не получают полномочий.

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

sudo usermod -a -G groupname [username]

Обязательно измените groupname и [имя пользователя] к их правильным значениям.

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

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

Альтернативные решения, которые я думаю, более сложны, должен использовать ACLs (или Списки управления доступом). Это позволяет Вам давать определенные разрешения определенным пользователям без использования групп или изменяющихся владельцев. Чтобы это работало, файловая система должна быть смонтирована с acl опция.

Подготовка использовать ACL

Во-первых, мы должны проверить, смонтирован ли диск уже как ACL. Поскольку мы папка находимся в /share находится в корне (/) раздел, мы должны удостовериться, что корневой раздел уже смонтирован с acl опция.

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

Чтобы определить, включили ли разделу ACL, мы можем использовать mount команда.

mount -l

Для меня это находится на первой строке.

/dev/sda5 on / type ext4 (rw,errors=remount-ro)

Мы видим что раздел /dev/sda5 смонтирован в /. Ваш не может быть на первой строке, как мой. Это может быть на втором, третьем, но это должно быть смонтировано в /, потому что это то, где наш /share .

Теперь, мы должны будем определить, имеем ли мы acl опция.

tune2fs -l [partition path]

От моего вывода mount -l Вы видите, что мой путь раздела /dev/sda5, Ваш может отличаться.

От выполнения команды мы получим что-то подобное этому:

tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          5e7b3dcf-cda0-4a74-ab0e-67c9ce8ab044
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
~cut off to save space~

На строке опций монтирования по умолчанию мы видим, что имеем acl включенный. Если Вы не имеете acl включенный, можно использовать Google, узнают, как сделать это.

Теперь, как метод с группами, необходимо будет создать папку:

sudo mkdir /share

Одна последняя вещь, мы должны установить папку на 700, поэтому только корень (и люди предоставил доступ ACL) может получить доступ к папке:

sudo chmod 700 /share

Теперь мы можем установить управление доступом.Примечание: установка полномочий, не используя acl и вместо этого использование chmod, заставит acl полномочия быть сброшенными.

Установка полномочий ACL

Это немного более просто теперь, если Вы хотите установить разрешение для пользователя, можно использовать

sudo setfacl -m "u:[username]:rwx" /share

Это предоставит [имя пользователя] rwx (чтение, запишите, выполнитесь), полномочия. sudo требуется только потому, что доля / принадлежит корню.

Для использования группы:

sudo setfacl -m "g:[groupname]:rwx" /share

Для другой/общественности (только включает людей, которые могут войти в систему к системе), использование:

sudo setfacl -m "o:rwx" /share

Примечание: можно подкачать rwx для других как rx для читал/выполнял только.Примечание: если Вы передаете a -d опция при использовании setfacl (setfacl -d -m "u:...), это установит значение ACL по умолчанию для папки. Это заставит любые НОВЫЕ файлы, добавленные к папке автоматически иметь полномочия, которые Вы применили.

3
ответ дан 3 August 2019 в 17:46

ОТРЕДАКТИРОВАННЫЙ:

Делают группу пользователей, щелкают правой кнопкой по папке, Вы хотите и устанавливаете соответствующие полномочия для той группы! Надежда это помогает!

0
ответ дан 3 August 2019 в 17:46

Другие вопросы по тегам:

Похожие вопросы: