next up previous contents
Vidare: Grundläggande nätverkskommandon. Uppåt: Att använda Slackware Linux. Tillbaka: Att styra processer.

Grundläggande systemadministration.

På vilken som helst dator, man har root-rättigheter till, är man systemadministratör. Det kan vara ens egen skrivbordsdator med en eller två användare, eller det kan vara en stor server med flera hundra användare. Oavsett vilketdera fallet är, så måste man veta, hur man skall hantera användare och hur man skall kunna stänga av systemet på ett säkert sätt. Bäggedera kan tyckas vara enkla, men de har några egenheter, man skall vänja sig vid. Därtill måste man bekanta sig en smula med det tänkande, som ligger bakom lösenordssystemet.

Användare och grupper.

Medföljande skript (kommandofiler).

Det enklaste sättet att hantera användare och grupper är att använda de medföljande skripten och programmen. Slackware innehåller programmen adduser, userdel(8), chfn(1), chsh(1) och passwd(1) till att hantera användare. Vidare ingår groupadd(8), groupdel(8) och groupmod(8) till att hantera grupper. Med undantag av chfn, chsh och passwd så kan dessa program endast köras av root och ligger följaktligen i katalogen /usr/sbin. chfn, chsh och passwd kan köras av vilken användare som helst och ligger i katalogen /usr/bin. 

Man lägger till användare med programmet adduser. Vi börjar här med att gå igenom hela arbetsgången, så att vi visar de frågor, som ställs, och en kortfattad beskrivning av deras innebörd. Förvalt svar står inom klammer [ ] och detta svar kan väljas på nästan alla frågor, såvida man inte vill ändra på någonting.

   # adduser
   Login name for new user (8 characters or less) []: jellyd

Detta är det namn, användaren anger vid inloggning. Det måste bestå av åtta tecken eller färre, eftersom alla inloggningstillbehör förväntar sig, att det skall ha denna längd. I allmänhet bör man använda uteslutande gemena (små bokstäver), såvida man inte gärna vill utsätta sig för obehaget att knappa in stora bokstäver i situationer, när detta kan vara obekvämt.

   User id for jellyd [ defaults to next available]:

Användar-ID (UID) är ett nummer, som är det verkliga sättet att bestämma ägarskap i Linux. Var användare har ett unikt nummer, och användarnas UID börjar med 1000 i Slackware.gif Man kan välja ett UID för den nye användaren, eller också kan man låta programmet adduser tilldela användaren första lediga nummer.gif

   Initial group for jellyd [users]:

Alla användare placeras såsom förval i gruppen users.gif Man kan lägga den nye användaren i någon annan grupp, men det anbefalles icke.

   jellyd's shell [/bin/bash]

bash är förvalt kommandoskal för Slackware Linux och passar bra för de flesta. Om den nye användaren har ett förflutet i något annat Unix-system, så kan det hända, att han är van vid något annat skal. I så fall kan man ge honom ett annat skal ifrån början, eller också kan han ändra det själv senare med kommandot chsh.

   jellyd's account expiry date (YYYY-MM-DD) []:

Ett användarkonto kan upprättas så, att det löper tillända på ett i förväg bestämt datum. Såsom förval finns inget slutdatum. Detta kan ändras, om så önskas. Denna möjlighet kan vara nyttig för en internetleverantör, som vill låta kontot upphöra ett visst datum, om nästa års avgift inte betalats in.

   OK, I'm about to make a new account. Here's
   what you entered so far:

   New login name: jellyd
   New UID: [Next available]
   Initial group: users
   Additional groups: [none]
   Home directory: /home/jellyd
   Shell: /bin/bash
   Expiry date: [no expiration]

   This is it... if you want to bail out, hit Control-C.
   Otherwise, press ENTER to go ahead and make the account.

Nu får man se alla upplysningar, som matats in om det nya kontot, och så får man möjlighet att avbryta. Om man har skrivit in något felaktigt, så måste man använda Ctrl-C och börja från början igen. I annat fall kan man nu slå Retur, och så upprättas kontot.

Making new account...

Changing the user information for jellyd
Enter the new value, or press return for the default
        Full Name []: Jeremy Smith
        Room Number []: 130
        Work Phone []:
        Home Phone []:
        Other:

Alla dessa upplysningar är frivilliga. Man behöver inte mata in något av detta, om man inte vill, och användaren kan ändra på det när som helst med kommandot chfn. Det kan dock vara lämpligt att åtminstone skriva in fullständigt namn och telefonnummer, uti fall att man skulle behöva sätta sig i förbindelse med personen ifråga.

   Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.
Done...

Nu skall man skriva in ett lösenord för den nye användaren. Om den nye användaren inte är kroppsligen tillstädes, så är det i allmänhet lämpligt att ge honom något enkelt lösenord och säga till vederbörande att ändra det själv till något säkrare.

Anmärkning: om val av nytt lösenord.

Att ha ett säkert lösenord är första försvarslinjen emot intrång. Man vill inte gärna ha ett lösenord, någon annan lätt kan gissa sig till, eftersom det då blir lättare att bryta sig in i systemet. Ett säkert lösenord vore som bäst en på måfå alstrad teckenföljd med såväl versaler (stora bokstäver) som gemena (små bokstäver), siffror och andra sorters tecken. Man skall dock därvid komma ihåg, att ett tabulatortecken nog inte är ett klokt val, eftersom ett sådant kan gestaltas på olika sätt i olika datorer, man kan tänkas logga in ifrån.

I allmänhet gäller det bara att använda sig av sunda förnuftet: man bör inte välja ett lösenord, som betecknar någons födelsedag, ett vanligt talesätt, något föremål på skrivbordet eller något som helst, som är förknippat med en själv. Lösenordet »secure1« är t.ex. också dåligt.

Det är inte alls svårt att ta bort användare. Man kör bara userdel med namnet på det konto, som skall avlägsnas, såsom argument. Därvid måste man först förvissa sig om, att användaren ifråga inte är inloggad, samt att inga processer är igång, vilka startats av denne användare. Märk även väl, att en borttagen användare är och förblir borttagen.

    # userdel jellyd

Om vi kör detta kommando, blir vi av med denne »jellyd«, som vi är rätt trötta på nu. Skönt. Detta avlägsnar användaren ifrån filerna /etc/passwd och /etc/group, men det tar inte bort användarens hemkatalog. Om vi hade velat ta bort användarens hemkatalog dessutom, skulle vi ha kommenderat:

    # userdel -r jellyd

Hur man tillfälligt stänger av ett konto kan man läsa om i avsnittet »Att ändra lösenord« på s. gif, eftersom detta inbegriper ändring av användarens lösenord. Ändring av kontouppgifter skildras i avsnitten »Ändra lösenord« på s. gif och »Ändra användarupplysningar« på s. gif.

De program, som lägger till och tar bort grupper, är mycket enkla. Programmet groupadd lägger bara till en ny rad i filen /etc/group med ett unikt grupp-ID, medan groupdel tar bort angiven grupp. Man får själv gå in och redigera filen /etc/group, om man vill lägga till bestämda, befintliga användare i någon viss grupp:

Man kan skapa en ny grupp med kommandot

    # groupadd cvs

Man kan ta bort en grupp med kommandot

    # groupdel cvs

För hand.

Det är självfallet möjligt att lägga till, ändra och ta bort användare eller grupper för hand. Efter en genomgång av detta förfarande tycker man nog, det är bekvämare att använda skripten.

Först skall vi lägga till en ny användare såväl i filen /etc/passwd(5) som i filen /etc/shadow(5) och i /etc/group. Filen passwd innehåller en del upplysningar om användarna, men (märkvärdigt nog) inte deras lösenord. Filen passwd måste vara läsbar för vem som helst, men man vill inte, att alla skall kunna läsa de krypterade lösenorden, eftersom detta skulle ge tilltänkta intränglingar en god början. Av den anledningen förvaras de krypterade lösenorden i filen shadow, vilken endast kan läsas av root, och i filen passwd är lösenorden ersatta med ett x. Filen group innehåller en förteckning över samtliga grupper och vilka användare, som ingår i dem.

Nu skall vi undersöka filen /etc/passwd och se, hur vi kan lägga till någon. En typisk post i passwd kan se ut så här:

   chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash

Var rad är en post, som gäller en person, och fälten i denna post är avgränsade medelst kolon. Fälten utgöres av inloggningsnamn, krypterat lösenord (x för alla i ett Slackware-system, eftersom vi använder shadow password suite), ett användar-ID, ett grupp-ID, frivilliga upplysningar för programmet finger åtskilda av kommatecken samt slutligen hemkatalog och skal. När man skall lägga till en ny användare, skriver man in en ny rad (lika med post) i denna fil utan att utelämna något fält eller något obligatoriskt fältinnehåll.

Man skall därvid förvissa sig om, att lösenordet är ett x, att användar-ID är unikt, att användaren tillhör grupp 100 (gruppen »users« i Slackware) och att han har ett giltigt inloggningsskal.

Därefter måste vi lägga till en post i filen /etc/shadow, som innehåller lösenorden. En typisk post ser ut så här:

   chris:$1$w9bsw/N9$UWLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
Återigen är var linje en post för en person, och fälten avgränsas medelst kolon. Fälten utgöres av inloggningsnamn, krypterat lösenord, antal dagar efter The Epochgif (1 januari 1970) som lösenordet senast ändrats, antal dagar innan lösenordet får ändras, antal dagar varefter lösenordet måste ändras, antal dagar före lösenordets utgångsdatum, som användaren skall förvarnas, antal dagar efter utgången som kontot blir overksamt, antal dagar efter »Epoken«, som kontot skall vara overksamt, och slutligen ett reserverat fält.

Som synes gäller det mesta här kontots utgångsdatum. Om man inte använder någon information om sista datum för kontot, så behöver man bara fylla i ett fåtal fält med särskilda värden. I annat fall får man utföra några beräkningar och fatta några beslut, innan man kan fylla i dessa fält. För vår exempelanvändare kan vi fylla i något på måfå hopplockat skräp i lösenordsfältet. För ögonblicket spelar det ingen roll, vilket lösenordet verkligen är, eftersom vi skall ändra det snart. Det enda tecken, vi inte får skriva i lösenordsfältet, är kolon. Vi kan också lämna fältet för »dagar sedan lösenordet senast ändrats« tomt. Vi fyller i 0, 99999 och 7, såsom det står i exemplet, och så lämnar vi övriga fält tomma.

De, som ser vårt krypterade lösenord här ovan och tror, att de har hittat ett sätt att bryta sig in i vårt system, kan ju alltid försöka. Kan ni knäcka det lösenordet, så har ni lösenordet till ett testsystem bakom en brandväg. Det har man nytta av :)

Eftersom alla såsom förinställning är medlemmar i gruppen users, så behöver man inte lägga till nya användare i denna grupp. Skulle man vilja skapa en ny grupp eller lägga till den nye användaren i några andra grupper, så måste man ändra i filen /etc/group. Här är en typisk post:

   cvs::102:chris,logan,david,root

Fälten utgöres av gruppnamn, grupplösenord, grupp-ID och gruppmedlemmar. Att skapa en ny grupp är bara en fråga om att lägga till en ny rad med ett unikt grupp-ID och räkna upp alla de användare, man vill ha med i gruppen. Vilka som helst användare, som tillhör denna nya grupp och är inloggade, måste logga ut och logga in igen, för att dessa ändringar skall träda i kraft.

Nå, då skall vi gå tillbaka och använda kommandot passwd till att skapa ett nytt lösenord för användaren. Därefter skall vi använda mkdir till att skapa den nye användarens hemkatalog på det ställe, som angivits i filen /etc/passwd.

Om man har installerat sendmail(8) i systemet och verkligen använder epost, så skall man skapa en fil i katalogen /var/spool/mail med lämpliga rättigheter och tillhörighet till denne nye användare. Här följer ett exempel:

   # touch /var/spool/mail/jellyd
   # chown jellyd.users /var/spool/mail/jellyd
   # chmod 660 /var/spool/mail/jellyd

Dessa kommandon skapar en fil för inkommande post till den nye användaren »jellyd« och förser denna fil med rätt ägarförhållande och tillstånd.

Att ta bort en användare gäller bara att bli kvitt allt detta, vi nyss skapat. Man tar bort användarens post i /etc/passwd och alla förekomster av denne användare i /etc/group, så att man tar bort hans inloggningsnamn ifrån alla grupper. Vidare utplånar man hans fil för inkommande epost, om en sådan finnes, och slutligen hemkatalogen, om det behövs.

Borttagande av grupper är bara en fråga om att ta bort raden för denna grupp ifrån filen /etc/group.

Ändra lösenord.

 

Programmet passwd byter ut lösenord genom att ändra i /etc/shadow. Denna fil innehåller alla systemets lösenord i krypterad form. När man vill ändra sitt lösenord, kommenderar man

$ passwd
Changing password for chris
Old password:
Enter the new password (minumum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Som synes, blir man uppmanad att skriva in sitt gamla lösenord. Det syns inte på skärmen, medan man skriver in det, liksom fallet är, när man loggar in. Därefter uppmanas man att skriva in det nya lösenordet. Programmet passwd utför flera kontroller på det nya lösenordet och klagar, om det inte får godkänt. Man kan bortse ifrån varningarna, om man vill. Slutligen uppmanas man mata in det nya lösenordet en gång till som bekräftelse.

Om man är root, så kan man även ändra andra användares lösenord:

   $ passwd ted
Sedan får man gå igenom samma förfarande som tidigare förutom det, att man inte behöver skriva in det gamla lösenordet (detta är en av de många fördelarna med att vara root … ).

Om man har några bråkmakare i systemet, så kan man även tillfälligt stänga deras konton. Senare kan man öppna dem igen. Både att stänga ett konto och att öppna det igen är åtgärder, som kan utföras med passwd. Man stänger ett konto genom att såsom root kommendera

   $ passwd -l david
Detta ändrar davids lösenord till någonting, som aldrig kan överensstämma med det krypterade lösenordet. Senare kan man återställa lösenordet igen med följande kommando:

   $ passwd -u david
Därmed blir davids konto återställt till det normala tillståndet. Att tillfälligt stänga ett konto kan vara lämpligt, om användaren inte följer de regler, man har uppställt för åtkomst till systemet, eller om han har exporterat en stor mängd xeyes(1) till överanvändarens skrivbord i fönstersystemet X.gif

Att ändra användarinformation.

 

Det finns två slags upplysningar om kontot, som en viss användare när som helst själv kan ändra för sitt eget konto: skalet och upplysningarna för finger. Slackware Linux använder chsh och chfn till att ändra dessa värden.

Användarna får välja mellan de skal, som är förtecknade i /etc/shells. De flesta klarar sig bra med bash. En del andra är kanske redan hemtama i något skal, som finns i unixsystemet på deras skola eller arbetsplats, så att de vill använda det, de redan känner till. Man ömsar skal med kommandot chsh:

   $ chsh
   Password:
   Changing the login shell for chris
   Enter the new value, or press return for the default
        Login Shell [/bin/bash]:
När man har matat in sitt lösenord, skriver man in den fullständiga sökvägen till det nya skalet. Man skall därvid först förvissa sig om, att kommandoskalet ifråga står förtecknat i filen /etc/shells(5). Överanvändaren root kan även ömsa skal på en vanlig användare genom att köra chsh med ett användarnamn som argument.

Information för finger är frivilliga upplysningar såsom fullständigt namn, telefonnummer och rumsnummer. Dessa kan ändras med hjälp av chfn, och detta följer samma tillvägagångssätt som under skapandet av ett konto. Som vanligt får root ändra fingerinformation för vem som helst.

Stänga av på rätt sätt.

Det är mycket viktigt, att man stänger av systemet på rätt sätt. Att helt enkelt slå av strömmen kan medföra svåra skador på filsystemet. Medan systemet är igång, är filer i bruk, även om man inte gör någonting med systemet. Man skall komma ihåg, att många processer ständigt är igång i bakgrunden. Dessa processer styr systemet och håller många filer öppna. När man slår ifrån strömbrytaren, så blir inte dessa filer stängda på rätt sätt och därför skadade. Beroende på vilka filer, som skadats, så kan systemet ta varaktig skada. I vilket fall som helst, så måste man gå igenom en långrandig filsystemskontroll, nästa gång man startar systemet.

Således, när man skall starta om eller stänga av datorn, är det viktigt att göra detta på rätt sätt. Det finns flera olika sätt att åstadkomma detta; man kan välja det, som verkar trevligast. De flesta sätt att slå av datorn kan även användas till att starta om den.

Det första tillvägagångssättet är bruk av programmet shutdown(8), och detta är förmodligen det mest omtyckta. shutdown kan användas till att omstarta eller stänga av systemet vid en given tidpunkt och det kan visa ett meddelande för alla systemets användare, vilket talar om för dem, att systemet skall gå ner.

Man använder shutdown till att stänga av datorn så här:

   # shutdown -h now

I detta fall sänder vi inget särskilt meddelande till användarna; de får se shutdown:s standardmeddelande. »now« anger tidpunkten för shutdown, och växeln »-h« betyder, att systemet skall gå ner till halt. Detta är inget trevligt sätt att behandla ett fleranvändarsystem, men det fungerar fint på hemdatorn. Ett bättre sätt på ett fleranvändarsystem vore att ge alla en liten varning i förväg:

   # shutdown -h +60

Detta tar ner systemet om en timme (60 minuter), vilket torde vara tillräckligt i ett normalt fleranvändarsystem. Riktigt viktiga system schemalägger nertiden långt i förväg och anslår meddelanden om detta i /etc/motd(5).

Man kan starta om med samma kommando, men då ersätter man »-h« med »-r«:

   # shutdown -r now

Man kan ange tiden på samma sätt för växeln -r som för -h. Det finns många andra saker, man kan göra med shutdown för att styra nersläckning eller omstart av maskinen. Se manualsidan.

Ett annat sätt att stänga av eller starta om datorn är att använda kommandona halt(8) och reboot(8). Såsom namnen antyder, så kommer halt att omedelbart stanna operativsystemet, medan reboot omstartar systemet. reboot är helt enkelt en symbolisk länk till halt. De anropas på följande vis:

   # halt
   # reboot

Ett sätt att starta om eller stänga av systemet på lägre nivå är att tala direkt till init. Alla de andra metoderna är helt enkelt bekväma sätt att tala till init, men man kan direkt meddela det, vad det skall göra, genom att använda telinit(8). Kommandot telinit talar om för init vilken runlevel (körnivå), det skall gå in i, vilket utlöser körning av ett särskilt skript. Detta skript dödar eller avföder processer, som endera behövs eller inte får förekomma vid körnivån ifråga. Detta fungerar till att starta om och stänga av, eftersom bägge är särskilda körnivåer.

   # telinit 0

Runlevel 0 är körnivån för halt. Om vi säger till init att gå in i körnivå 0, så dödas alla processer, filsystemen avmonteras och maskinen stannas. Detta är ett fullt godtagbart sätt att ta ner systemet. På många bärbara stänger det även av själva maskinen.gif

   # telinit 6

Runlevel 6 är körnivån för omstart. Alla processer dödas, filsystemen avmonteras och maskinen startas om. Detta är ett fullt godtagbart sätt att starta om systemet.

Det finns ett sista sätt att starta om systemet. Alla andra metoder fordrar, att man är root. Emellertid är det möjligt att starta om maskinen, även om man inte är root, förutsatt att man kommer åt tangentbordet fysiskt. Genom trefingerhälsningen (Ctrl+Alt+Del) kan man få datorn att startas om direkt. Vad den då egentligen gör är, att den kör ett program, som heter /usr/sbin/ctrlaltdel(8). Så om detta program uppvisar underliga rättigheter eller inte alls är förhanden, så hjälper det inte att trycka på alla dessa tangenter.

Sammanfattning.

Detta kapitel har diskuterat tillvägagångssätt för att lägga till och ta bort användare och grupper. Man bör nu kunna utföra dessa uppgifter med skript eller för hand, om det behovet skulle uppstå. Därtill bör man känna till, vad de olika momenten i tilläggandet av en ny användare går ut på, hur man väljer lösenord och hur man ändrar användarinformation. Slutligen bör man nu veta, hur man skall stänga av datorn på rätt sätt och varför detta är viktigt. Detta är alltsammans viktiga moment i systemadministrationen, oavsett om man administrerar sin egen hemdator eller en stor nätverksserver.


next up previous contents
Vidare: Grundläggande nätverkskommandon. Uppåt: Att använda Slackware Linux. Tillbaka: Att styra processer.


Denna översättning ifrån engelskan är utförd av Erik Jonsson <[email protected]> efter Slackware Linux Essentials, officiell handbok för Slackware Linux.

Denna översättning tillhandahålles liksom engelskspråkiga originalet enligt villkoren i GNU General Public License (GPL).
Uppgifterna om författarnas och översättarens namn får ej avlägsnas, utplånas eller eljest göras oläsliga.
Förvaras åtkomligt.
Bäst före: senaste ändringsdatum.
Äldre versioner bör förstöras.
Senast ändrad Tue Oct 24 09:36:13 CEST 2000

Hela boken finns här även beredd för utskrift i PDF-filen slwhbk.pdf.

http://www.slackware.com/http://www.sslug.dk/Ser bra ut i vilken vävläsare som helst.


Generaldepoten — Emil Tusens Kulturpalats.
Om goda kagor och torra kakor (»cookies«).

Innehåll:

Litteraturförteckning

Om goda kagor och torra kakor (»cookies«).