1

У меня ограниченные познания в системах Linux, поэтому я не понимаю :) Я пытаюсь добавить Apache и пользователя с именем admin в одну группу в CentOS. Когда я запускаю id admin я получаю группы 1000 (apache) и группу 1002 (admin), когда я запускаю id apache я получаю группы 1000 (apache) и 1003 (доступ).

Я вижу, что они оба являются членами группы 1000 (apache), но когда я пытаюсь добавить admin в группу 1003 (access) через usermod -G access admin , он почему-то удаляет admin из группы apache ( поэтому, когда я запускаю 'id admin', я получаю группы 1002 и 1003, но они больше не входят в список 1000).

Есть ли ограничение на количество групп, членом которых может быть пользователь? Если нет, то как мне поместить их в одну группу?

Моя проблема связана с проблемами прав доступа - например, в определенной папке, которая принадлежит «admin», когда я пытаюсь создать новый каталог или загрузить файл с правами администратора, я могу это сделать. Однако, когда я пытаюсь сделать это с помощью пользователя apache, я не могу.

Редактировать: вывод для getfacl:

getfacl: Removing leading '/' from absolute path names
# file: home/admin/domains/xxx/public_html/xxx/xxx
# owner: apache
# group: apache
user::rwx
user:apache:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:apache:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

14 апреля редактировать:

getfacl: Removing leading '/' from absolute path names
# file: home/admin/domains/public_html/xxx/xxx
# owner: apache
# group: apache
user::rwx
user:admin:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:admin:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

2 ответа2

4

Когда я добавляю admin в группу доступа, он удаляет admin из группы apache

usermod -G access admin

Вы не используете usermod правильно.

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

Используйте следующую команду:

usermod -G access, apache admin

Или же:

usermod -a -G access admin

usermod(8) - справочная страница по Linux

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
           A list of supplementary groups which the user is also a member
           of. Each group is separated from the next by a comma, with no
           intervening whitespace. The groups are subject to the same
           restrictions as the group given with the -g option.

           If the user is currently a member of a group which is not listed,
           the user will be removed from the group. This behaviour can be
           changed via the -a option, which appends the user to the current
           supplementary group list.

Source usermod(8) - справочная страница по Linux

3

Мар, как я всегда отвечал на твой предыдущий вопрос, тебе не нужно добавлять пользователей в какие-либо группы, чтобы получить доступ к файлам в определенной папке и ее подпапках, потому что POSIX ACL вполне достаточно для решения таких проблем.

Используйте команду ниже:

setfacl -Rm d:u:apache:rwX,u:apache:rwX /path/to/your/folder

Отныне пользователь apache (и admin) может делать все, что он хочет, в этой папке и ее подпапках, но больше никому.

-Rm R ecursively м odify списки управления доступом

u:apache:rwX Установить ACL для пользователя apache для существующих файлов и (под) папок начальной папки

d:u:apache:rwX Установить ACL для пользователя apache для вновь создаваемых файлов и (вложенных) папок

Вы можете удалить все дополнительные ACL в любое время, используя

setfacl -Rb /path/to/your/folder

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