Wanted: System call fuer chattr(1)

Alexander Reelsen ar at rhwd.net
Sat Jul 22 19:33:46 CEST 2000


Moin

Ich suche gerade einen system call in C fuer chattr (attribute fuer files
im ext2 aendern).

Was mich irgendwie wundert ist folgendes:
root at joker:/tmp/test# touch foo
root at joker:/tmp/test# strace -o set chattr +i foo
root at joker:/tmp/test# strace -o unset chattr -i foo
root at joker:/tmp/test# diff -u set unset
--- set Sat Jul 22 19:25:39 2000
+++ unset       Sat Jul 22 19:25:48 2000
@@ -1,4 +1,4 @@
-execve("/usr/bin/chattr", ["chattr", "+i", "foo"], [/* 20 vars */]) = 0
+execve("/usr/bin/chattr", ["chattr", "-i", "foo"], [/* 20 vars */]) = 0
 brk(0)                                  = 0x804a748
 open("/etc/ld.so.preload", O_RDONLY)    = 4
 fstat(4, {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
@@ -55,7 +55,7 @@
 close(4)                                = 0
 munmap(0x12a000, 27736)                 = 0
 personality(PER_LINUX)                  = 0
-getpid()                                = 551
+getpid()                                = 553
 lstat("foo", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
 open("foo", O_RDONLY|O_NONBLOCK)        = 4
 ioctl(4, EXT2_IOC_GETFLAGS, 0xbffffb08) = 0

Der strace zeigt, dass die aktionen genau gleich waren, mit ausnahme des
execve() calls und von getpid(). Wie also wird da etwas veraendert?

root at joker:/tmp/test# grep ioctl set unset
set:ioctl(4, EXT2_IOC_GETFLAGS, 0xbffffb08) = 0
set:ioctl(4, EXT2_IOC_SETFLAGS, 0xbffffb08) = 0
unset:ioctl(4, EXT2_IOC_GETFLAGS, 0xbffffb08) = 0
unset:ioctl(4, EXT2_IOC_SETFLAGS, 0xbffffb08) = 0

Ich hab so im gefuehl, mit diesen io control calls hat es was zu tun, aber
die beiden sind genau gleich, und da wird dennoch was veraendert. Das ist
mir irgendwie unklar...

Ich werde jetzt gleich den source von lsattr/chattr mal naeher unter die
lupe nehmen.


MfG/Regards, Alexander

-- 
Alexander Reelsen   http://joker.rhwd.de
ref at linux.com       GnuPG: pub 1024D/F0D7313C  sub 2048g/6AA2EDDB
ar at rhwd.net         7D44 F4E3 1993 FDDF 552E  7C88 EE9C CBD1 F0D7 313C
Securing Debian:    http://joker.rhwd.de/doc/Securing-Debian-HOWTO

-
Hinweise zur Benutzung dieser (und anderer Mailing-Listen) bitte beachten:
--> http://lug-owl.de/mailinglist_hints.html <--



More information about the Linux mailing list