2

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

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

>> 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

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

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

кошка /etc /group

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]

2 ответа2

1

Если вы хотите, чтобы новые файлы, созданные вашими пользователями, по умолчанию были доступны для записи членам группы, вам нужно изменить значение 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)
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 , возможно, это веб-сервер, возможно, это что-то еще. Если вы не объясните, на самом деле невозможно дать подробный конкретный совет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .