So erstellen Sie ein Verzeichnis mit permanenten Berechtigungen, das vom Standard abweicht

7

Ich habe systemweite Standardberechtigungen festgelegt mit umask 027. Ich muss ein Verzeichnis erstellen, dessen Unterverzeichnisse eine Berechtigung von 775 benötigen und dessen Dateien 664 Berechtigungen benötigen, und diese Berechtigungen nach dem Booten des Systems dauerhaft machen.

Ich suche nach den besten Optionen, ohne die Sicherheit zu beeinträchtigen. Irgendwelche Ideen?

Lassen Sie mich die Situation erklären: Ich habe eine Standardberechtigung von 027 (systemweit) und möchte, dass Apache2 in ein Verzeichnis (das Verzeichnis) schreibt, das 022 sein sollte, damit andere Benutzer (sagen wir ... einen anderen Daemon wie z Flash Media Server zum Streamen eines Videos), um darauf zuzugreifen und es auszuführen. ¿Irgendwelche guten Ideen? (FMS sollte in der Lage sein, Videos aus neuen Verzeichnissen von apache2 auszuführen).

Vielen Dank.

Einige Untersuchungen durchgeführt:

  1. sudo chfn -o "umask=002" daemon_username
  2. Bash-Skript, das beim Booten mit umask 022dem gewünschten Verzeichnis ausgeführt wird
  3. hinzufügen /etc/fstab(besonders vorsichtig mit Zeile 2 in Bezug auf das Binden) [GEPRÜFT und NICHT ARBEITEND]:

    IP_NFS_Volume:/nfs_mount  /local_tempmount  nfs   tcp,nolock,intr,rsize=8192,wsize=8192
    /local_tempmount          /desired_mount    none  bind,dmask=0002,fmask=0002
    

PS Ich suche einen Konsolenbefehl, ein Skript (sogar einen periodischen Befehl, der von cron ausgeführt wird), aber etwas, das ohne X11 ausgeführt wird.

Cormite
quelle
Warum kann sich Ihrer Meinung nach die Berechtigung von Dateien / Verzeichnissen nach dem Neustart ändern?
Enzotib
Enzotib, tatsächlich werden sie sich nicht ändern. Lassen Sie mich die Situation erklären. Angenommen, ich habe eine Standardberechtigung von 027 (systemweit) und möchte, dass Apache2 in ein Verzeichnis (das Verzeichnis) schreibt, das 022 sein sollte, damit andere Benutzer (sagen wir ... einen anderen Daemon wie Flash Media Server) ein Video streamen), um darauf zuzugreifen und es auszuführen. ¿Irgendwelche guten Ideen? (FMS sollte in der Lage sein, Videos aus neuen Verzeichnissen von apache2 auszuführen).
Cormite
Im ursprünglichen Beitrag wurde weder NFS noch ein anderes spezielles Dateisystem erwähnt. Meine Antwort bezog sich auf lokale Dateisysteme, die acl unterstützen, wie ext4.
Enzotib
HINWEIS: Wenn Sie ein sicheres (oder gehärtetes) Webhosting erstellen und eine sichere Dateifreigabe benötigen, sollten Sie chroot verwenden . Es wurde genau zu diesem Zweck entwickelt. Siehe: Wie man Ubuntu + 1 chroot? askubuntu.com/questions/56687/how-to-chroot-ubuntu1
david6
@enzotib, du bist richtig. Entschuldigung für das Missverständnis. ACL ist jedoch nicht das, wonach ich suche, und dennoch wird Ihre Erklärung (obwohl sie gut und ausreichend ist) für ein X11-System mit Nautilus gegeben. Ich suche nach einer schrittweisen (oder zumindest sehr klaren) Lösung über die Befehlszeile. Vielen Dank für Ihre Antwort und nochmals Entschuldigung für das Missverständnis.
Cormite

Antworten:

8

Sie können versuchen, POSIX ACL (Zugriffssteuerungslisten) zu verwenden, mit denen Ad-hoc-Berechtigungen für zusätzliche Benutzer und Gruppen (außer Eigentümerbenutzer und Eigentümergruppe) festgelegt und Standardberechtigungen für neue Objekte festgelegt werden können, die in einem Verzeichnis erstellt wurden.

Zu diesem Zweck können Sie mindestens zwei Alternativen verwenden:

  1. das Paket aclfür die Kommandozeilen - Tools ( getfacl, setfacl, chacl),

  2. das Paket eiciel, das sowohl eine GUI-Schnittstelle bietet

    Geben Sie hier die Bildbeschreibung ein

    und die Möglichkeit, die ACL direkt in Nautilus zu ändern (Rechtsklick auf ein Objekt, dann Eigenschaften , dann Registerkarte Zugriffssteuerungsliste ).

    Geben Sie hier die Bildbeschreibung ein

    Bietet auch einige kurze, aber aussagekräftige Hilfeseiten.

Enzotib
quelle
Das könnte helfen. Ich führe den Server nicht mit X11 aus, daher würde die Verwendung von Nautilus oder einem anderen GUI-Dateimanager nicht helfen. Tatsächlich konnte ich X11 nicht einmal durch den SSH-Tunnel weiterleiten, da dies nicht zulässig ist. Ich denke, ACL könnte eine Antwort sein, obwohl dies der einzige Fall ist, den ich im gesamten System wirklich brauchen würde. Denken Sie nicht, dass es eine einfachere Lösung geben sollte? Vielen Dank für Ihre großartige Unterstützung.
Cormite
1
@ CarlosFernándezSanMillán: Die Kommandozeilen-Tools sind also der richtige Weg. Ich denke ist die sauberere Lösung, nur scheinbar schwierig.
Enzotib
Es ist der Reiniger ... Sie haben Recht. Wieder haben Sie Recht mit der Schwierigkeit;)
Cormite