Ergebnis 1 bis 16 von 16
  1. #1
    chris2k Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Frage zum Umgang mit Systembenutzern

    Kurz und knapp:

    Ein Shellscript soll unter einem bestimmten Nutzer gestartet werden. Also:

    adduser --system --group userxyz

    In das nun vorhandene homeverzeichnis habe ich nun das Script gelegt, den Systembenutzer zum Besitzer gemacht, Die Rechte auf 775 gesetzt und anschließend versucht das Script mit dem Befehl

    su testuserxyz -c ./test.sh

    zu starten...


    Geht nicht aber nicht Warum?

    Wie starte ich denn nun das Script als Benutzer testuserxyz?

    Ich habe mich echt tot gegooglet aber finde nix :/

    Danke für die Hilfe

    Gruß
    $upreme

  2. #2
    Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    221
    Danksagungen
    0

    Standard Re: Frage zum Umgang mit Systembenutzern

    Was genau bedeutet _geht aber nicht_? Irgendwelche Fehlermeldungen?

    Ansonsten probiers mal mit dem richtigen Environment für den User:

    Code:
    su - testuserxyz -c ./test.sh

  3. #3
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    /etc/passwd:

    Code:
    ...
    testuser:x:121:126::/home/testuser:/bin/false
    ...

    Home Verzeichnis des Systembenutzers

    Code:
    root@bcdev-server:/home/testuser# ls -l
    insgesamt 4
    -rwxr-xr-x 1 testuser testuser 36 2012-04-17 09:53 test.sh
    Aufruf als root

    Code:
    root@bcdev-server:/home/testuser# ./test.sh
    Hallo Welt
    root@bcdev-server:/home/testuser#
    Jetzt mit bereits genanntem Aufruf

    Code:
    root@bcdev-server:/home/testuser# su - testuser -c ./test.sh
    root@bcdev-server:/home/testuser#
    Wie man sieht, sieht man nix

  4. #4
    gulli v1.0

    Moderator


    Registriert seit
    May 2008
    Beiträge
    1.642
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Und was soll test.sh genau machen?

  5. #5
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Zitat Zitat von a_d_s Beitrag anzeigen
    Und was soll test.sh genau machen?
    Im Moment einfach nur "Hallo Welt" ausgeben

    sieht man im Aufruf als root

    Code:
    root@bcdev-server:/home/testuser# ./test.sh
    Hallo Welt
    root@bcdev-server:/home/testuser#
    test.sh sieht so aus:

    Code:
    #!/bin/sh
    
    echo "Hallo Welt"
    Hab schon überlegt ob es in der Root shell einfach nur nicht ausgegeben wird, aber wenn ich die test.sh wie folgt abändere:

    Code:
    #!/bin/sh
    
    echo "Hallo Welt" > test.txt
    erzeugt der Aufruf mit

    su - testuser -c ./test.sh

    auch keine Datei!

  6. #6
    gulli v1.0

    Moderator


    Registriert seit
    May 2008
    Beiträge
    1.642
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Wem gehört denn das Home Verzeichnis des Users? Dem User selbst, oder root?

    Was passiert, wenn du folgendes ausführst:
    Code:
    su - testuser
    ./test.sh
    In zwei getrennten Schritten.

  7. #7
    Gesperrt Avatar von Finntastisch
    Registriert seit
    Oct 2011
    Beiträge
    918
    NewsPresso
    6 (Könner)
    Danksagungen
    11

    Standard Re: Frage zum Umgang mit Systembenutzern

    Dein neuer User hat keine Shell (/bin/false)

    testuser:x:121:126::/home/testuser:/bin/false
    sprich du kannst kein su [-] auf ihn machen.

    Trag da eine ein und es klappt.

  8. #8
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    ls -l im Home Verzeichnis

    Code:
    drwxr-xr-x  2 testuser testuser  4096 2012-04-17 10:26 testuser
    Ergebnis bei Trennung der beiden Schritte

    Code:
    root@bcdev-server:/home/testuser# su - testuser
    root@bcdev-server:/home/testuser# ./test.sh
    Hallo Welt
    root@bcdev-server:/home/testuser# id
    uid=0(root) gid=0(root) Gruppen=0(root)
    root@bcdev-server:/home/testuser#
    Der Wechsel zu diesem Nutzer klappt ja schon nicht so wie ich das sehe

  9. #9
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Zitat Zitat von Finntastisch Beitrag anzeigen
    Dein neuer User hat keine Shell (/bin/false)



    sprich du kannst kein su [-] auf ihn machen.

    Trag da eine ein und es klappt.
    Wie klappt das denn dann bei anderen systembenutzern mit dem Starten von Diensten? mysql z.B. hat auch keine Shell und trotzdem läuft der dienst ja unter dem Benutzer mysql.

    Irgendwie ist mir das zu hoch

    der Parameter --system erzeugt doch nicht ohne Grund einen Nutzer ohne Shell oder seh ich das falsch

  10. #10
    Gesperrt Avatar von Finntastisch
    Registriert seit
    Oct 2011
    Beiträge
    918
    NewsPresso
    6 (Könner)
    Danksagungen
    11

    Standard Re: Frage zum Umgang mit Systembenutzern

    Diese User haben genau deshalb keine Shell damit du eben nicht ein su [-] drauf machen kannst.

    Da bei solchen Useren gerne weak Passwords vergeben werden ("Ach, ist ja nur der Mysql Daemon, geb ich ihm mal das Passwort 'mysql') wurden solche Accounts früher gerne gehackt.

    Je nach Distribution forkt ein kleiner Helfer (start-stop-daemon meistens) die Prozesse beim Init.

  11. #11
    Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    221
    Danksagungen
    0

    Standard Re: Frage zum Umgang mit Systembenutzern

    Weil dein User eben keine Loginshell hat - denn /bin/false - kannst nur mit su - user -c bzw. su user -c keine Kommandos auf dieser absetzen.

    Entweder gibts du dem User eine Loginshell oder alternativ:

    Code:
    su testuser - -s /bin/bash -c ./test.sh

  12. #12
    Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    221
    Danksagungen
    0

    Standard Re: Frage zum Umgang mit Systembenutzern

    Nachtrag:

    Dein su - testuser funktioniert, weil su in dem Fall eine interaktive Shell startet (afaik shell, kann mich aber irren).

    Zu deinem MySQL Beispiel:
    Wie Finntastisch sagt, läuft der Elternprozess unter root. Alles andere sind forks, die dann als mysql-User laufen.

    Siehe Output von z.B. http://unixhelp.ed.ac.uk/CGI/man-cgi?pstree+1

  13. #13
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Zitat Zitat von meFisttoU Beitrag anzeigen
    Weil dein User eben keine Loginshell hat - denn /bin/false - kannst nur mit su - user -c bzw. su user -c keine Kommandos auf dieser absetzen.

    Entweder gibts du dem User eine Loginshell oder alternativ:

    Code:
    su testuser - -s /bin/bash -c ./test.sh
    Kannst Du mir den Befehl auseinandernehmen und erklären?

  14. #14
    Moderator Avatar von mathmos
    Registriert seit
    Jan 2003
    Beiträge
    11.386
    Danksagungen
    3

    Standard Re: Frage zum Umgang mit Systembenutzern

    Steht doch alle gut erklärt in der man-page von su (man su).

  15. #15
    Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    221
    Danksagungen
    0

    Standard Re: Frage zum Umgang mit Systembenutzern

    Code:
    su testuser
    Userwechsel zu deinem Testuser

    Code:
    -
    Environment von testuser laden (Wobei ich gerade sehe, dass das - am Ende der Befehlszeile stehen muss, sorry).
    Äquivalent zu -l und --login

    Code:
    -s /bin/bash
    Die aufzurufende Shell. Ohne das -s wird die Shell aus der /etc/passwd gelesen (was in deinem Fall /bin/false ist).

    Code:
    -c ./test.sh
    Aufzurufendes Kommando

    Weitere Infos kannst du unter
    Code:
    man su
    oder
    Code:
    info su
    finden.

  16. #16
    chris2k

    (Threadstarter)

    Avatar von $upreme
    Registriert seit
    Oct 2003
    Ort
    Duisburg
    Beiträge
    266
    Danksagungen
    1

    Standard Re: Frage zum Umgang mit Systembenutzern

    Verstanden und klappt

    Vielen Dank für die Hilfe und Erklärung

  17.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •