Групповое разрешение на папку

Вопрос или проблема

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

  • Я установил свою папку следующим образом (результаты getfacl):
    # файл: dir/
    # владелец: root
    # группа: groupname
    user::rwx
    user:user1:rwx
    user:user2:rwx
    user:user3:rwx
    group::rwx
    mask::rwx
    other::r-x
    default:user::rwx
    default:group::rwx
    default:other::r--
    

    но все равно, когда я создаю новый файл как user1 в папке, этот файл не исполняется из группы:

    -rw-r--r--  1 user1 groupname 3021 25 окт 10:16 script.sh
    
  • Я также пробовал установить разрешение s для группы, но результат тот же.

Как я могу это решить?

Ответ или решение

Установка групповых прав доступа к каталогу: детали и решение проблемы

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

Текущая конфигурация прав доступа

На основании предоставленной информации и результатов команды getfacl, ваши права доступа к каталогу выглядят следующим образом:

# file: dir/
# owner: root
# group: groupname
user::rwx
user:user1:rwx
user:user2:rwx
user:user3:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r--

Вы установили права для группы на чтение (r), запись (w) и выполнение (x), но новые файлы, созданные пользователем (например, user1), автоматически получают права -rw-r--r--, что означает, что другие пользователи группы не могут его выполнять.

Проблема с правами на созданные файлы

По умолчанию созданные файлы наследуют права согласно umask текущего пользователя. В вашем случае umask для user1 настроен таким образом, что по умолчанию новые файлы создаются с правами rw-r--r--. Это объясняет, почему файлы не получают групповые права на выполнение.

Для решения этой проблемы есть несколько подходов:

  1. Изменение umask для участников группы:
    Вы можете изменить umask пользователей так, чтобы создаваемые файлы имели права на выполнение для группы. Для этого выполните команду:

    umask 002

    Это позволит всем файлам и директориям, создаваемым пользователем, иметь права rw-rw-r-- и rwxrwxr-x соответственно. Этот метод должен применяться каждый раз при входе пользователя в систему, поэтому лучше добавить его в файл конфигурации оболочки, например, в ~/.bashrc.

  2. Использование специальных битов для каталога:
    Для обеспечения того, чтобы все файлы создавались с нужными правами, вы можете установить setgid бит на каталоге. Это можно сделать следующей командой:

    chmod g+s /path/to/dir

    Установка этого бита обеспечит создание новых файлов с группой владельца каталога и поможет в дальнейшем избежать конфликтов с правами.

  3. Проверка настроек ACL:
    Убедитесь, что для каталога также настроены корректные значимые ACL. Вам может понадобиться использовать setfacl для изменения прав доступа. Попробуйте следующую команду:

    setfacl -m g:groupname:rwx /path/to/dir
    setfacl -d -m g:groupname:rwx /path/to/dir

    Это позволит установить шаблон ACL для всей группы и дать возможность новым файлам наследовать эти права.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...