Ankündigung

Einklappen
Keine Ankündigung bisher.

Verzeichnis / Datei als anderer Benutzer erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Und warum erstellst du nicht einfach für jeden User ein eigenes Verzeichnis und SFTP kann dann nur auf das Verzeichnis zugreifen?

    Weiterhin empfinde ich den Zugriff über SFTP für einen User als Sicherheitsrisiko und noch dazu unpraktisch. Warum gibt es keine Webseite die die downloads zur Verfügung stellt?
    Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

    Kommentar


    • #17
      Zitat von erc Beitrag anzeigen
      Genau dafür ist es doch da. Du kannst damit ein unpriviligierten User bestimmte Aktionen erlauben ohne gleich alles erlauben zu müssen. Sicherheitkritisch wird es wenn "bestimmte Aktionen" unfreiwillig falsch definiert sind.
      Ein "find / -perm 4000" mit einen unsicheren Programm findest du gefühlt in jedem Linux Security Buch was Angriffe zeigt.
      setuid bit ist mE nicht zwingend für chown gedach, schon gar nicht, wenn ich eine irgendeine datei hochlade und irgendeine uid bestimmen kann.
      es gibt allerdings anwendungen, bei denen das sinnvoll ist du ,X war bspw. mal eine.

      Zitat von erc Beitrag anzeigen
      Das Paper hat nix mit setuid bit zu tun. Da gehts drum, wenn du das innerhalb deiner Anwendung verwendest.
      und hier solle dies innerhalb einer anwendung genutzt werden.

      sorry, aber mal schnell irgendwas zu machen, und dem diese perm zu geben halte ich nach wie vor für grobst fahrlässug.
      und nein, sowas hat ich noch nicht in irgendeim linux security buch gelelsen, woghl möglich lese ich auch nur die falschen security bücher

      Kommentar


      • #18
        Zitat von ernschd Beitrag anzeigen
        Also z.B.: Anwender A (Mitarbeiter von Firma A) lädt Datei "Hallo.pdf" hoch und gibt diese frei. Anwender B (Mitarbeiter Firma B) lädt "Welt.pdf" hoch und gibt diese auch frei.
        Nun soll ein Sachbearbeiter von Firma A nur Zugriff auf "Hallo.pdf" haben, aber nicht auf "Welt.pdf" (das ganze natürlich umgekehrt für B).
        das es sich hier um zwei firmen handelt - ist die ganze diskussion eh mehr oder weniger hinfällig.
        in the real world kommt es sehr selten und nur bei sehr spezialsierten firmen vor dass mehre user der firma systempassworter im netzwerk der firme b haben.
        üblicherweise vergibt man keien systempasswörter um pdf sehen zu können,. sowas realisiert man innerhalb von applikationen.

        prinzipiell finde ich es immer super, die ganz grossen bazokas auszupacken, bevoor der jeweilige TE seine vorhanben konkretisiert hat,
        dies gilt vor allem, wenn es um komplexre sysetminterna geht, welche dem TE so gar nicht klar sind.

        Kommentar


        • #19
          Zitat von tomBuilder Beitrag anzeigen
          setuid bit ist mE nicht zwingend für chown gedach, schon gar nicht, wenn ich eine irgendeine datei hochlade und irgendeine uid bestimmen kann.

          und hier solle dies innerhalb einer anwendung genutzt werden.
          Das setuid bit darf auf keinen Fall auf chown gesetzt werden. fastix hat es in #6 schon erklärt. Du schreibst ein Programm was intern /usr/sbin/chown aufruft. Das Programm muss aber sicherstellen, dass nur die gewünschten Dateien damit geändert werden können. Versemmelt du das, läuft das auf das selbe hinaus wie ein chmod u+s /usr/sbin/chown. Das wäre eine ganz Dumme Idee. Ich würde aber mal behaupten, dass ist ein beherrschbares Thema. (die Variante mit sudo und /etc/sudoers ist das selbe in grün)
          Nirgendswo dabei muss explizit ein User des Prozesses geändert werden.

          Zitat von tomBuilder Beitrag anzeigen
          sorry, aber mal schnell irgendwas zu machen, und dem diese perm zu geben halte ich nach wie vor für grobst fahrlässug.
          Ja, da geb ich dir Recht. Das wäre auch nicht unbedingt meine erste Wahl.

          Kommentar


          • #20
            Zitat von ernschd Beitrag anzeigen
            Ok, ich erkläre mal, was ich vorhabe: der Anwender kann in einem Formular PDF-Dateien hochladen und ggf. für ein Archiv freigeben.
            Dieses Archiv wird über eine PC-Software angezeigt, dabei erfolgt der Zugriff über SFTP. Hier kommen die Nutzerberechtigungen ins Spiel: die jeweiligen Nutzer dürfen natürlich nur die für sie freigegebenen Dateien sehen.
            Ganz stumpf: Die Dateien legt der Webserver in EIN Verzeichnis ab, auf welche alle Unix-Benutzer betreten und lesen können. Rechte der Dateien auf 600 setzen, (dann hat niemand außer dem Webserver Rechte) Die Eigentümerschaft bleibt beim Webserver, sudo, su, setuid wird für das Folgende nicht gebraucht.

            Code:
            ~> chmod 0600 datei.meier
            ~> chmod 0600 datei.mueller
            „chmod“ kann auch PHP. Und ja: Müller und Meier dürfen jetzt erst einmal gar nichts...

            Aber Linux-Dateisysteme können, was sehr viele nicht wissen, schon sehr lange auch mit ACLs (Access-Control-Lists) umgehen. PHP kann aber (soweit ich weiß, noch) keine ACL. Also mit „system()“ oder „exec()“:

            Code:
            ~> setfacl -m "meier:rw"  "datei.meier"
            ~> setfacl -m "mueller:rw"  "datei.mueller"
            Das kann alles der Webserver ausführen , Voraussetzung ist ein installiertes Paket namens "acl", welches aber bei bei den meisten Linuxversionen automatisch mit installiert wird, wenn nicht eine absolute Minimalinstallation ausgeführt wird. Wenn Du das in PHP machst, dann achte auf das folgendes Bei-Spiel - mit dem ruhig etwas experimentieren solltest:

            PHP-Code:
            <?php
            <?php

            $user 
            "meier";
            #$file   = "datei.meier && \"test\" > foo";
            $file =  'test.pdf" && cat "/etc/passwd';
            #$file   = "datei.meier";


            /*
            if ( is_file( $file ) ) {
            #*/
                
            $cmd 'setfacl -m "' str_replace('"''\"'escapeshellcmd $user ) ) . ':rw"  "' str_replace('"''\"'escapeshellcmd $user ) ) . '"';
                
            #exec( $cmd );
                
            echo $cmd PHP_EOL;
            /*
            } else {
               trigger_error ( "Netter Versuch", E_USER_ERROR );
            }
            #*/
            Durch das is_file() stellst Du (in Zusammenarbeit mit dem Escaping) gleich doppelt sicher, dass nicht durch „merkwürdige“ Dateinamen wie 'test.pdf" && cat "/etc/passwd' „unerhoffte Sachen“ passieren.

            Nach dem Absetzen der Befehle können Müller und Meier die jeweiligen Dateien bei einer Anmeldung mit ssh oder eben via sftp lesen und verändern.

            Wenn Müller und Meier die Dateien (und nur die ihnen zugeordneten) auch löschen oder umbenennen können sollen brauchen die jeweils ein eigenes Verzeichnis wie in Nr. 8 beschrieben. Wenn Du mit dem Wort „sehen“ im insoweit unklaren Satz "die jeweiligen Nutzer dürfen natürlich nur die für sie freigegebenen Dateien sehen." auch den Dateiname und die Metaangaben (Name, Größe, Rechte) der Dateien meinst kommst Du ebenso um die Verzeichnislösung aus Nr. 8 nicht herum.

            Ein frühes Machwerk von mir:

            https://www.fastix.org/r/Benutzerrec...nter_Linux.pdf - Wenn Du Dich mit Unix-Rechten schon auskennst, dann ab Seite 8.

            Ich denke, das Problem ist damit entweder gelöst oder es muss anders beschrieben werden.

            Kommentar


            • #21
              Vorwort:
              Immer wieder höre ich, dass Linux bei der Vergabe von Benutzerrechten Windows nachstehe. Der
              Grund hierfür ist jedoch nicht, dass Linux Benutzerrechte an Dateien nicht genau so genau
              vergeben kann wie Windows, der Grund ist, dass zu viele nicht wissen wie das geht.
              Musste als ich folgendes gelesen habe an dich denken:

              Seit Windows 10 Version 1809 werden die Zugriffsrechte (ACLs) für die SAM-Datenbank in bestimmten Szenarien fehlerhaft gesetzt. Damit kann jeder Benutzer die NTLM-gehashten Passwörter auslesen und zur Ausweitung von Rechten missbrauchen.
              https://www.heise.de/news/HiveNightm...n-6143746.html
              Standards - Best Practices - AwesomePHP - Guideline für WebApps

              Kommentar


              • #22
                Ich darf in diesem Kontext nochmals auf mein Zitat in #12 hinweisen aus welchem eindeutig hervorgeht, dass es dem TE eben nicht um systemuser geht.
                zudem ist auch anzumerken dass es in der *nix welt schon immer um multiuser/multitaskin os ging, welches in the real world was core gerärte angeht dem zeugs aus redmont einfeich weilt überlegen ist.
                Soweit ich weiss war windows auch nie für stateOFTheArt craptographie bei Ihren Hashes bekannt.

                Mich würde interssieren, wie du die virtullen nutzer anlegt und verwaltest ernschd
                das am meisten genutze programm für welches virtuelle nutzer und sftp unterstützt ist proftp - es gibt aber auch andere.

                Kommentar


                • #23
                  Ich darf in diesem Kontext nochmals auf mein Zitat in #12 hinweisen aus welchem eindeutig hervorgeht, dass es dem TE eben nicht um systemuser geht.
                  Bitte lese nach, was Ernschd am 19.07.2021 um 13:48 in Nr. 15 als explizite Klarstellung geschrieben hat: Die Benutzer greifen via SFTP (das ist ein Subsystem von SSH) zu - also sind die Unix-User (die nennst Du dann auch noch sachlich falsch „systemuser“) und deren Rechte ausschlaggebend.

                  Kommentar

                  Lädt...
                  X