Schritte zum Reproduzieren:
germar@host:~$ cd /tmp/
germar@host:/tmp$ touch test && chmod u+s test && ls -la test
-rwSr--r-- 1 germar germar 0 Nov 2 20:11 test
germar@host:/tmp$ chown germar:germar test && ls -la test
-rw-r--r-- 1 germar germar 0 Nov 2 20:11 test
Getestet mit Debian Squeeze und Ubuntu 12.04
permissions
users
chown
Germar
quelle
quelle
Antworten:
Kein Fehler gemäß der Chown-Dokumentation:
$
info coreutils 'chown invocation'
quelle
info coreutils
vorher nicht. Ich habe nur die Manpage gelesen und im Web gesucht.Dies ist beabsichtigt und das Standardverhalten. Zitieren des POSIX-Standards :
(
s
Ist setuid (oder setgid in der Gruppenspalte), übrigens nicht klebrig.)Dieses Verhalten folgt dem des zugrunde liegenden Systemaufrufs (mit der Ausnahme, dass auf einigen Systemen die setxid-Bits nur für ausführbare Dateien gelöscht werden).
Der Grund für das Entfernen des setuid-Bits besteht darin, dass durch das Ändern des Besitzers auch geändert wird, welcher Benutzer die effektive Benutzer-ID des Prozesses ist. Insbesondere auf Systemen, auf denen ein Benutzer eine Datei verschenken kann,
cp /bin/sh foo; chmod u+s foo; chown joe foo
würde eine Setuid-Programmdatei von Joe erstellt, eine riesige Sicherheitslücke.quelle