... und wie kann ich sie einstellen? Funktioniert das für Verzeichnisse genauso? Was passiert mit Sticky Bit und diesem "exotischeren" Zeug?
Antwort1
Wie vorgeschlagen von@Gustave, das stat
Programm (das Teil ist vonGNU-Kerndienstprogrammeund im Wesentlichen ein "Linux"-Programm aus diesem Grund, obwohl Sie vielleicht eineHafenoderPaketin BSD-Systemen) kann dies tun. Der Befehl
stat -c "%a %n"
Datei
erzeugt eine formatierte Liste mit nur dem Oktalmodus (einschließlich der codierten Setuid-, Setgid- und Sticky-Bits) und dem Dateinamen. Laut der Dokumentation
%a
ist die "Zugriffsrechte in Oktal"%n
ist der "Dateiname"
Nehmen wir zum Beispiel dieses Skript:
#!/bin/sh
for name in $*
do
ls -ld "$name"
stat -c '%a %n' "$name"
done
Sie erhalten möglicherweise eine Ausgabe wie diese myscript /usr/bin /usr/bin/X /usr/bin/bsd-write
:
drwxr-xr-x 5 root root 118784 Jul 11 19:55 /usr/bin
755 /usr/bin
-rwsr-sr-x 1 root root 9232 Dec 16 2011 /usr/bin/X
6755 /usr/bin/X
-rwxr-sr-x 1 root tty 11000 Jun 17 2010 /usr/bin/bsd-write
2755 /usr/bin/bsd-write
Sie erhalten 3 oder 4 Oktalziffern für dieZugangsrechte, je nachdem, ob die Setuid usw. gesetzt sind. Die führende (vierte) Ziffer kombiniert
- 4 (Setuid)
- 2 (Gruppenkennung festlegen)
- 1 (klebrig)
DerZugangsrechtezurückgegeben ohne die zusätzlichen Bits, die vom Systemaufruf zurückgegeben werdenstat
die angeben, ob der Name ein Verzeichnis ( S_IFDIR
) oder eine Datei ( S_IFREG
) ist. Alle diese Bits passen übrigens in einen 16-Bit-Wert, da es in den 1970er und frühen 1980er Jahren Unix-Implementierungen gab – undStandardwerte. Weil dasZugangsrechteden Dateityp ausschließen, können Sie diesen Wert unverändert im chmod
Befehl verwenden (und auch diechmod
Funktion), weil es oktal ist, und diechmod
Befehl erwartet das. Sogar die setuid usw. funktionieren mit Oktal, obwohl Dinge wie
chmod u+s /usr/bin/whatever
sind besser lesbar.
Zum Weiterlesen
Antwort2
stat -c "%a %n" <file>
scheint zu funktionieren - aber mehr weiß ich nicht.
Antwort3
Bekommen: wie Gustave geantwortet hat.
Einstellung:
chmod 0755 myfile
Dasselbe gilt für Verzeichnisse. Beim Sticky Bit sollte die erste Ziffer 1 sein. Zum Sticky Bit:https://askubuntu.com/a/432703