
ich habe in letzter Zeit ein Problem. Ich habe einen Server. Wenn ich einen Unterordner innerhalb eines bestimmten Ordners erstelle, lautet der Name des Ordners: „AFORWARD“. Wenn ich beispielsweise „GG“ innerhalb von „AFORWARD“ erstelle, werden alle Ordner, die ich innerhalb von „AFORWARD“ erstelle, unzugänglich, d. h. ich kann nicht darauf zugreifen. Als ich versuchte, die für das Unterverzeichnis festgelegten Berechtigungen anzuzeigen, sah es so aus, als wäre standardmäßig kein Ausführungsbit enthalten. Wenn ich dies jedoch bei anderen Verzeichnissen mache, erhalte ich die standardmäßig für den Ordner enthaltene Ausführungsbitberechtigung. Also tat ich Folgendes:
ls -l -d ./AFORWARD
Ausgabe:
drwxrwxr-x+ 9 admin admin 4096 Oct 16 01:19 ./AFORWARD
ls -l -d ./AFORWARD/GG
Ausgabe:
drw-rwxr--+ 2 admin admin 4096 Oct 16 01:31 ./AFORWARD/GG
ich denke, mit dem Ordner scheint alles in Ordnung zu sein, aber vielleicht weiß ich es nicht, oder etwas ist schiefgelaufen. Ich weiß, dass es mit einem einfachen chmod-Befehl behoben werden kann, um dem Ordner die erforderlichen Berechtigungen zu erteilen. Das Problem ist jedoch, dass ich die standardmäßig festgelegten Berechtigungen brauche, sobald der Ordner erstellt wurde. Das Problem liegt bei Java. Unser Serverprogramm läuft auf Java. Java erstellt Dateien und Ordner, liest sie und macht viele andere Dinge mit ihnen. Es kann nicht auf die erstellten Ordner zugreifen, da diese standardmäßig nicht über die Ausführungsberechtigung verfügen. Sobald dies nicht mehr möglich ist, schlägt es fehl und der Server stürzt ab.
Antwort1
ACL aus dem Verzeichnis und seinen Unterverzeichnissen entfernt, und das hilft im Wesentlichen.
setfacl -b -R ./AFORWARD