tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1347
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DarkRaver DarkRaver ist gerade online Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    124
    Hallo!
    Wie kann man in einer Shell-Datei soetwas festlegen;
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if(user(xyz))
    {
    COMMAND
    }
    else
    {
    su xyz
    COMMAND
    }
    Dies würde denke ich mal so nicht funktionieren. Wie sollte man es so machen?
    Der user "xyz" soll etwas ausführen. Wenn er auszuführende User aber nicht "xyz" ist soll sich der User wechseln.
    Oder gar besser:
    Ist es möglich diesen Command von einem root-user von diesem user aus auszuführen ohne ihn direkt zu wechseln?

    Vielen Dank schonmal
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Ich kenne mich mit shell-scripten eigentlich kaum aus, aber folgendes funktioniert:
    Code :
    1
    2
    3
    4
    5
    6
    
    if test `whoami` = 'xyz'
    then
        echo "ja"
    else
        echo "nein"
    fi
     

  3. #3
    Avatar von Navy
    Navy Navy ist offline Freiwillige Serverwehr
    tutorials.de Administrator
    Registriert seit
    Jul 2003
    Ort
    Montreal (Quebec)
    Beiträge
    1.667
    Nur Schönheitskorrekturen:

    Code :
    1
    2
    3
    4
    5
    6
    
    if [ $(whoami) = "$USER" ]
    then
      $DO
    else
      $DOSOMETHINGELSE
    fi

    If-Abfragen und Command-Substitutions würde ich der Übersichthalber deutlicher kennzeichnen. Das tut der Funktionalität keinen Abbruch
     
    Navy

    --
    Echtzeithilfe unter irc.tutorials.de #tutorials.de

  4. #4
    DarkRaver DarkRaver ist gerade online Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    124
    Hey
    Okay danke schonmal aber was meint ihr mit dem
    Code :
    1
    
    whoami
    ?
     

  5. #5
    DarkRaver DarkRaver ist gerade online Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    124
    Hallöchen ich bins noch einmal
    Ich habe das nun so:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if [ $(whoami) = "css" ]
    then
      cd /home/server/counter-strike-source/27015_war
      screen -A -m -d -S 27015_war ./srcds_run -game cstrike -secure +map de_dust2 -maxplayers 13 -port 27015 -ip 85.214.90.108 -tickrate 100 -autoupdate
    else
      su css
      cd /home/server/counter-strike-source/27015_war
      screen -A -m -d -S 27015_war ./srcds_run -game cstrike -secure +map de_dust2 -maxplayers 13 -port 27015 -ip 85.214.90.108 -tickrate 100 -autoupdate
    fi

    Aber laufen tut das nicht...
    Kann mir da bitte einer helfen? Die Commands sind die die ausgeführt werden sollen.

    Danke schonmal
     

  6. #6
    Laudian Laudian ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Ort
    kurzfristig wieder Passau
    Beiträge
    295
    Mh ... whoami ist ein Programm, dass dir auswirft, als welcher User du eingeloggt bist ...

    die Variable $LOGIN kann dir das auch sagen ...
     
    Mir hat ein Artikel, auf den ich hier gestossen bin sehr gefallen. Deswegen hat er es mal verdient, meine sonst leeren Sigs zu schmuecken:

    Linux ist nicht Windows!

    Ich bitte alle, die auf dem jeweils anderen OS rumhacken erst diesen Artikel zu lesen.

  7. #7
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Die Zeile
    Code bash:
    1
    
    if [ $(whoami) = "css" ]
    braucht ein ;
    Code bash:
    1
    
    if [ $(whoami) = "css" ];

    Zusaetzlich finde ich in Scripts auch noch pushd und popd, als Alternativen zu cd, ganz angenehm.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von Dennis Wronka Beitrag anzeigen
    Die Zeile
    Code bash:
    1
    
    if [ $(whoami) = "css" ]
    braucht ein ;
    Code bash:
    1
    
    if [ $(whoami) = "css" ];
    Nein, braucht es nicht. Ein Semikolon muss man nur setzen, wenn man keinen Zeilenumbruch zwischen dem ] und dem then hat.

    Allerdings führt su ja nur die Login-Shell aus -- und da passiert dann nichts weiter.

    Ich würde das Skript einfach rekursiv aufrufen. Und externe Programme aufzurufen würde ich vermeiden:
    Code bash:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    if [[ "$USER" != 'css' ]]; then
      if [[ -n "$TRY_AS_USER_CSS" ]]; then 
         echo "could not execute script." >&2
         exit 1
      fi
      TRY_AS_USER_CSS=1 exec su -c "$0 $@" css
    fi
     
    cd /home/server/counter-strike-source/27015_war
    screen -A -m -d -S 27015_war ./srcds_run -game cstrike -secure +map de_dust2 -maxplayers 13 -port 27015 -ip 85.214.90.108 -tickrate 100 -autoupdate
    Gruß
    Geändert von deepthroat (06.01.10 um 20:10 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. User-Abfrage
    Von ValentinS im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 05.09.07, 15:25
  2. Fedora-core4 shell script smb & ftp User adden
    Von el loco mO im Forum Linux & Unix
    Antworten: 5
    Letzter Beitrag: 20.04.06, 13:17
  3. Status abfrage eines Servers via Shell-Skript!
    Von Konobi im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 16.09.05, 12:49
  4. PHP Code zur Abfrage des User Agenten
    Von son gohan im Forum PHP
    Antworten: 13
    Letzter Beitrag: 22.04.05, 14:10
  5. User Id abfrage will nicht
    Von Spacejumper im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.11.04, 16:19