The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 03-Авг-08, 05:41  [смотреть все]
Начну по порядку. На десктопе стоит OpenSUSE 11 kernel 2.6.25.5, ФС - ext3. Есть два
пользователя (А и В) и оба состоят в группе users. В домашнем каталоге
пользователя А есть каталог "Моя музыка" для которого (и всего его
содержимого) необходимо сделать полный доступ для пользователей А и В, при
этом вновь создаваемые файлы и каталоги автоматически должны получать теже
права.
Я поступил следующим образом:
>find моя\ музыка -type d -exec chmod g+rwx {} \;
>find моя\ музыка -type f -exec chmod g+rw {} \;
>find моя\ музыка -type d -exec setfacl -m default:user::rwx {} \;
>find моя\ музыка -type d -exec setfacl -m default:mask:rwx {} \;

Что я получил в итоге? Getfacl моя\ музыка выдает:
>user::rwx
>group::rwx
>other::r-x
>default:user::rwx
>default:group::rwx
>default:mask::rwx
>default:other::r-x

Тоже и для существующих каталогов внутри "Моя музыка" и для внось создаваемых
каталогов.

Для создаваемых внутри "Моя музыка" файлов getfacl выдает:
>user::rw-
>group::rwx                      #effective:rw-
>mask::rw-
>other::r--

А вот если файл скопировать,  (не важно кто из А и В копирует и чей файл) то:
>user::rw-
>group::rwx                      #effective:r--
>mask::r--
>other::r--

В итоге полный доступ к файлу имеет только владелец, оставльные члены группы
обламываются (mask::r--). Хочу обратить внимание, что если копировать каталог, то ему
присваиваются теже права, что и на "Моя музыка", не работает именно с
файлами.
Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
Подскажите пожалуйста, может я что-то не учел при раздаче прав, и как можно
решить мою проблему? Спасибо за ответ.

  • Автоматическое присвоение прав пользователей на копируемые ф..., !*! angra, 04:24 , 07-Авг-08 (1)
    Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без всяких ACL.
    • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 09:42 , 07-Авг-08 (2)
      >Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не
      >увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без
      >всяких ACL.

      Я хочу чтоб копируемому в каталог "Моя музыка" файлу автоматически присваивались права rw-rw-r--. На практике такие права присваиваются только создаваемому.

      • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 16:00 , 26-Сен-08 (3)
        Я так и не смог найти решение. Подскажите куда копать?

      • Автоматическое присвоение прав пользователей на копируемые ф..., !*! vic, 15:22 , 11-Мрт-09 (6)
        >>Вы бы сформулировали чего хотите, а не перечисляли что пробовали. Пока не
        >>увидел ничего что нельзя было бы решить стандартными юниксовыми правами, без
        >>всяких ACL.
        >
        >Я хочу чтоб копируемому в каталог "Моя музыка" файлу автоматически присваивались права
        >rw-rw-r--. На практике такие права присваиваются только создаваемому.

        Факт простого копирования в какой-то каталог не означает что пользователь хочет его расшарить, утилита копирования не телепат, надо явно сказать какие права ставить, например используя утилиту install вместо cp, ну или связку cp file1 file2 && chmod 664 file2

        • Автоматическое присвоение прав пользователей на копируемые ф..., !*! Karapuzz, 02:37 , 12-Мрт-09 (7)
          >Факт простого копирования в какой-то каталог не означает что пользователь хочет его
          >расшарить, утилита копирования не телепат, надо явно сказать какие права ставить,
          >например используя утилиту install вместо cp, ну или связку cp file1
          >file2 && chmod 664 file2

          А разве setfacl -m default не является явным указанием прав? Тем более копируемому каталогу присваиваются нужные мне права автоматом, не работает именно с файлами. Такое поведение мне не понятно. Возможно такая политика связана с безопасностью, кто знает что там за файл, но это лишь мои догадки.


          • Автоматическое присвоение прав пользователей на копируемые ф..., !*! vic, 12:34 , 12-Мрт-09 (8)

            >А разве setfacl -m default не является явным указанием прав? Тем более
            >копируемому каталогу присваиваются нужные мне права автоматом, не работает именно с
            >файлами. Такое поведение мне не понятно. Возможно такая политика связана с
            >безопасностью, кто знает что там за файл, но это лишь мои
            >догадки.

            логи действий в студию:
            атрибуты и acl копируемого каталога, атрибуты и acl целевого каталога, umask, команда копирования, ls -l и getfacl на все до и после.

            • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 14:08 , 12-Мрт-09 (9)
              >логи действий в студию:
              >атрибуты и acl копируемого каталога, атрибуты и acl целевого каталога, umask, команда
              >копирования, ls -l и getfacl на все до и после.

              ok, поехпли. Создаю каталог ~/1
              ls -l
              >drwxr-xr-x    2 jura users       4096 Мар 12 19:57 1

              getfacl 1
              ># file: 1
              ># owner: jura
              ># group: users
              >user::rwx
              >group::r-x
              >other::r-x

              umask
              >0022

              Далее присваиваю права
              >chmod g+rwx 1
              >setfacl -m default:group::rwx 1
              >setfacl -m default:mask:rwx 1

              Смотрим что получилось
              getfacl 1
              >group::rwx
              >other::r-x
              >default:user::rwx
              >default:group::rwx
              >default:mask::rwx
              >default:other::r-x

              umask
              >0022

              ls -l
              >drwxrwxr-x+   2 jura users       4096 Мар 12 20:11 1

              Теперь копируем файл и каталог. Так как это десктоп и пользуюсь не только я, но и жена, то копирование делается средствами DE, точнее kde.
              Копируем каталог folder в каталог 1 и смотрим что получилось.
              getfacl folder
              >group::rwx
              >group:users:rwx
              >mask::rwx
              >other::r-x
              >default:user::rwx
              >default:group::rwx
              >default:mask::rwx
              >default:other::r-x

              ls -l
              >drwxrwxr-x+ 2 jura users 4096 Мар 12 20:22 folder

              Если копировать cp -r folder ~/1, то
              getfacl folder
              >user::rwx
              >group::rwx                      #effective:r-x
              >mask::r-x
              >other::r-x
              >default:user::rwx
              >default:group::rwx
              >default:mask::rwx
              >default:other::r-x

              ls -l
              >drwxr-xr-x+ 2 jura users 4096 Мар 12 20:55 folder

              umask для folder в обоих случаях дает 0022


              Копируем файл cp file ~/1 или при помощи DE, не важно, результат один
              getfacl file
              ># file: file
              ># owner: jura
              ># group: users
              >user::rw-
              >group::rwx                      #effective:r--
              >mask::r--
              >other::r--

              umask
              >0022

              ls -l
              >-rw-r--r--+ 1 jura users    2 Мар 12 20:52 file

              • Автоматическое присвоение прав пользователей на копируемые ф..., !*! vic, 14:26 , 12-Мрт-09 (10)
                а теперь ls -l и getfacl еще и для исходного folder, плз, а то только результат привели, но не исходные атрибуты.
                • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 14:47 , 12-Мрт-09 (11)
                  >а теперь ls -l и getfacl еще и для исходного folder, плз,
                  >а то только результат привели, но не исходные атрибуты.

                  Да, прошу прощения.
                  ls -l
                  >drwxr-xr-x 2 jura users 4096 Мар 12 21:36 folder

                  getfacl folder
                  ># file: folder
                  ># owner: jura
                  ># group: users
                  >user::rwx
                  >group::r-x
                  >other::r-x

                  umask
                  >0022

                  И для исходного file
                  ls -l
                  >-rw-r--r-- 1 jura users    2 Мар 12 21:40 file

                  getfacl file
                  ># file: file
                  ># owner: jura
                  ># group: users
                  >user::rw-
                  >group::r--
                  >other::r--

                  • Автоматическое присвоение прав пользователей на копируемые ф..., !*! vic, 17:35 , 12-Мрт-09 (12)
                    ок, убедились в исходных атрибутах.

                    теперь сравним результат копирования для каталога с помощью DE и с помощью cp:
                    DE:
                    >ls -l
                    >drwxrwxr-x+ 2 jura users 4096 Мар 12 20:22 folder

                    cp:
                    >ls -l
                    >drwxr-xr-x+ 2 jura users 4096 Мар 12 20:55 folder

                    DE в отличии от cp действует как-то своеобразно, не устанавливая атрибуты исходного каталога для скопированного, да-да, это не автоматика, а такая работа кода DE. Поэтому мы видим w для группы. Видимо программисты DE что-то делают не так.

                    теперь сравним acl атрибуты:
                    DE добавляет новую запись group:users:rwx к скопированному каталогу, а его просили?
                    cp этого не делает, и getfacl дает коммент #effective:r-x, т.е. с учетом маски эффективный режим доступа r-x. Что логично, т.к. открывать доступ к объекту следует явно во избежание неожиданностей.

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

                    ЗЫ Представьте себе ситуацию в которой файл дважды скопирован (через некий каталог с "автоматическим" изменением атрибутов). Каково будет удивление владельца файла если права rw-r--r-- превратятся волшебным образом в rw-rw-rw- после копирования? Поэтому политика такова что целевой файл должен получать атрибуты исходного (если явно не сказано иное), или более урезанные согласно маске.

                    • Автоматическое присвоение прав пользователей на копируемые ф..., !*! Karapuzz, 06:43 , 13-Мрт-09 (13)
                      Спасибо Вам за пояснения, теперь стало понятней. Но как же мне быть? Выносить общее для обоих пользователей на fat, а как же dvd исошки более 4 ГГб? Сказать жене "копируй фотографии с фотоаппарата вот этой командой а не удобной digikam", тоже не выход. Дать крону задачу, чтоб делал периодически find folder -type -f -exec chmod g+rw {} \; вообще изврат. Больше пока ни чего не придумал :)

                      • Автоматическое присвоение прав пользователей на копируемые ф..., !*! vic, 12:12 , 13-Мрт-09 (14)
                        >Спасибо Вам за пояснения, теперь стало понятней. Но как же мне быть?
                        >Выносить общее для обоих пользователей на fat, а как же dvd
                        >исошки более 4 ГГб? Сказать жене "копируй фотографии с фотоаппарата вот
                        >этой командой а не удобной digikam", тоже не выход. Дать крону
                        >задачу, чтоб делал периодически find folder -type -f -exec chmod g+rw
                        >{} \; вообще изврат. Больше пока ни чего не придумал :)
                        >

                        а как монтируется фляшка? какая маска у digikam? могет поправить там, чтобы файлы сразу rw-rw-r-- были?

  • Автоматическое присвоение прав пользователей на копируемые ф..., !*! pavel, 11:22 , 14-Авг-09 (15)
    >файлами.
    >Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.

    Я поборол проблему так: Перед тем, как что либо сделать, в самом начале скрипта я объявляю umask 002, дальше уже работаю.
    umask действует только в рамках сессии.

    Или Вы про другое?

    • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuz, 14:26 , 14-Авг-09 (16)
      >>файлами.
      >>Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
      >
      >Я поборол проблему так: Перед тем, как что либо сделать, в самом
      >начале скрипта я объявляю umask 002, дальше уже работаю.
      >umask действует только в рамках сессии.
      >
      >Или Вы про другое?

      Да, про другое. Попробуйте скопировать файл с диска в каталог с umask 002. Права у файла останутся r--r--r--


      • Автоматическое присвоение прав пользователей на копируемые ф..., !*! pavel, 17:23 , 14-Авг-09 (17)
        >[оверквотинг удален]
        >>>Пробывал umask 002, не помагает. Пробывал chmod -R g+s, тоже не помагает.
        >>
        >>Я поборол проблему так: Перед тем, как что либо сделать, в самом
        >>начале скрипта я объявляю umask 002, дальше уже работаю.
        >>umask действует только в рамках сессии.
        >>
        >>Или Вы про другое?
        >
        >Да, про другое. Попробуйте скопировать файл с диска в каталог с umask
        >002. Права у файла останутся r--r--r--

        # cp /etc/motd .
        # getfacl motd
        #file:motd
        #owner:0
        #group:80
        user::rw-
        user:appdata:rwx                # effective: r--
        group::rwx              # effective: r--
        group:appdata:rwx               # effective: r--
        mask::r--
        other::r--

        Так не работает... А вот так:

        # rm motd
        # cat /etc/motd | cat > motd
        # getfacl motd
        #file:motd
        #owner:0
        #group:80
        user::rw-
        user:appdata:rwx                # effective: rw-
        group::rwx              # effective: rw-
        group:appdata:rwx               # effective: rw-
        mask::rw-
        other::r--

        Работает.
        Самое интересное, что даже через скрипт

        # cat vv.sh
        #!/usr/local/bin/bash

        umask 002
        cp /etc/motd .

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

  • Автоматическое присвоение прав пользователей на копируемые ф..., !*! anonymous, 14:44 , 15-Авг-09 (19)
    2 пользователя test1 и test2 находятся в приватных группах и дополнительно в группе sharer. umask 002. Создан каталог test, в котором предполагается хранить общие файлы.
    Вид /home (немного подредактированный) с правами

    drwsrwsr-x  3 root  sharer  4096 2009-08-15 14:29 test
    drwx------ 24 test1 test1   4096 2009-08-15 14:34 test1
    drwx------ 22 test2 test2   4096 2009-08-15 14:24 test2

    Результат тестирования (копирование и создание каталогов - gnome и kde3)
    [root@seed ~]# ls -laR /home/test
    /home/test:
    total 24
    drwsrwsr-x 3 root  sharer 4096 2009-08-15 14:29 .
    drwxr-xr-x 8 root  root   4096 2009-08-15 14:03 ..
    -rw-rw-r-- 1 test1 sharer 3177 2009-08-15 14:06 2009-08-15-Note-14-06.xoj
    -rw-rw-r-- 1 test2 sharer 3948 2009-08-15 14:23 2009-08-15-Note-14-23.xoj
    drwxrwsr-x 2 test1 sharer 4096 2009-08-15 14:28 created by test1
    -rw------- 1 test1 sharer 3177 2009-08-15 14:06 xxx.xoj

    /home/test/created by test1:
    total 12
    drwxrwsr-x 2 test1 sharer 4096 2009-08-15 14:28 .
    drwsrwsr-x 3 root  sharer 4096 2009-08-15 14:29 ..
    -rw-rw-r-- 1 test1 sharer  239 2009-08-15 14:05 preferred-mail-reader.desktop

    Файл xxx.xoj специально был создан с правами 600 и затем скопирован в test

    Такой вариант устраивает?

    • Автоматическое присвоение прав пользователей на копируемые ф..., !*! anonymous, 14:46 , 15-Авг-09 (20)
      PS: это все в linux, как другие ОС интерпретируют sgid я не знаю
    • Автоматическое присвоение прав пользователей на копируемые ф..., !*! karapuzz, 16:25 , 31-Авг-09 (21)
      Чего-то не пойму. Я конечно сделал немного проще, ибо для тестов не было желания создавать приватные группы, в общем вот:
      Есть два пользователя, оба члены группы users и группы video.

      1. Делаю #umask 002.
      2. Создаю каталог 1, его права rwxrwxr-w ибо umask 002
      3. sudo chown root:video 1
      4. sudo chmod a+s 1
      5. ls -l
      drwsrwsr-x  2 root video 4096 Авг 31 23:08 1
      6. touch 123 /В другом каталоге.
      7. ls -l
      -rw-rw-r--  1 jura users    0 Авг 31 23:11 123 /группа rw потому как umask 002
      8. chmod g-w 123 && ls -l
      -rw-r--r--  1 jura users    0 Авг 31 23:11 123
      9. cp 123 ~/Desktop/1
      10. cd ~/Desktop/1 && ls -l
      -rw-r--r-- 1 jura video 0 Авг 31 23:14 123

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

      • Автоматическое присвоение прав пользователей на копируемые ф..., !*! anonymous, 11:50 , 01-Сен-09 (22)
        Вроде как изначально была проблема организации совместного доступа. Она решается постановкой sgid на каталог, владельцем которого является общая для пользователей группа. Естественно, что это работает только если umask=002.
        Если пользователь не хочет, чтбы файл был доступен и намеренно удаляет права для группы, то никто помешать ему это сделать не сможет.

        PS: искренне считал, что приватные группы (а следовательно и umask=002) уже давно везде




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру