Portál AbcLinuxu, 6. května 2025 16:43
[pc@pepa pokusy]$ pwd /usr/local/moje/pokusy [pc@pepa pokusy]$ id uid=501(pepa) gid=501(pepa) groups=501(pepa),10(wheel),2513(domain users),54323(domainUsers) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [pc@pepa pokusy]$ uname -a Linux pc.kepl.local 4.1.12-124.20.3.el6uek.x86_64 #2 SMP Thu Oct 11 17:47:32 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux [pc@pepa pokusy]$ ls -lad readme.htm* . .. drwxrwxrwx. 24 pepa domainUsers 12288 Feb 4 14:54 . drwxrwsr-x. 5 pepa domainUsers 4096 May 13 2017 .. -rwxrwxrwx. 1 pepa domainUsers 1016 Jan 10 18:17 readme.htm [pc@pepa pokusy]$ cp --preserve=all readme.htm readme.html [pc@pepa pokusy]$ ls -lad readme.htm* . .. drwxrwxrwx. 24 pepa domainUsers 12288 Feb 4 14:59 . drwxrwsr-x. 5 pepa domainUsers 4096 May 13 2017 .. -rwxrwxrwx. 1 pepa domainUsers 1016 Jan 10 18:17 readme.htm -rwxrwxrwx. 1 pepa domainUsers 1016 Jan 10 18:17 readme.html [pc@pepa pokusy]$ getfacl readme.htm* . .. # file: readme.htm # owner: pepa # group: domainUsers user::rwx group::rwx other::rwx # file: readme.html # owner: pepa # group: domainUsers user::rwx group::rwx other::rwx # file: . # owner: pepa # group: domainUsers user::rwx group::rwx other::rwx # file: .. # owner: pepa # group: domainUsers # flags: -s- user::rwx group::rwx other::r-x [pc@pepa pokusy]$ lsattr -d readme.htm* . .. -------------e--- readme.htm -------------e--- readme.html ----------I--e--- . -------------e--- .. [pc@pepa pokusy]$ getfattr -d -m "-" readme.htm readme.html . .. # file: readme.htm security.selinux="system_u:object_r:usr_t:s0" user.DOSATTRIB=0sMHgyMAAAAwADAAAAEQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXWFG4IqdQBAAAAAAAAAAA= # file: readme.html security.selinux="system_u:object_r:usr_t:s0" user.DOSATTRIB=0sMHgyMAAAAwADAAAAEQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXWFG4IqdQBAAAAAAAAAAA= # file: . security.selinux="unconfined_u:object_r:usr_t:s0" # file: .. security.selinux="unconfined_u:object_r:usr_t:s0" [pc@pepa pokusy]$ chmod 644 readme.htm readme.html <=== tady měním ta práva, na původním i kopii chmod: changing permissions of `readme.htm': Operation not permitted [pc@pepa pokusy]$ mv readme.htm Readme.htm [pc@pepa pokusy]$ chmod 644 Readme.htm <=== tady měním práva na přejmenovaném chmod: changing permissions of `Readme.htm': Operation not permitted [pc@pepa pokusy]$ chgrp pepa Readme.htm chgrp: changing group of `Readme.htm': Operation not permitted [pc@pepa pokusy]$ ls -lad *eadme.htm* . .. drwxrwxrwx. 24 pepa domainUsers 12288 Feb 4 15:02 . drwxrwsr-x. 5 pepa domainUsers 4096 May 13 2017 .. -rwxrwxrwx. 1 pepa domainUsers 1016 Jan 10 18:17 Readme.htm -rw-r--r--. 1 pepa domainUsers 1016 Jan 10 18:17 readme.html [pc@pepa pokusy]$ fuser -v Readme.htm [pc@pepa pokusy]$ getcap -v *eadme.htm* Readme.htm readme.html
Řešení dotazu:
[pc@pepa pokusy]$ chmod 744 Readme.htm chmod: changing permissions of `Readme.htm': Operation not permitted [pc@pepa pokusy]$ mkdir AAA [pc@pepa pokusy]$ mv Readme.htm AAA/ [pc@pepa pokusy]$ chmod 744 AAA/Readme.htm chmod: changing permissions of `AAA/Readme.htm': Operation not permitted [pc@pepa pokusy]$ mkdir /var/tmp/AAA [pc@pepa pokusy]$ mv AAA/Readme.htm /var/tmp/AAA/ [pc@pepa pokusy]$ chmod 744 /var/tmp/AAA/Readme.htm chmod: changing permissions of `/var/tmp/AAA/Readme.htm': Operation not permittedRelativně specifikovaná práva se chovají stejně:
[pc@pepa pokusy]$ chmod u+w /var/tmp/AAA/Readme.htm chmod: changing permissions of `/var/tmp/AAA/Readme.htm': Operation not permitted [pc@pepa pokusy]$ chmod g+w /var/tmp/AAA/Readme.htm chmod: changing permissions of `/var/tmp/AAA/Readme.htm': Operation not permitted [pc@pepa pokusy]$ chmod o+w /var/tmp/AAA/Readme.htm chmod: changing permissions of `/var/tmp/AAA/Readme.htm': Operation not permitted [pc@pepa pokusy]$ cp --preserve=all /var/tmp/AAA/Readme.htm /var/tmp/AAA/readme.html [pc@pepa pokusy]$ chmod o+w /var/tmp/AAA/readme.htmlPodle toho, že chmod nejde udělat ani když se soubor přesune jinam, to vypadá na nějakou vlasnost přímo těch souborů...ale jakou?
# dumpe2fs -h /dev/sda2 dumpe2fs 1.43-WIP (20-Jun-2013) Filesystem volume name: <none> Last mounted on: / Filesystem UUID: 726e46ce-0882-4874-a2cb-2bf51753c91a Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl ...Připadám si jako totální debil...
Vzpomínám si, že existoval pro samba server nějaký bezpečnostní modul do Linuxu, jehož smyslem bylo dělat antivirus. Poslední dobou antiviry dělají všelicos (ochrana před šifrováním). Třeba někoho napadlo, že onen rozšířený atribut bude interpretovat jako soubor jen pro čtení (ta hodnota DOSATTRIB je podezřele dlouhá) a tak odmítá jakékoliv operace na něm. A třeba ten modul je napsaný špatně a místo jen exportovaných podstromů kontroluje úplně všechno.
$ getfattr -d -e hex -m "-" /var/tmp/AAA/Readme.htm getfattr: Removing leading '/' from absolute path names # file: var/tmp/AAA/Readme.htm security.selinux=0x73797374656d5f753a6f626a6563745f723a7573725f743a733000 user.DOSATTRIB=0x3078323000000300030000001100000020000000000000000000000000000000000000000000000055d6146e08a9d4010000000000000000
[pc@pepa pokusy]$ ls -ladi readme.txt 2234652 -rwxrwxrwx. 1 root domainUsers 2927 May 3 2017 readme.txt [pc@pepa pokusy]$ chmod 644 readme.txt chmod: changing permissions of `readme.txt': Operation not permitted [pc@pepa pokusy]$ sudo chown abra readme.txt [pc@pepa pokusy]$ ls -ladi readme.txt 2234652 -rwxrwxrwx. 1 abra domainUsers 2927 May 3 2017 readme.txt [pc@pepa pokusy]$ chmod 644 readme.txt <==== tohle už projde OKDá se to něčím vysvětlit?
Tohle se dá vysvětlit jednoduše. Uživatel abra nemůže změnit práva souboru readme.txt, protože ten soubor vlastní root.
Obecně bych ještě viděl možnost, že máte v systému více UID se stejným login name. Zkontrolujte si číslo vlastníka pomocí stat.
# grep SECURITY /boot/config-$(uname -r) ++ uname -r + grep SECURITY /boot/config-4.1.12-124.20.3.el6uek.x86_64 CONFIG_IP_NF_SECURITY=m CONFIG_IP6_NF_SECURITY=m CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y CONFIG_JFFS2_FS_SECURITY=y CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_NETWORK_XFRM=y # CONFIG_SECURITY_PATH is not set CONFIG_SECURITY_SECURELEVEL=y CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set # CONFIG_SECURITY_APPARMOR is not set # CONFIG_SECURITY_YAMA is not set CONFIG_DEFAULT_SECURITY_SELINUX=y # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="selinux"a SELinux:
# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: permissive Policy version: 29 Policy from config file: targetedRozbitý chmod - "rpm -V coreutils" (ověření balíčku) nehlásí žádnou chybu. A strace vyzerá taky normálně:
$ strace -o /tmp/chmod-strace.lst chmod o+w /var/tmp/AAA/Readme.htm a výstup: ... umask(0) = 02 stat("/var/tmp/AAA/Readme.htm", {st_mode=S_IFREG|0777, st_size=1016, ...}) = 0 fchmodat(AT_FDCWD, "/var/tmp/AAA/Readme.htm", 0777) = -1 EPERM (Operation not permitted) ... write(2, "chmod: ", 7) = 7 write(2, "changing permissions of `/var/tm"..., 49) = 49 write(2, ": Operation not permitted", 25) = 25 ...Připojit odjinud to nemohu - není to lokální stroj.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.