Не работает правило ACL на запись

Изучаю ACL, соответственно создал файл в определённом каталоге и стал экспериментировать с правилами с помощью setfacl. Заметил такую вещь, что если пользователь (допустим user1) не владелец файла и не root, то даже если ему выдали соответствующие права на запись через setfacl, то user1 данный файл всё равно редактировать не сможет.

Далее продемонстрирую это.

  1. Создаю файла file в директории /tmp и проверяю права на файл file и каталог /tmp и для чистоты эксперимента удаляю права на чтение этого файла всем кроме владельца:

    jonni@Debian:/tmp$
    /tmp
    jonni@Debian:/tmp$ touch file
    jonni@Debian:/tmp$ chmod go-r file
    jonni@Debian:/tmp$ getfacl file
    # file: file
    # owner: jonni
    # group: jonni
    user::rw-
    group::---
    other::---
    
    jonni@Debian:/tmp$ getfacl /tmp
    getfacl: Removing leading '/' from absolute path names
    # file: tmp
    # owner: root
    # group: root
    # flags: --t
    user::rwx
    group::rwx
    other::rwx
    
  2. Далее для пользователя user1 (пользователь user1 состоит только в группе user1, которая создалась по умолчанию при создании данного пользователя с помощью утилиты useradd) пропишу права read, write, execute на файл file:

    jonni@Debian:/tmp$ setfacl -m u:user1:rwx file
    jonni@Debian:/tmp$ getfacl file
    # file: file
    # owner: jonni
    # group: jonni
    user::rw-
    user:user1:rwx
    group::---
    mask::rwx
    other::---
    
  3. Проверим, что владелец файл может совершать операции read, write, но не execute:

    jonni@Debian:/tmp$ echo "echo inform">>file
    jonni@Debian:/tmp$ cat file
    echo inform
    jonni@Debian:/tmp$ ./file
    -bash: ./file: Permission denied
    

    Всё, как и следовало ожидать, работает корректно.

  4. А вот в случае user1 начинаются проблемы. Проверим, что все операции выполняются корректно:

    jonni@Debian:/tmp$ su user1
    Password: 
    user1@Debian:/tmp$ cat file
    echo inform
    user1@Debian:/tmp$ ./file
    inform
    user1@Debian:/tmp$ echo text>>file
    bash: file: Permission denied
    

В данном случае все операции, кроме write выполнились корректно. Ума не приложу почему нет возможности редактировать файл за пользователя user1. Прошу подсказать по этому вопросу. Спасибо.


Ответы (0 шт):