Еще вопросы о разрешениях Linux

Еще вопросы о разрешениях Linux

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

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

>> groups user_1
      popuser psaserv psacln
>> groups user_2
      psacln popuser psaserv

Это не настоящие пользователи, поэтому у них нет файлов .bashrc. Когда каждый из пользователей создает каталог, разрешения выглядят именно так, как я и ожидал:

drwxr-xr-x 2 user_1 popuser 4096 Apr 30 20:47 folder_1
drwxr-xr-x 2 user_2 psacln  4096 Apr 30 20:49 folder_2

Но как только один из двух пользователей создает папку, другой не может записывать в нее какие-либо файлы.

Если я применю chmod 777, то, конечно, они оба смогут писать.

кот /etc/группа

popuser:x:31:user_1,psaserv,user_2
psacln:x:505:user_2,user_1,psaserv

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

-rw-r--r-- 1 user_2 psacln 0 Apr 30 21:15 some_file.ext

Хотя, возможно, этого и следовало ожидать.

В любом случае, чтобы подвести итог и прояснить мой вопрос, состоящий из двух частей:

1) How can I make both users access files and folders from each other, given their group differences?
2) How can I set the default permissions on new files so they inherit the folder permissions?

(2) Я пробовал добавить umask 022 в файл ~/.bashrc для пользователя root, но это ничего не дало. Я не уверен, куда это вставить для этих "пользователей", у которых нет домашних каталогов.

Извините, я знаю, что такие вопросы могут показаться излишними для вас, экспертов по Linux. Поиск труден, когда я даже не знаю, что ищу.

Спасибо большое, как всегда.

[У меня CentOS]

решение1

1) Как сделать так, чтобы оба пользователя имели доступ к файлам и папкам друг друга, учитывая их групповые различия?

Один из способов — присвоить каталогам группу, в которую входят все пользователи.

  chgrp psaserv folder1 folder2
  chmod g+w  folder1 folder2

2) Как установить разрешения по умолчанию для новых файлов, чтобы они наследовали разрешения папки?

Используйте бит «установить идентификатор группы».

  chmod g+s folder1 folder2

Вы не можете наследовать разрешения rwx, установите umask.


Я пробовал добавить umask 022 в файл ~/.bashrc для моего пользователя root, но это ничего не дало. Я не уверен, куда это вставить для этих "пользователей", у которых нет домашних каталогов.

Вы организовали, что какой-то процесс использует эти идентификаторы пользователей. Вы должны организовать, чтобы этот процесс установил свою маску umask на 022. Как вы это сделаете, зависит от того, какой процесс вы организовали для этого. Возможно, вы используете sudo, возможно, это веб-сервер, возможно, это что-то еще. Пока вы не объясните, на самом деле невозможно дать подробный конкретный совет.

решение2

Если вы хотите, чтобы новые файлы, созданные вашими пользователями, по умолчанию были доступны для записи членам группы, вам необходимо изменить umask на значение, отличное от 022. Если вас устраивают вопросы безопасности, установите umask на 002 (примеры того, где установить umask, см.https://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask).

Умаск объяснил

Разрешения по умолчанию для вновь созданных файлов и каталогов — это стандартное разрешение ( rw-rw-rwдля файлов, rwxrwxrwxдля каталогов) с вычетом текущей настройки umask. Настройка umask 000 сохранит стандартные разрешения, тогда как настройка 777 удалит все разрешения.

Три числа в umask представляют разрешения пользователя, группы и любого пользователя соответственно. Число представляет три двоичные цифры, указывающие, следует ли удалять определенное разрешение или нет.

d - rwx
-------
0 - 000 (rwx)
1 - 001 (rw-)
2 - 010 (r-x)
3 - 011 (r--)
4 - 100 (-wx)
5 - 101 (-w-)
6 - 110 (--x)
7 - 111 (---)

Чтобы рассчитать, какие разрешения будут предоставлены новому файлу для определенного значения umask, начните с разрешения по умолчанию и вычтите umask.

orig    rwx rwx rwx (777, default directory permission)
umask   000 010 010 (022)
result  rwx r-x r-x (755)

orig   rw- rw- rw- (666, default file permission)
umask  000 010 010 (022)
result rw- r-- r-- (644)

orig   rwx rwx rwx (777, default directory permission)
umask  000 000 010 (002)
result rwx rwx r-x (775)

orig   rw- rw- rw- (666, default file permission)
umask  000 000 010 (002)
result rw- rw- r-- (664)

Связанный контент