76

Есть папка, которая принадлежит пользователю tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

Я хочу разрешить другому пользователю (русеру) права на запись в папку документов. Два пользователя (tomcat6 и ruser) не принадлежат к одной группе. Я попытался с помощью setfacl:

sudo setfacl -m  u:ruser:rwx document

но это дает мне setfacl: document: Operation not supported ошибка. Пожалуйста, помогите мне.

2 ответа2

136

Есть два способа сделать это: установить каталог для записи "world" или создать новую группу для двух пользователей и сделать каталог доступным для записи в эту группу.

Очевидно, что сделать его доступным для записи во всем мире - это плохо, поэтому второй вариант предпочтительнее.

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

sudo groupadd tomandruser

Теперь, когда группа существует, добавьте в нее двух пользователей:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Теперь осталось только установить разрешения для каталога:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Теперь только члены группы tomandruser могут читать, записывать или выполнять что-либо в каталоге. Обратите внимание на аргумент -R для команд chmod и chgrp: он указывает им входить в каждый подкаталог целевого каталога и изменять каждый найденный файл и каталог.

Вы также можете изменить 770 на что-то вроде 774 если хотите, чтобы другие могли читать файлы, 775 если вы хотите, чтобы другие читали и выполняли файлы, и т.д. Изменения в назначениях групп не вступят в силу, пока пользователи не выйдут из системы. и обратно.

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

2

Пример сценария показывает пример, который дает w (write)/ r (read) / x (execute) разрешение на заданный путь к папке /path/to/the/directory для USER1 и USER2 . Если вы хотите предоставить доступ только для записи, замените rwx на w .


#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory 

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