Andy@Arch Ich hab da mal was gebastelt

Wozu?

Ausserdem (für Bastler):

  • Fürs Einhängen via systemd gibt es eigene SystemD Mount Units
  • Das Setzen/Überprüfen von Dateiberechtigungen wird besser mit systemd-tmpfiles erledigt (man 5 tmpfiles.d)

Andy@Arch -exec chmod 777

Ich kenne ja deine Anforderungen bzgl. "alle User" nicht, also die Absicht hinter der "Datenpartition lesend/schreibend für alle", aber...
777 ist meist die "dümmste" Lösung und heißt letztendlich nur: ich bin zu faul mich mit der Rechteverwaltung zu beschäftigen.
Zumindest solltest du die Partition dann mit noexec einhängen.

  • Andy@Arch hat auf diesen Beitrag geantwortet.

    schard analog zu /tmp konfigurieren. D.h. 1777 (mit Sticky Bit).

    Wie mache ich das? mode=1777 funktioniert nicht mit ext4, fmask= , dmask= oder umask= funktioniert auch nicht.

    @GerBra das 777 war jetzt nur mal aus der Luft gegriffen, vermutlich würde Besitzer und Gruppe Lesen, Schreiben und ausführen würde vermutlich auch genügen.

    Was macht denn das Sticky Bit genau?

    0 ✓ srv ~ $ man chmod | grep sticky
    user (X), set user or group ID on execution (s), restricted deletion flag or sticky bit (t). Instead of one
    (2) and restricted deletion or sticky (1) attributes. The second digit selects permissions for the user who
    The restricted deletion flag or sticky bit is a single bit, whose interpretation depends on the file type.
    program’s text image on the swap device so it will load more quickly when run; this is called the sticky bit.
    0 ✓ srv ~ $

    https://de.wikipedia.org/wiki/Sticky_Bit

    GerBra Ich kenne ja deine Anforderungen bzgl. "alle User" nicht, also die Absicht hinter der "Datenpartition lesend/schreibend für alle"

    Anforderung = Krabbelkiste. Jeder User an dem Rechner soll in der Lager seine dort etwas zu Speichern, Verändern oder Löschen und jeder der dort etwas ablegt weiß das auch. Bisher hab ich für so was immer ntfs genommen, möchte ich aber nicht mehr wegen Windows.

    Partition habe ich jetzt mit owner:root | group:users eingehangen und alle User der Gruppe users hinzugefügt. Keine Ahnung ob das so richtig ist, es funktioniert erstmal.

    Des weiteren habe ich noch ein klitzekleine Script zum anpassen der Rechte geschrieben was ich bei Bedarf per SSH ausführen kann.
    Das würde ich aber lieber als Systemd-Service machen, weiß aber leider nicht was ich in den File reinschreiben muss, damit der Service beim Userlogin ausgeführt wird. Falls da jemand noch eine Idee hat.

    • brikler hat auf diesen Beitrag geantwortet.

      Andy@Arch damit der Service beim Userlogin ausgeführt wird

      wie meinst du das? wenn du als $USER eine session startest, oder einfach wenn du bootest?
      als $USER was mounten, durfte eigentlich nicht funktionieren, den mount ist root vorbehalten.

      Wieso so kompliziert? Wenn du den Ordner oder das Laufwerk NAS nennst, dann kannst du das Bsp. so abschreiben wie es ist.
      https://wiki.archlinux.de/title/Network_File_System
      Du kann dann auch auf NAS Ordner anlegen mit der user ID, die jeweils die Benutzer haben die darauf zugreifen dürfen.
      Und du kannst für einen Ordner in dem alle lesen, bzw schreiben dürfen die Gruppenrechte entsprechend setzen. Du musst halt nur die UID auf den Rechnern die darauf zugreifen die UIDs entsprechend verteilen.
      Z.B. Andy 1000, Monika 1001, Grieselda 1002 ......
      Diese Zuordnung muss auf allen Geräten die auf NAS zugreifen dürfen, die selbe sein, dann kommt sich niemand in die Queere.

      Zur UID siehe hier: https://wiki.archlinux.de/title/Benutzer_und_Gruppen

      (Falls du dann überhaupt noch ein script brauchst, dann gäbe es auch noch den Befehl 'remount'.
      Den nutze ich nach erfolgter Sicherung um die Lese/Schreibrechte von rw auf r zu stellen. Systemd benötigst du eigentlich nur dann, wenn du etwas automatisieren möchtest. Das script bliebe aber das gleiche. Und natürlich wird mount oder remount immer unter root Rechten ausgeführt und mit systemd nutzt eigentlich auch immer rootrechte, es sei denn du deklarierst den jeweiligen Dienst exlizit mit der --user.Option aber das brauchst du in diesem Falle gar nicht.)

      @brikler das mounten ist auch nicht mehr das Problem, das Problem ist das Andy 1000, Monika 1001, Grieselda 1002 ...... hat.
      Ich möchte, das beim Anmelden vom User, ein Befehl ( find /mnt/"Mountpunkt" ! -perm 770 -print -exec chmod 770 {} \; ) mit Rootrechten ausgeführt wird. Deswegen darf der Systemd Service auch kein systemctl --user *.service sein.

      Was mir jetzt noch fehlt ist ein Target (also Before=, After= usw) im Service der den Zeitpunkt wenn ein Benutzer grafisch eine Session startet definiert. Ein "After=sddm" hat hier nicht funktioniert.
      Nach dem Boot funktioniert leider auch nicht, weil der Rechner beim Benutzer wechsel nicht immer neu gestartet wird.

      • Dirk und tuxnix haben auf diesen Beitrag geantwortet.

        Andy@Arch Ich möchte, das beim Anmelden vom User, ein Befehl ( find /mnt/"Mountpunkt"

        Ich weiß gar nicht weshalb du da rum mounten willst.
        Wenn du auf einem Rechner arbeitest, dann lässt du es bei /home/griselda ect.
        Dann ist da alles perfekt eingerichtet.
        Wenn du von mehren Rechnern zugreifen willst, dann kannst du auch per nfs /home frei geben und der jeweilige Zugriff wird beim einloggen mit der UID geregelt.
        Du kannst auch einen Ordner /NAS taufen und dort dann ein /NAS/griselda anlegen.
        Mounten muss dann jeweils nur der Clientrechner und zwar den nfs Ordner auf dem Serverrechner.

        Eine extra Festplatte oder Partition, brauchst du eigentlich nur dann, wenn dir der Speicherplatz zu eng wird.
        Ich schlage vor du machst es dir einfach und und tust ein '# mkdir /NAS. Dort Legst du die Ordner Andy, Monika Grieselda an und gibst ihnen dann auch die UID von Andy, Monika und Griselda wie sie auf allen anderen Rechnern vergeben sind. (Fürs System zählen halt nicht die Namen sondern nur die UID)
        Wenn dann alles funst und erst dann und wie gesagt mounten tut hier nur der Clinet Rechner, dann kannst du du auch eine Festplatte den Namen NAS geben und die Ordner mit # cp -ra dort rüberkopieren. Das -a steht für Archiv und behält die Rechte so wie sie im Original sind. Danach mountest du die Platte NAS auf den Mountpoint (Ordner) /NAS. und schreibst das mounten dieser Festplatte in die fstab. 1x fertig!.

        Ein find Mountpoit braut es nicht. Der Server hat in der exports genau definiert welcher Rechner auf welchen Ordner zugreifen darf. Und der Client Mountet dann diesen Ordner der sich auf dem Server befindet.
        Das schreibt man auch in die fstab des Clint, wenn das immer so sein soll. Das macht man am besten aber mit der Angabe nofail damit der Client auch dann noch startet, wenn der server mal down sein sollte.

        Andy@Arch Habe eine Partition erstellt die ich als Datenablage für alle nutzen möchte.

        wie wärs, wenn du einfach $HOME dahin legen würdest, für jeden nutzer sein eigens, und mit systemd-automount, dann die partitionen erst mounten, wenns nötig ist?
        du hängst dann einfach, in der fstab, bbei jeder $USER partition, bei den optionen x-systemd.automount dran

        Irgendwie versteht mich keiner ............ neuer Versuch.

        Ein Rechner mit mehreren Nutzern, jeder Nutzer hat natürlich sein eigenes Home.
        Zusätzlich gibt es diese Datenpartition (Krabbelkiste) damit die Nutzer untereinander Daten austauschen können. Und weil natürlich keiner an irgendwelche Zugriffsrechte denkt muss ich es irgendwie Regeln das alle vollen Zugriff haben.

        Kleine Beispiel: Andy fährt in den Urlaub und hinterlässt auf der Datenpartition die Wegbeschreibung für Griselda, vergisst aber die Zugriffsrechte. Also kommt Griselda nicht an die Wegbeschreibung, verfährt sich im Wald und wird von Bären gefressen anstatt Sex am Strand zu haben.

        Zurück zum Thema
        Plan 1: Alle Dateien und Ordner übernehmen automatisch die Rechte vom Mountpunkt, das geht nur mit Fat oder Ntfs. Richtig?
        Plan 2: Root muss die Zugriffsrechte anpassen und das würde ich gerne mit einem Systemd Service beim Userlogin machen.

        @Dirk das Systemd Automount hängt die Partition ein sobald ein User darauf zugreift. Richtig? kann es auch die Partition aushängen wenn der User sich abmeldet?

        • tuxnix hat auf diesen Beitrag geantwortet.

          keine Ahnung ob ich alles Richtig gemacht habe aber erstmal sieht es gut aus
          "LABEL=FASTDATA /mnt/FastData ext4 rw,acl,user_xattr,defaults,relatime,auto,discard 0 2" -> /etc/fstab
          chgrp users /mnt/FastData/
          chmod 775 /mnt/FastData/
          chmod g+s /mnt/FastData/
          setfacl -m m::rwx /mnt/FastData
          setfacl -dm g:users:rwx /mnt/FastData

          keine Ahnung ob das eine Rolle spielt die Partition war dabei schon ein gehangen nach /mnt/FastData

          Andy@Arch Also kommt Griselda nicht an die Wegbeschreibung, verfährt sich im Wald und wird von Bären gefressen anstatt Sex am Strand zu haben.

          Und wieso hat Griselda keinen Sex mit dem Bären?

          • Andy@Arch hat auf diesen Beitrag geantwortet.

            brikler mode=777

            funktioniert bei ext4 nicht, genauso wie umask=, ist wohl für ntfs oder vfat gedacht.

            tuxnix Und wieso hat Griselda keinen Sex mit dem Bären?

            Bärennummer ................................................ vor'm Loch sitzen unmd brummen.

            • brikler hat auf diesen Beitrag geantwortet.

              Andy@Arch funktioniert bei ext4 nicht, genauso wie umask=, ist wohl für ntfs oder vfat gedacht.

              für ntfs gibts keine rechte, drum macht mode= keinen sinn, aber warums bei dir nicht funktioniert, das ist eine andere frage, jeden falls funktionierts bei mir in /tmp, ich hab da meinen FF cache hin gelegt.

              • Andy@Arch hat auf diesen Beitrag geantwortet.