Berechtigungen für Dateien:


9

Ich möchte einem Verzeichnis 755 Berechtigungen erteilen, daher verwende ich:

# chmod -R 755 /my/folder/

Es funktioniert für alle Dateien in meinem Ordner, aber das Problem ist, dass ich Skripte verwende, die neue Dateien in diesem Ordner erstellen, und standardmäßig sind die Berechtigungen 600.

Wie könnte ich diesen "zukünftigen" Dateien 755 Berechtigungen auferlegen?

--BEARBEITEN--

Ich verwende ein Skript, das mir Informationen zum Netzwerkverkehr auf meinem Campus gibt. Ich habe alle 10 Minuten eine neue Datei in einem Ordner namens "Reise", der sich im Monatsordner wie folgt befindet:

ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root   85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root   54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root   33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root   48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root   36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root   37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root   38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root   38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root   26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root   31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root   23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root   32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root   30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root   31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root   25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root   26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root   23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root   23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root   21854 avril 27 03:10 zzaccounting.dmp-03-00

Hier habe ich die Berechtigungen von Hand geändert, aber wenn die Datei neu angezeigt wird, habe ich Folgendes:

-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40

Die Sache ist, dass für jeden Ordner und jede Datei unter / home / netmet / secure / standardmäßig eine 755-Berechtigung gewünscht wird.

Ich habe das schon gemacht:

chmod -R g+s /home/netmet/secure   
setfacl -d -m g::rwx /home/netmet/secure   
setfacl -d -m o::rx /home/netmet/secure   

3
ACL ist die Antwort. Dies wurde bereits zuvor diskutiert .
d3ag0s

8
ACL ist die Antwort zum Überschreiben des umaskProgramms, jedoch nicht zum Überschreiben eines Programms, das Dateien mit dem beabsichtigten Modus erstellt 0600. Sehen Sie hier einige Referenzen.
Ilkkachu

1
Und noch ein Detail: Standardmäßig können Sie keine umaskDateien zum Ausführen von Ausführungsbits hinzufügen. Dies muss von Hand erfolgen
Romeo Ninov

Umask funktioniert nicht Jungs
Klaypez

Können Sie das Skript bearbeiten, mit dem Sie die Dateien erstellen? Wie gelangen die Dateien in das endgültige Verzeichnis (z. B. 2017-04-27) und wie werden die Verzeichnisse überhaupt erstellt? Bitte aktualisieren Sie die Frage mit diesen Details.
Tigger

Antworten:


1

Versuchen Sie, umaskin Ihrem Ordner auszuführen . Wenn etwas anderes als '0022' zurückgegeben wird, ist dies Ihr Problem. In Ihrem Fall sollte zunächst '0177' ausgegeben werden. Das Berechtigungssystem beim Erstellen eines Verzeichnisses wird grundsätzlich berechnet: default - umask0777 ist der Standardmodus für Verzeichnisse und 0666 für normale Dateien, aber es gibt verschiedene Aufgaben, wenn ich diese Dinge richtig verstehe. Versuchen Sie auszuführen umask a=rx,uu+w.

BEARBEITEN: Sie können umask verwenden, um dem Verzeichnis ein Ausführungsbit zu geben, damit es darin cd kann, aber nicht in Dateien. Diese müssen aus Sicherheitsgründen manuell ausgeführt werden. Fügen Sie einfach chmod +x <file>zu Ihrem Skript hinzu. Das Ausführen eines in der Datei gesetzten Flags hat keine Auswirkung.


1
Der umaskShell-Befehl hängt nicht vom Pfad ab, sondern nur vom Benutzer, der ihn ausführt. Jeder Benutzer hat einen bestimmten umask-Wert, der bei der Anmeldung definiert wird und der später geändert werden kann. Dies definiert, wie neue Dateiberechtigungen erstellt werden.
Patrick Mevzek

Das sollte chmod a=rx,u+win Ihrer Antwort stehen.
Patrick Mevzek

1

Ich vermute, Sie führen die Skripte aus, die die Dateien in einer Umgebung generieren, in der umask auf 0077 gesetzt ist. Dies verhindert, dass das generierende Programm Berechtigungsbits in den Berechtigungsbits 'group' und 'other' setzt.

Beachten Sie, dass die Umask Teil der geerbten Umgebung eines Prozesses ist und normalerweise bei der Anmeldung aus einem Standardprofil festgelegt wird. Jeder Prozess (Shell) kann mit dem Befehl 'umask' die eigene (nachfolgende) umask seiner eigenen und nachkommenden Kinder ändern.

Die Bits in der aktuellen Umask verhindern die Erstellung von Dateien, deren Bits in ihren Berechtigungen festgelegt sind (daher eine "Maske", die die resultierenden Berechtigungsbits maskiert).


0

Hinweis : Dies ist nicht ideal und sollte als vorübergehende Problemumgehung betrachtet werden

Sie können einen Cron-Job erstellen, der den Befehl chmod alle 5 Minuten oder nach Wunsch ausführt.

Es gibt auch inotify

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.