Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [РЕШЕНО] Настройка ACL (права на доступ к файлам и папкам)  (Прочитано 6596 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wizard999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Здравствуйте.
Помогите, пожалуйста, разобраться с настройками прав доступа.

Дано:
1. ubuntu 10.04, файловая система ext4.
2. Два пользователя: rodion и sasha.

Цель:
1. rodion должен иметь полный доступ к любым файлам в папке /home/sasha .
2. rodion должен иметь право копировать файлы в папку /home/sasha.
3. sasha должен иметь полные права на все файлы/папки в папке /home/sasha (в том числе, созданные пользователем rodion).

Решение?
Пока решил разбить задачу на 2 подзадачи.
1. Для раздачи прав на существующие файлы и для новых файлов файлов использовал статью http://welinux.ru/post/372
2. Для раздачи прав на копируемые файлы/папки предполагаю делать по образу http://welinux.ru/post/503/. На сколько это корректное решение? Смущает, что для такой задачи нужно в что-то указывать в автозапуске.

1.
1.1 Исполняю из под пользователя sasha.
#!/bin/bash

# Удаление всех атрибутов
find /home/sasha -type d -exec setfacl -bk {} \;
find /home/sasha -type f -exec setfacl -bk {} \;

find /home/sasha -type d -exec setfacl -m u::rwx,u:rodion:rwx,d:u:rodion:rwx,u:sasha:rwx,d:u:sasha:rwx {} \;
find /home/sasha -type f -exec setfacl -m u::rw,u:rodion:rw,u:sasha:rw {} \;

setfacl -m d:u::rwx,d:u:sasha:rwx,d:u:rodion:rwx /home/sasha
1.2 Пользователь rodion с помощью Midnight Commander создаёт файл /home/sasha/test.txt
1.3 Пользователь sasha проверяет права:
getfacl test.txt
Результат:
# file: test.txt
# owner: rodion
# group: rodion
user::rw-
user:rodion:rwx                 #effective:r--
user:sasha:rwx                  #effective:r--
group::rw-                      #effective:r--
mask::r--
other::r--

Нам всё испортила mask? Почему mask = r--?

Я вообще, в правильном направлении двигаюсь? Где я ошибся?


Ниже описаны найденные решения


Цитировать
1. Для раздачи прав на существующие файлы и для новых файлов файлов
https://forum.ubuntu.ru/index.php?topic=114972.msg853203#msg853203
тот же скрипт, но короче:
https://forum.ubuntu.ru/index.php?topic=114972.msg855370#msg855370

Цитировать
2. Для раздачи прав на копируемые файлы/папки
Придётся использовать что-то вроде http://welinux.ru/post/503/

Интересное и более простое решение:
https://forum.ubuntu.ru/index.php?topic=114972.msg855386#msg855386
« Последнее редактирование: 16 Марта 2011, 14:31:59 от Wizard999 »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Здравствуйте.
Помогите, пожалуйста, разобраться с настройками прав доступа.

Дано:
1. ubuntu 10.04, файловая система ext4.
2. Два пользователя: rodion и sasha.

Цель:
1. rodion должен иметь полный доступ к любым файлам в папке /home/sasha .
2. rodion должен иметь право копировать файлы в папку /home/sasha.
3. sasha должен иметь полные права на все файлы/папки в папке /home/sasha (в том числе, созданные пользователем rodion).
Насколько я понимаю, пользователь всегда может переписать права (сделать только чтение, например) по крайней мере на файлы созданные им. Тогда читать/писать их можно будет только с правами суперпользователя, т.е. 1. как бы отпадает

2.,3. достигается включением rodion в группу sasha, но при 3. и тут такая же проблема, как описано выше.

Но это при стандартной системе прав. ACL вроде должен уметь больше, но возможна ли подобная конфигурация — не знаю. Было бы интересно послушать.

Оффлайн Mystic-Mirage

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Недавно сталкивался с подобной задачей. Но мой способ имеет недостаток, описанный ниже. По пунктам:

1. Включить пользователя rodion в группу sasha; дать файлам и папкам в /home/sasha дополнительный доступ на запись группе sasha (выполнить от пользователя sasha - chmod g+w -R /home/sasha).
2. Теперь rodion без проблем копирует в папку /home/sasha файлы.
3. Добавить пользователя sasha в группу rodion; дополнительно, для того, чтобы новые файлы пользователя rodion были доступны на запись группе rodion сделаем в папке /home/rodion файл .gnomerc с командой umask 002 (выполнить от пользователя rodion - echo 'umask 002' > /home/rodion/.gnomerc).

ВНИМАНИЕ: Недостатком моего метода является то, что пользователь sasha имеет полные права на все файлы, созданные пользователем rodion, а не только созданные последним в папке /home/sasha.

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


Оффлайн Wizard999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
ВНИМАНИЕ: Недостатком моего метода является то, что пользователь sasha имеет полные права на все файлы, созданные пользователем rodion, а не только созданные последним в папке /home/sasha.

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

Как ещё один недостаток, как я понял, это зависимость от GNOME, т.е. оболочки из под которой работаем. К тому же в моём случае sasha не должен иметь доступ к ресурсам rodion.

Пойдём дальше...
Решил проверить как работает раздача прав под X-ми (GNOME)
И оказалось, что всё работает! Т.е. Midnight Commander при создании файлов создавал странную маску (как объяснить такое поведение не знаю).

Итак, в итоге:

Выполнил скрипт из под sasha:
#!/bin/bash

# Удаление всех атрибутов
find /home/sasha -type d -exec setfacl -bk {} \;
find /home/sasha -type f -exec setfacl -bk {} \;

# Раздача прав на существующие объекты и прав на будующие объекты (d - default)
find /home/sasha -type d -exec setfacl -m u::rwx,u:rodion:rwx,d:u:rodion:rwx,u:sasha:rwx,d:u:sasha:rwx {} \;
find /home/sasha -type f -exec setfacl -m u::rw,u:rodion:rw,u:sasha:rw {} \;

После этого:
Для созданных файлов в папке /home/sasha пользователем rodion:
getfacl test
# file: test
# owner: rodion
# group: rodion
user::rw-
user:rodion:rwx            #effective:rw-
user:sasha:rwx            #effective:rw-
group::rw-
mask::rw-
other::rw-

Для созданных файлов в папке /home/sasha пользователем sasha:
getfacl test2
# file: test2
# owner: sasha
# group: sasha
user::rw-
user:rodion:rwx            #effective:rw-
user:sasha:rwx            #effective:rw-
group::rw-
mask::rw-
other::rw-

И последнее проблемное. При копировании из /home/rodion в /home/sasha получаем следующее:
getfacl test3
# file: test3
# owner: rodion
# group: rodion
user::rw-
user:rodion:rwx            #effective:r--
user:sasha:rwx            #effective:r--
group::rw-            #effective:r--
mask::r--
other::r--

Права пользователям выдаются, rodion имеет полный доступ как владелец, а sasha - только чтение.
То есть опять мешаеся маска...
Можно попробовать пойти этим путём: http://welinux.ru/post/503/. Но мне кажется, что этот путь не верен. Есть ли ещё какие то идеи?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net

Оффлайн Wizard999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Решение дописал в шапке...

Всем спасибо.  :)

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
5 копеек...
Цитировать
# Удаление всех атрибутов
find /home/sasha -type d -exec setfacl -bk {} \;
find /home/sasha -type f -exec setfacl -bk {} \;

# Раздача прав на существующие объекты и прав на будующие объекты (d - default)
find /home/sasha -type d -exec setfacl -m u::rwx,u:rodion:rwx,d:u:rodion:rwx,u:sasha:rwx,d:u:sasha:rwx {} \;
find /home/sasha -type f -exec setfacl -m u::rw,u:rodion:rw,u:sasha:rw {} \;

Примерно то же самое, но покороче:
setfacl -Rb /home/sasha
setfacl -Rm u::rwX,u:rodion:rwX,d:u:rodion:rwX,u:sasha:rwX,d:u:sasha:rwX /home/sasha

Оффлайн Golan

  • Активист
  • *
  • Сообщений: 703
  • Любитель
    • Просмотр профиля
Lenovo ThinkPad T500/Runtu 14.04 xfce 4.12/

Оффлайн Wizard999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
http://leolik.blogspot.com/2010/07/bindfs.html
Очень интересное решение для общих разделов. Занёс ссылку в шапку. Спасибо!

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
http://leolik.blogspot.com/2010/07/bindfs.html
Очень интересное решение для общих разделов. Занёс ссылку в шапку. Спасибо!
Почему для разделов? Для отдельных папок тоже работает.

Оффлайн Wizard999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
http://leolik.blogspot.com/2010/07/bindfs.html
Очень интересное решение для общих разделов. Занёс ссылку в шапку. Спасибо!
Почему для разделов? Для отдельных папок тоже работает.

Ну может быть... Верю на слово. Решение в шапке поправил.

 

Страница сгенерирована за 0.019 секунд. Запросов: 20.