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