Ich habe ein Problem: Ich muss die Berechtigung des Symlinks von 777 auf 755 ändern und habe keine Ahnung, wie ich das machen soll. Ich habe versucht, den chmod
Befehl zu verwenden, aber er funktioniert nicht. ich möchte
lrwxrwxrwx 1 frosu 2016_cluj 5 Jul 4 13:53 test6 -> test0
zu
lrwxr-xr-x 1 frosu 2016_cluj 5 Jul 4 13:53 test6 -> test0
permissions
symlink
JohnnyOnPc
quelle
quelle
Antworten:
Einige Systeme unterstützen das Ändern der Berechtigung einer symbolischen Verknüpfung, andere nicht.
-h
)Da sich die Funktion unterscheidet, erwähnt POSIX die Möglichkeit nicht.
Aus Kommentaren geht hervor, dass eine kürzlich vorgenommene Änderung der GNU-Coreutils die
-h
Option bietet . Im Moment erscheint das nicht im Quellcode für chmod :und
long_options
hat dies:Berechtigungen werden mit festgelegt
chmod
. Das Eigentum ist festgelegt mitchown
. GNU-Coreutils (wie BSD) unterstützen die Möglichkeit, den Besitz eines symbolischen Links zu ändern. Dies ist eine andere Funktion, da der Besitz eines symbolischen Links davon abhängt, ob der Inhalt des Links geändert werden kann (und auf ein anderes Ziel verwiesen werden kann). Dies begann wiederum als BSD-Funktion (OSX, FreeBSD usw.), die auch unter Linux (und Solaris usw.) unterstützt wird. POSIX sagt über diese Funktion :Soviel zu den Befehlszeilentools (und Shell-Skripten). Sie können jedoch Ihr eigenes Dienstprogramm schreiben , indem Sie eine Funktion von POSIX verwenden, die in der Diskussion des
chmod
Dienstprogramms nicht erwähnt wird :Die letztere Funktion fügt einen Flag- Parameter hinzu, der folgendermaßen beschrieben wird:
Das heißt, der Zweck von
fchmodat
besteht darin, die Funktion bereitzustellen, nach der Sie gefragt haben. Das Befehlszeilenprogrammchmod
wird jedoch (bisher) nur in Bezug aufchmod
(ohne diese Funktion) dokumentiert .fchmodat
Übrigens scheint es sich um eine schlecht dokumentierte Funktion von Solaris zu handeln, die vor zehn Jahren von den Red Hat- und GNU-Entwicklern übernommen und von ihnen zur Standardisierung vorgeschlagen wurde:Nach dem Linux-Programmierschnittstelle , da 2.6.16, Linux unterstützt
AT_SYMLINK_NOFOLLOW
in diesen Anrufen:faccessat
,fchownat
,fstatat
,utimensat
, undlinkat
wurde in 2.6.18 (beide eher "alte": implemented 2006 nach OSNews ).Ob die Funktion für Sie nützlich ist oder nicht, hängt von den von Ihnen verwendeten Systemen ab.
quelle
Die Berechtigung für Symlinks wird nicht ausgewertet.
Früher gab es keine Möglichkeit, die Berechtigungsbits für Symlinks zu ändern.
Seit einiger Zeit können POSIX
fchmodat()
und alle Plattformen, die diesen Aufruf unterstützen, die Berechtigungsbits für Symlinks ändern.Erwarten Sie jedoch keine Auswirkungen auf den Symlink.
quelle