Группа в группе разрешений файла

13

Я попытался найти это здесь, но не мог так сожалеть, если это дубликат.

Скажем, у меня есть 2 группы и пользователь: group1, group2, user1 со следующей структурой: group1 является членом группы 2, user1 является членом group1

Теперь скажите, что у меня есть следующие файлы с соответствующими разрешениями

file1 root:group1 660
file2 root:group2 660

Теперь, когда я захожу в user1, я могу редактировать file1, но не редактировать file2. Кроме добавления user1 в group2, есть ли способ сделать это? или нет пути?

Я использую Ubuntu, кстати.

Арам Папазян
источник
Если я не ошибаюсь, классические групповые разрешения в Linux не позволяют вам поместить группу в другую группу. Итак, вы установили что-то, что включает эту функцию?
Гюнтер Стрейф
Пользователь может быть членом нескольких групп. Если вы добавите пользователя 1 в группу 2, он сможет изменить файл 2. Командой по вашему выбору будет useradd.
user1146332
@GuntherStruyf Я ничего не менял ... Из того, что я мог сказать, Ubuntu позволяет это по умолчанию ...
Арам Папазян
@ user1146332 Суть в том, чтобы не добавлять user1 в group2. Если это единственный способ, то я могу это сделать, но теоретически я бы предпочел структуру группового вложения ...
Арам Папазян

Ответы:

15

Нет такой вещи, как группа, являющаяся членом группы. Группа по определению имеет набор пользователей. Я никогда не слышал о функции, которая позволяла бы вам указывать «подгруппы», где членам подгрупп автоматически предоставляется членство в супергруппе при входе в систему. Если /etc/groupсписок group1является членом group2, он обозначает вызываемого пользователя group1(если такой пользователь существует, что возможно: имена пользователей и группы находятся в разных пространствах имен).

Если вы хотите, чтобы user1 имел доступ к file2, у вас есть несколько решений:

  • Сделайте file2мир доступным (вы, вероятно, не хотите этого)
  • Сделайте user1 владельцем file2: chown user1 file2
  • Добавьте пользователя 1 в группу 2: adduser user1 group2
  • Добавьте ACL, file2который предоставляет доступ к user1 или group`:

    setfacl -m user:user1:rw file2
    setfacl -m group:group1:rw file2
    

    См. Сделать все новые файлы в каталоге доступным для группы при включении списков ACL.

Жиль "ТАК - прекрати быть злым"
источник
7
Да, unix / linux не поддерживает вложенные группы. Было бы полезно, если бы это произошло, но это не так. Windows делает, и Active Directory делает. LDAP делает то же самое, поэтому это возможно, если данные учетной записи и группы находятся в файлах LDAP, а не в файлах / etc / passwd и / etc / group ... но это излишне, когда есть простые решения, такие как ACL (или просто добавление пользователя). для обеих групп)
саз