This is an old revision of the document!


Användare (ni skall jobba på er egen server)

Det finns två kommandon i Ubuntu-server för att skapa användare: adduser och useradd.

less /usr/sbin/adduser
less /usr/sbin/useradd

Som du ser så är useradd ett binärt kommando medan adduser är ett perl-script som använder sig av useradd.

Du skall nu jobba med useradd… Det vanliga är att man använder sig av adduser när man skall skapa användare en och en och useradd när man skall skriva script.

1. Skapa en användare med login “user1” och password “user1”. Kolla att du kan logga som som denna användare. Vad fick användaren för hemkatalog?
2. Skapa en anvädare med login “user2” och password “user2” med sin hemkatalog i /home/users/user2. Kolla att du kan logga in och att hemkatalogen är rätt (pwd).

3. När man skall lägga upp många användare så brukar man inte göra det manuellt utan skriva ett litet “script”, vanligen i bash.
Ni skall hämta alla teknikelever som går ut VT-13 från passwd filen på www2 och lägga upp dem på er server.

Gör på följande sätt:

  • Hämta filen som ligger på ww2 med “scp” (ni måste göra det från er server pga brandväggen…)
  • Plocka ut de teknikelever som går ut VT-13 och fixa iordning filen så den funkar för den variant som ni har tänkt använda nedan.
  • Lägg upp alla användare - välj en av följande varianter, du får om du vill pröva båda…
    1. med hjälp av newusers - ett kommando som finns i Ubuntu gjort för att lägga upp användare via textfiler.
    2. med hjälp av följande lilla script, obs ni måste ändra lite eftersom era användare skall hamna i “/home/te13/*” och ha “byt” som lösenord.
      #!/bin/bash
      # filen med användare skall se ut på följande sätt:
      # login [TAB] comment (vanligen namn)
      # man kör filen på följade sätt ./adduser.sh < users.txt
      path="/home/anvandare/"
       
      while read userid name
      do
              echo "Creating useraccount $userid"
              useradd -m -d "$path$userid"  -c "$name" -g 100 -s /bin/bash $userid
              if [ $? == 0 ]; then
                      echo "created successfully"
              else
                      echo "failed to create user account $userid"
                      echo "failed to create user account $userid" >> add.log
              fi
              echo "${userid}:losenord" | chpasswd
      done

      eller via php

      <?
      // filen med användare skall se ut på följande sätt:
      // login [TAB] comment (vanligen namn)
      // man kör filen på följade sätt: php adduser.php users.txt
      $path='/home/anvandare/';
      $users = file($argv[1]);
      foreach ($users as $row) {
              $user = explode("\t",$row);
              // $user[1] innehåller tyvärr en radbrytning som jag tar bort med substr
              exec('/usr/sbin/useradd -m -d "' . $path.$user[0].'"  -c "'.substr($user[1],0,-1).'" -g 100 -s /bin/bash '. $user[0]);
              exec('echo "' . $user[0].':losenord" | /usr/sbin/chpasswd');
      }
  • Kör 'tree -d /home' och kolla så att alla hemkataloger ligger på rätt ställe. (om kommandot inte finns installera det…)
  • Testa att logga in med en användare för att se att det funkar.
  • Ta bort alla användare med följande script:
    #!/bin/bash
    # man kör filen på följade sätt ./deluser.sh < users.txt
    
    while read userid temp1 temp2
    do
            echo "Deleting useraccount $userid"
            userdel -r $userid
            if [ $? == 0 ]; then
                    echo "deleted successfully"
            else
                    echo "failed to delete user account $userid"
                    echo "failed to delete user account $userid" >> del.log
            fi
    done
  • Kolla att allt är borta
  • Lägg upp dem igen och kolla att allt är som det ska, ropa på mig och få godkänt.
  • Nu skall du flytta alla te13:ors hemkataloger till “/home/elever/te13” och få det att fungera. Du får bara bara använda två kommandon. Ett för att fixa din /etc/passwd fil och ett för att flytta alla hemkataloger. Säg till igen när du är klar!

Lycka till!
/JoakimF