Bug 16532

Summary: fat fs: пользователь не может поменять права на директорию, хотя разрешено
Product: ALT Linux Lite Reporter: Ivan Zakharyaschev <imz>
Component: bugsAssignee: Anton V. Boyarshinov <boyarsh>
Status: CLOSED NOTABUG QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P2    
Version: 4.0.2   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
test-dir-perms.sh
none
test-dir-perms_rw.sh none

Description Ivan Zakharyaschev 2008-08-02 23:15:19 MSD
Created attachment 2750 [details]
test-dir-perms.sh

4.0.3 --
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.0/Desktop/4.0.3/iso/altlinux-4.0.3-lite-i586-install_ru-cd.iso

Приложенный скрипт создаёт от имени пользователя директорию (она оказывается read-write) и пытается от его же имени сделать её read-only.

На ext3 это получается, на fat только от имени root.

Очень неудобно, если хочется дать пользователям доступ к общим данным на fat-разделе, оказывается, что они без root-а не всегда могут справится (например, если директория read-only, они не могут сами с ней справится).

Вот как выглядит работа тестирующего скрипта на ext3:

# cd /tmp
[root@etik tmp]# mkdir testing-dir-perms-on-ext3
[root@etik tmp]# chmod a+w testing-dir-perms-on-ext3
[root@etik tmp]# cd testing-dir-perms-on-ext3/
[root@etik testing-dir-perms-on-ext3]# ~imz/bugreports/test-dir-perms.sh imz
+ rmdir rw-dir
rmdir: rw-dir: No such file or directory
+ :
+ ls -ld .
drwxrwxrwx 2 root root 40 Aug  2 22:58 .
+ su -c 'mkdir -p rw-dir' imz
+ ls -ld rw-dir
drwxr-xr-x 2 imz imz 40 Aug  2 22:59 rw-dir
+ su -c 'chmod a-w rw-dir' imz
+ ls -ld rw-dir
dr-xr-xr-x 2 imz imz 40 Aug  2 22:59 rw-dir
[root@etik testing-dir-perms-on-ext3]# 

а вот на FAT для пользователя и для root:

[root@etik testing-dir-perms-on-fat]# ~imz/bugreports/test-dir-perms.sh imz
+ rmdir rw-dir
rmdir: rw-dir: No such file or directory
+ :
+ ls -ld .
drwxrwxrwx 2 root root 32768 Aug  2 23:01 .
+ su -c 'mkdir -p rw-dir' imz
+ ls -ld rw-dir
drwxrwxrwx 2 root root 32768 Aug  2 23:01 rw-dir
+ su -c 'chmod a-w rw-dir' imz
+ ls -ld rw-dir
drwxrwxrwx 2 root root 32768 Aug  2 23:01 rw-dir
[root@etik testing-dir-perms-on-fat]# ~imz/bugreports/test-dir-perms.sh root
+ rmdir rw-dir
+ ls -ld .
drwxrwxrwx 2 root root 32768 Aug  2 23:02 .
+ su -c 'mkdir -p rw-dir' root
+ ls -ld rw-dir
drwxrwxrwx 2 root root 32768 Aug  2 23:02 rw-dir
+ su -c 'chmod a-w rw-dir' root
+ ls -ld rw-dir
dr-xr-xr-x 2 root root 32768 Aug  2 23:02 rw-dir
[root@etik testing-dir-perms-on-fat]#
Comment 1 Ivan Zakharyaschev 2008-08-02 23:24:31 MSD
Нет, это, кажется, всё-таки общая логика для всех fs, а не ошибка. FAT ведь была смонтирована так, что владелец всего root; и вот, изменённый тест (делает то же самое, только от имени двух разных пользователей) показывает, что на ext3 так делать тоже нельзя (правда, хотя бы сообщается об ошибке):

[root@etik testing-dir-perms-on-ext3]# ~imz/bugreports/test-dir-perms_rw.sh root imz
+ rmdir rw-dir
+ ls -ld .
drwxrwxrwx 2 root root 40 Aug  2 23:18 .
+ su -c 'mkdir -p rw-dir' root
+ su -c 'chmod a+w rw-dir' root
+ ls -ld rw-dir
drwxrwxrwx 2 root root 40 Aug  2 23:18 rw-dir
+ su -c 'chmod a-w rw-dir' imz
chmod: changing permissions of `rw-dir': Operation not permitted
[root@etik testing-dir-perms-on-ext3]# 
Comment 2 Ivan Zakharyaschev 2008-08-02 23:26:38 MSD
Created attachment 2751 [details]
test-dir-perms_rw.sh

тот изменённый тест.
Comment 3 Ivan Zakharyaschev 2008-08-03 02:32:41 MSD
(In reply to comment #1)

> на ext3 так
> делать тоже нельзя (правда, хотя бы сообщается об ошибке):

На FAT не было ошибки из-за опции quiet -- https://bugzilla.altlinux.org/show_bug.cgi?id=16533 .
Comment 4 Ivan Zakharyaschev 2008-08-03 03:13:46 MSD
(In reply to comment #0)

> Вот как выглядит работа тестирующего скрипта на ext3:
> 
> # cd /tmp
> [root@etik tmp]# mkdir testing-dir-perms-on-ext3

Sorry, это было на tmpfs, но, как можно догадаться, на ext3 всё так же и дела не меняет.