Index: translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml =================================================================== --- translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml (revision 47534) +++ translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml (revision 47535) @@ -1,3894 +1,3651 @@ - &unix; beginselen + + &unix; beginselen + ChrisShumwayHerschreven door RemkoLodderVertaald door - - Overzicht Dit hoofdstuk behandelt de basiscommando's en de basisfunctionaliteit van het &os; besturingssysteem. Veel van dit materiaal is relevant voor elk &unix;-achtig besturingssysteem. Nieuwe gebruikers van &os; worden sterk aangeraden om dit hoofdstuk zorgvuldig door te lezen. Na het lezen van dit hoofdstuk weet de lezer: Hoe virtuele consoles gebruikt en geconfigureerd kunnen worden. Hoe gebruikers en groepen aangemaakt en beheerd kunnen worden op &os; Hoe &unix; bestandspermissies en &os; bestandsvlaggen werken. Hoe het standaard &os; bestandssysteem eruit ziet; Hoe een &os; harde schijf is ingedeeld; Hoe bestandssystemen gekoppeld en ontkoppeld worden; Wat processen, daemons en signalen zijn; Wat een shell is en hoe de standaard omgevingsvariabelen veranderd kunnen worden; Hoe elementaire tekstverwerkers te gebruiken; Wat apparaten en apparaatkoppelpunten zijn; Hoe handleidingen te gebruiken meer informatie. Virtuele consoles en terminals Virtuele consoles terminals console Tenzij &os; is geconfigureerd om automatisch een grafische omgeving te starten, zal het systeem opstarten in een command line (cli) login prompt zoals te zien is in onderstaand voorbeeld: FreeBSD/amd64 (pc3.example.org) (ttyv0) login: De eerste regel bevat informatie over het systeem. De tekst amd64 geeft aan dat het systeem in dit voorbeeld een 64-bit versie draait van &os;. De naam van het systeem is pc3.example.org en ttyv0 geeft aan dat dit de systeem console is. De tweede regel is de login prompt. Omdat &os; een systeem is waarop meerdere gebruikers tegelijkertijd kunnen werken, heeft het een manier nodig om de verschillende gebruikers uit elkaar te houden. Dit wordt gedaan door te eisen dat elke gebruiker inlogt op het systeem voordat er toegang wordt verleend tot programma's op het systeem. Elke gebruiker heeft een unieke ( gebruikersnaam) en een persoonlijk wachtwoord. Om in te loggen op de systeem console moet de gebruikersnaam worden getypt welke geconfigureerd is tijdens de installatie, zoals beschreven in waarna op Enter gedrukt moet worden. Hierna moet het wachtwoord wat behoord bij deze gebruikersnaam worden ingevuld waarna wederom Enter ingedrukt moet worden. Het wachtwoord wordt niet getoond voor beveilingsredenen. Zodra de combinatie correct is ingevuld zal het bericht van de dag (MOTD) worden getoond, gevolgd door een commando prompt. Afhankelijk van de gekozen shell tijdens het aanmaken van de gebruiker zal deze prompt een #, $ of een % karakter zijn. Deze prompt geeft aan dat de gebruiker ingelogd is in de &os; systeem console en klaar is om commando's uit te voeren. Virtuele Consoles Ondanks dat de systeem console gebruikt kan worden om interactie met het systeem te hebben zal een gebruiker die het toetsenbord gebruikt veelal aanloggen op een virtuele console. Dit is omdat systeem console dusdanig geconfigureerd is dat standaard systeem meldingen hierop getoond worden. Deze meldingen worden geprint bovenop het commando of bestand waarmee de gebruiker op dat moment aan het werk is waardoor het lastiger is om geconcentreerd hierop te werken. Standaard wordt &os; geconfigureerd met meerdere virtuele consoles waarop commando's ingegeven kunnen worden. Elke virtuele console heeft zijn eigen login prompt en shell. Daarnaast is het makkelijk om te wisselen tussen de diverse virtuele consoles. In essentie geeft dit de gebruiker op de command line dezelfde mogelijkheden als het opstarten van een grafische omgeving en daarin meerdere schermen te openen. De toetscombinatie AltF1 tot en met AltF8 zijn gereserveerd door &os; om te kunnen wisselen tussen virtuele consoles. Gebruik AltF1 om te wisselen naar de systeem console (ttyv0), AltF2 om de eerste virtuele console te gebruiken (ttyv1), AltF3 om de tweede virtuele console te gebruiken (ttyv2), etc. Wanneer er gewisseld wordt van de ene console naar de - andere, regelt &os; dit. Dat resulteert in een illusie van - het hebben van meerdere virtuele schermen en toetsenborden - die kunnen worden gebruikt om commando's binnen &os; te - starten. De programma's die worden gelanceerd in de ene - virtuele console stoppen niet zodra de gebruiker wisselt naar - een andere virtuele console. + andere, regelt &os; het scherm de uitvoer. Dat resulteert in + een illusie van het hebben van meerdere virtuale schermen en + toetsenborden die kunnen worden gebruikt om commando's binnen + &os; te starten. De programma's die worden gelanceerd in de + ene virtuele console stoppen niet zodra de gebruiker wisselt + naar een andere virtuele console. Voor een technische beschrijving van de &os; consoles en keyboard drivers wordt verwezen naar de &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; en &man.kbdcontrol.1; handleidingen. # naam getty type status commentaar # -ttyv0 "/usr/libexec/getty Pc" cons25 on secure +ttyv0 "/usr/libexec/getty Pc" xterm on secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv1 "/usr/libexec/getty Pc" xterm on secure +ttyv2 "/usr/libexec/getty Pc" xterm on secure +ttyv3 "/usr/libexec/getty Pc" xterm on secure +ttyv4 "/usr/libexec/getty Pc" xterm on secure +ttyv5 "/usr/libexec/getty Pc" xterm on secure +ttyv6 "/usr/libexec/getty Pc" xterm on secure +ttyv7 "/usr/libexec/getty Pc" xterm on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure Om een virtuele console uit te schakelen kan er een commentaar teken worden geplaatst aan het begin van de regel (#) die de virtuele console aanduidt. Om bijvoorbeeld de hoeveelheid virtuele consoles terug te brengen van acht naar vier moet er een # aan het begin van de laatste vier regels geplaatst worden welke de virtuele consoles ttyv5 tot en met ttyv8 aangeven. Commentarieer niet de systeem console uit (ttyv0). Let op dat de laatste virtuele console ttyv8 wordt gebruikt om toegang te krijgen tot de grafische omgeving, mits &xorg; geinstalleerd is en geconfigureerd zoals beschreven in . Een uitgebreide beschrijving van elke kolom in dit bestand en alle beschikbare opties voor virtuele consoles kunnen worden gevonden in de &man.ttys.5; handleiding. Single-user mode Het &os; boot menu levert een optie gelabeld Boot Single User. Als deze optie geselecteerd is zal het systeem opstarten in een speciale modus die bekend staat als single-user modus. Deze modus wordt vaak gebruikt om een systeem te herstellen die niet opstart of om het root wachtwoord opnieuw in te stellen wanneer deze niet langer bekend is. In single-user modus zijn het gebruik van het netwerk en virtuele consoles niet mogelijk. Er is wel volledige root toegang tot het systeem mogelijk, en standaard is hiervoor het root wachtwoord niet benodigd. Om deze redenen is het nodig om fysieke toegang tot het keyboard nodig om in deze modus op te kunnen starten. Ook is het nodig om te bepalen wie er toegang hebben tot het keyboard in verband met de beveiliging van &os;. De instellingen van de single-user modus staan in /etc/ttys: # name getty type status commentaar # # Als een console gemarkeerd is als "insecure", zal het init script om het root-wachtwoord # vragen wanneer het in single-user mode komt. console none unknown off secure Standaard wordt deze instelling ingesteld op secure. Er wordt daarmee vanuit gegaan dat de personen die fysieke toegang hebben tot het toetsenbord er of niet toe doen of beschermd wordt door fysieke toegangs beveiliging. Als deze instelling wordt aangepast naar insecure wordt aangenomen dat de omgeving zelf onveilig is omdat iedereen toegang heeft tot het keyboard. Wanneer deze regel wordt aangepast naar insecure> zal &os; vragen om het root wachtwoord zodra een gebruiker aangeeft op te willen starten in single-user modus. Pas op als dit wordt veranderd in insecure. Als het wachtwoord van de gebruiker root zoek is, wordt het opstarten in single-user modus lastig. Het is nog steeds mogelijk, maar het is vrij lastig voor - iemand die onvoldoende van het &os; opstart proces weet. + iemand die onvoldoende van het &os; opstart proces + weet. Het wijzigen van de console video mode De &os; standaard video mode kan worden gewijzigd in 1024x768, 1280x1024, of een van de vele andere formaten die - ondersteund worden door de grafische kaart en monitor. Laad de - module VESA om gebruik te maken van de - verschillende video modes: + ondersteund worden door de grafische kaart en monitor. + Laad de module VESA om gebruik te maken + van de verschillende video modes: &prompt.root; kldload vesa Kijk daarna welke video modes er ondersteund worden door de hardware door gebruik te maken van de &man.vidcontrol.1; handleiding. Om een overzicht te krijgen van de ondersteunde video modes moet het volgende ingevoerd worden: &prompt.root; vidcontrol -i mode Het resultaat van dit commando is een lijst van video modes welke ondersteund worden door de hardware. Hierna kan de nieuwe video mode gekozen worden door de mode te specificeren door gebruik te maken van &man.vidcontrol.1; als de root gebruiker: &prompt.root; vidcontrol MODE_279 Als de nieuwe video mode acceptabel is, kan dit permanent ingesteld worden door het volgende in /etc/rc.conf te zetten: allscreens_flags="MODE_279" Gebruikers en basis gebruikers beheer Binnen &os; is het mogelijk met meerdere gebruikers tegelijkertijd gebruik te maken van de computer. Terwijl de ene gebruiker voor het scherm kan zitten en gebruik maakt van het toetsenbord, kunnen meerdere gebruikers op het systeem inloggen via het netwerk. Om gebruik te kunnen maken van het systeem heeft elke gebruiker zijn eigen account nodig. Dit hoofdstuk beschrijft: De verschillende type gebruikersaccounts op een &os; systeem. Hoe gebruikers accounts worden toegevoegd, verwijderd en aangepast. Hoe er limieten op beschikbare bronnen kunnen worden geplaatst en hoe deze gebruikt kunnen worden door gebruikers en groepen. Hoe groepen aangemaakt kunnen worden en hoe gebruikers kunnen worden toegevoegd aan groepen. Type accounts - Omdat alle toegang tot het &os; systeem wordt gecontroleerd - door accounts en alle processen gestart worden door - gebruikers, is het hebben van gebruikersbeheer + Omdat alle toegang tot het &os; systeem wordt + gecontroleerd door accounts en alle processen gestart worden + door gebruikers, is het hebben van gebruikersbeheer belangrijk. Er zijn drie typen accounts: systeem accounts, gebruiker accounts, en het super-user account. Systeem accounts accounts systeem Systeem accounts worden gebruikt om diensten zoals DNS, e-mail en webservers te draaien. De reden hiervoor is beveiliging; als alle diensten onder de super-user zouden draaien, zou er geen beveiliging mogelijk zijn. accounts> daemon accounts operator Voorbeelden van systeem accounts zijn: daemon, operator, bind, news, en www. accounts nobody nobody is het generieke niet gepriviligeerde account. Echter, als er meer diensten nobody gebruiken zal de waarde en beveiliging hiervan afnemen. Gebruikersaccounts accounts gebruikers Gebruikersaccounts worden toegewezen aan echte mensen en worden gebruikt om in te loggen op het systeem. Elke persoon met toegang zou een eigen unieke gebruikersaccount moeten hebben. Dit stelt de administrator in staat om te bepalen wie wat aan het doen is en voorkomt dat de ene gebruiker de instellingen van de andere gebruiker kan aanpassen. Elke gebruiker kan zijn eigen omgeving instellen naar wens. Hieronder vallen het gebruik van een standaard shell, editor, toetscombinaties en taal instellingen. Elk gebruikers account op een &os; systeem heeft bepaalde informatie gekoppeld: Gebruikersnaam De gebruikersnaam wordt ingevoerd in de login: prompt. Elke gebruikersnaam moet een unieke naam hebben. Er zijn een aantal regels waarmee een geldige gebruikersnaam gekozen kan worden, deze zijn gedocumenteerd in de &man.passwd.5; handleiding. Er wordt aangeraden om gebruikersnamen te gebruiken die bestaan uit acht of minder, kleine karakters zodat er achterwaartse ondersteuning kan zijn voor producten. Wachtwoord Elk account heeft zijn eigen wachtwoord Gebruikers ID (UID) Het gebruikers ID (UID) is een nummer welke een gebruiker uniek identificeert op een &os; systeem. Commando's welke het toestaan dat er een gebruikersnaam wordt gebruikt, zullen deze eerst converteren naar het UID. Het is aangeraden om een UID te kiezen onder de 65535 in verband met compatibiliteits problemen met sommige software. Groeps ID (GID) Het groeps ID (GID) is een nummer welke de primaire groep identificeert waar de gebruiker toe behoord. Groepen zijn mechanismen om toegang te verlenen tot bronnen via het GID van een gebruiker in plaats van het UID. Dit kan de grootte van configuratie bestanden drastisch verlagen en stelt de gebruiker in staat om lid te zijn van meer dan één groep. Het is aangeraden om een GID te kiezen onder de 65535, omdat hoger mogelijk compatibiliteiteits problemen veroorzaken met sommige software. Login klasse Login klasses zijn een extentie op het groepsmechanisme welke additionele flexibiliteit geeft bij het aanpassen van het systeem naar de gebruikers. Login klasses worden verder besproken in . Wijzigingstijd wachtwoord Standaard vervallen wachtwoorden niet. Dit kan wel ingesteld worden per gebruiker, waardoor een of meerdere gebruikers na het verlopen van een vooraf bepaalde tijd, de gebruiker wordt gedwongen om het wachtwoord te veranderen. Account vervaldatum Standaard laat &os; geen accounts na verloop van tijd vervallen. Wanneer er accounts gemaakt worden welke een korte levensduur kennen zoals een student op een school, kan de vervaldatum worden ingesteld met &man.pw.8;. Nadat de vervaldatum verstreken is kan er niet meer worden ingelogd maar blijven de directories en bestanden onder het account beschikbaar. Volledige naam van de gebruiker De gebruikersnaam identificeert de gebruiker uniek binnen &os;, maar dit is niet per definitie ook de daadwerkelijke volledige naam van de gebruiker. Net als bij commentaar kan deze informatie spaties, hoofdletters en meer dan 8 karakters bevatten. Home directory De home directory is het volledige pad naar een directory op het systeem. Dit is het startpunt van een gebruiker wanneer deze aanlogt. Een standaard conventie is dat deze geplaatst worden in - /home/gebruikersnaam of in - /usr/home/gebruikersnaam. Elke + /home/gebruikersnaam of in + /usr/home/gebruikersnaam. Elke gebruiker bewaard zijn eigen bestanden en directories in de eigen home directory. Shell van de gebruiker De shell levert de standaard werkomgeving op voor een gebruiker wanneer deze interactie heeft met het systeem. Er zijn veel verschillende soorten shells en ervaren gebruikers hebben allen hun eigen voorkeuren welke terug kunnen komen in de account instellingen. Het superuser account accounts superuser (root) Het superuser account, vaak genoemd root, wordt gebruikt om het systeem te managen zonder limitatie van privileges. Om deze reden wordt het dagelijks gebruik van dit account zoals het versturen en ophalen van e-mail, algemeen gebruik van het systeem en programmeren afgeraden. De superuser, in tegenstellig tot andere accounts, kan opereren zonder limitaties en bij misbruik van dit account kan dat leiden tot spectaculaire problemen. Gebruikeraccounts zijn niet in staat om het systeem per ongeluk stuk te maken, dus het wordt aangeraden om in te loggen als gewone gebruiker en alleen superuser te worden als dat nodig is. Controleer alle op te voeren commando's als de superuser dubbel of zelfs driedubbel, omdat een extra spatie of ontbrekend karakter kan leiden tot permanente databeschadigingen. Er zijn een aantal manieren om superuser privileges te verkrijgen. Ondanks dat men in zou kunnen loggen als root wordt dit sterk afgeraden. In plaats daarvan kan &man.su.1; gebruikt worden om superuser te worden. Als - gebruikt wordt als argument voor dit commando zal de gebruiker ook de superuser omgeving geladen krijgen. De gebruiker die dit commando wilt gebruiken moet in de wheel groep vermeld staan anders zal dit commando falen. De gebruiker moet ook op de hoogte zijn van het wachtwoord voor het root account. In dit voorbeeld wordt de gebruiker alleen superuser zodat make install gestart kan worden, omdat deze stap superuser rechten nodig heeft. Zodra het commando uitgevoerd is typt de gebruiker exit om het superuser account te verlaten en terug te keren naar de reguliere privileges behorende bij het gebruikers account. Installeren van een programma als superuser &prompt.user; configure &prompt.user; make &prompt.user; su - Password: &prompt.root; make install &prompt.root; exit &prompt.user; Het ingebouwde &man.su.1; framework werkt prima voor een enkel systeem of kleine netwerken met een systeem beheerder. Een alternatief is het installeren van de security/sudo package of port. Deze software kan activiteiten logging doen en stelt de administrator in staat om te configureren welke gebruikers welke commando's kunnen starten als de superuser. Accounts beheren accounts aanpassen &os; levert een variateit aan verschillende commando's waarmee gebruikeraccounts beheerd kunnen worden. De meest voorkomende commando's worden samengevat in: gevolgd door een aantal voorbeelden voor het gebruik hiervan. Zie de handleiding van elk commando voor meer details en gebruikersvoorbeelden. Tools om gebruikeraccounts te beheren Commando Samenvatting &man.adduser.8; De aangeraden CLI tool om nieuwe gebruikers toe te voegen. &man.rmuser.8; De aangeraden CLI tool om gebruikers te verwijderen. &man.chpass.1; Een flexibele tool om de gebruikersdatabase aan te passen. &man.passwd.1; De aangeraden CLI tool om gebruikers wachtwoorden aan te passen. &man.pw.8; Een krachtige en flexibele tool om alle aspecten van een gebruikersaccount aan te passen.
<command>adduser</command> accounts toevoegen adduser /usr/share/skel skeleton directory De aangeraden applicatie om nieuwe gebruikers toe te voegen is &man.adduser.8;. Wanneer er een nieuwe gebruiker wordt toegevoegd, past deze applicatie automatisch /etc/passwd en /etc/group aan. De applicatie maakt ook meteen de home directorie aan voor de nieuwe gebruiker, kopieert de standaard configuratie bestanden uit /usr/share/skel en kan optioneel de nieuwe gebruiker een email sturen met daarin een welkomst boodschap. Deze applicatie moet gestart worden als de superuser. De &man.adduser.8; applicatie is interactief en loopt door een aantal stappen heen om een nieuw account aan te kunnen maken. Zoals te zien is in moet ofwel de gegevens worden opgevoerd, of op Enter worden gedrukt om de standaard waarden te accepteren, welke getoond wordt in vierkante haken. In dit voorbeeld wordt de gebruiker uitgenodigd voor de wheel groep, welke de gebruiker in staat stelt om superuser te worden door middel van &man.su.1;. Zodra dit afgerond is zal de applicatie vragen of er nog een nieuwe gebruiker aangemaakt moet worden of dat het programma gestopt kan worden. Het toevoegen van een gebruiker op &os; &prompt.root; adduser Username: jru Full name: J. Random User Uid (Leave empty for default): Login group [jru]: Login group is jru. Invite jru into other groups? []: wheel Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jru]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : jru Password : **** Full Name : J. Random User Uid : 1001 Class : Groups : jru wheel Home : /home/jru Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! &prompt.root; Omdat het wachtwoord niet getoond wordt tijdens het invoeren is het aangeraden om deze zorgvuldig op te voeren tijdens het aanmaken van het gebruikers account. <command>rmuser</command> rmuser accounts verwijderen Om een gebruiker geheel van het systeem te verwijderen moet de applicatie &man.rmuser.8; worden gestart als de superuser. Dit commando voert de volgende stappen uit: Verwijderd de &man.crontab.1; van de gebruiker, mits deze bestaat. Verwijderd alle &man.at.1; opdrachten die toebehoren aan de gebruiker. Stopt alle processen die eigendom zijn van de gebruiker. Verwijdert de gebruiker uit het lokale wachtwoord database bestand. Verwijderd de home directorie van de gebruiker, mits deze eigendom is van de gebruiker. Verwijderd de binnengekomen emails van de gebruiker uit /var/mail. Verwijderd alle bestanden van de gebruiker uit de tijdelijke bestandsopslag directories zoals /tmp. Als laatste wordt de gebruikersnaam verwijderd uit alle groepen waarin de gebruikersnaam voorkomt. Dit gebeurd in het /etc/group bestand. Als de groep daarmee leeg raakt en dezelfde naam heeft als de gebruikersnaam wordt deze verwijderd. Dit vult de per gebruiker unieke groepen aan vanuit &man.adduser.8; &man.rmuser.8; kan niet worden gebruikt om het superuser account te verwijderen, omdat dat nagenoeg altijd tot gigantische problemen zal leiden. Standaard wordt de interactieve modus gebruikt zoals te zien is in het volgende voorbeeld: Interactief accounts verwijderen met <command>rmuser</command> &prompt.root; rmuser jru Matching password entry: jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh Is this the entry you wish to remove? y Remove user's home directory (/home/jru)? y Removing user (jru): mailspool home passwd. &prompt.root; <command>chpass</command> chpass Elke gebruiker kan gebruik maken van de applicatie &man.chpass.1; om de standaard shell en persoonlijke informatie die gekoppeld is aan het account aan te passen. De superuser kan deze applicatie gebruiken om additionele account informatie aan te passen voor elke gebruiker. Als de applicatie opgestart wordt zonder argumenten, naast een eventuele gebruikersnaam zal &man.chpass.1; een editor tonen met daarin de gebruikers informatie. Zodra de gebruiker de editor afsluit zal de nieuwe informatie worden opgeslagen in de gebruikers database. De applicatie zal bij het afsluiten vragen om het wachtwoord van de gebruiker, tenzij de applicatie gestart was als de superuser. In heeft de superuser het volgende getypt: chpass jru en bekijkt nu de velden die aangepast kunnen worden voor deze gebruiker. Als jru dit commando start zullen alleen de laatste zes velden worden getoond en beschikbaar voor bewerken, dit wordt getoond in . Gebruik maken van &man.chpass.1; als de superuser #Changing user database information for jru. Login: jru Password: * Uid [#]: 1001 Gid [# or name]: 1001 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jru Shell: /usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information: Gebruik maken van &man.chpass.1; als gewone gebruiker #Changing user database information for jru. Shell: /usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information: - &man.chfn.1; en &man.chsh.1; zijn links naar + De commando's &man.chfn.1; en &man.chsh.1; zijn links naar &man.chpass.1; net als &man.ypchpass.1;, &man.ypchfn.1; en &man.ypchsh.1;. Omdat NIS ondersteuning impliciet is, is het specificeren van yp voor het command niet nodig. Hoe NIS geconfigureerd moet worden wordt uitgelegd in . <command>passwd</command> passwd accounts wachtwoord wijzigen Elke gebruiker kan gemakkelijk zijn wachtwoord wijzigen door middel van &man.passwd.1;. Om te voorkomen dat er per ongeluk of ongeauthoriseerde wijzigingen plaatsvinden zal dit commando eerst vragen om het huidige wachtwoord van de gebruiker voor er een nieuw wachtwoord ingesteld kan worden: Wijzigen van het wachtwoord &prompt.user; passwd Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done De superuser kan het wachtwoord van elke gebruiker instellen door de gebruikersnaam te specificeren met het startenv an &man.passwd.1;. Wanneer deze applicatie wordt gestart als de superuser zal er niet worden gevraagd om het huidige wachtwoord. Dit geeft de mogelijkheid om het wachtwoord te veranderen als de gebruiker het wachtwoord niet meer weet. Het wijzigen van het wachtwoord van een andere gebruiker door de superuser &prompt.root; passwd jru Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done Net als met &man.chpass.1;, is &man.yppasswd.1; een link naar &man.passwd.1;, dus NIS werkt met beide commando's. <command>pw</command> pw &man.pw.8; is een CLI applicatie om gebruikers en groepen aan te maken, te verwijderen, aan te passen en te tonen. De applicatie fungeert als een front end voor de systeem gebruikers en groepen bestanden. &man.pw.8; heeft een erg krachtige set van command line opties die het uitermate geschikt maken voor gebruik in shell scripts, echter nieuwe gebruikers kunnen deze applicatie lastiger vinden dan de andere commando's welke gepresenteerd zijn in deze sectie.
- - Gebruikers limiteren - - - gebruikers limiteren - - - - accounts - limiteren - - - &os; levert een administrator een aantal manieren om - de hoeveelheid systeem bronnen te limiteren voor individueel - gebruik. Deze limitaties worden besproken in twee delen: - disk quotas en andere bron limitaties. - - - quotas - - - - gebruikers limiteren - quotas - - - - disk quotas - - - Disk quotas limiteren de hoeveelheid disk ruimte welke - beschikbaar is voor gebruikers en leveren een snelle manier - om dit gebruik te controleren zonder dat dit elke keer - berekend moet worden. Quotas worden behandeld in - . - - De andere bron limitaties bevatten manieren om de - hoeveelheid CPU, memory en andere bronnen die een gebruiker - mag verbruiken. Deze worden gedefinieerd door middel van de - login klassen en hieronder behandeld. - - - /etc/login.conf - - - Login klassen worden gedefinieerd in - /etc/login.conf en in detail beschreven - in &man.login.conf.5;. Elk gebruikers account wordt - toegewezen aan een login klasse, default - wordt standaard gebruikt. Elke login klasse heeft een set - van login mogelijkheden geassocieerd. Een login mogelijkheid - is een name=value paar waar - name een welbekende identificatie - is en value een willekeurige string - welke zoals benodigd wordt verwerkt naar aanleiding van de - name. Het opzetten van login - klasses en mogelijkheden is vrij recht-toe recht-aan en - beschreven in &man.login.conf.5;. - - - &os; leest meestal niet direct het - /etc/login.conf bestand maar in plaats - daarvan de /etc/login.conf.db - database welke snellere opzoek mogelijkheden biedt. Zodra - het /etc/login.conf bestand wordt - bewerkt moet het /etc/login.conf.db - bestand worden bijgewerkt door middel van het volgende - commando: - - &prompt.root; cap_mkdb /etc/login.conf - - - Bron limitaties verschillen van de standaard login - mogelijkheden op twee manieren. Als eerste is er voor elke - limitatie een soft en een harde limiet. Een soft limiet kan - worden ingesteld door de gebruiker of een applicatie, maar kan - niet hoger worden ingesteld dan de harde limiet. De harde - limitatie kan verlaagd worden door een gebruiker, maar kan - alleen verhoogd worden door de superuser. Als tweede is - het zo dat bron limitaties gelden per proces voor een - specifieke gebruiker en niet voor de gebruiker in zijn - geheel. Deze verschillen zijn aanwezig door de verschillende - manieren van het gebruik van limitaties, dit is geen - implementatie beperking van het login mogelijkheden - framework., - - Hieronder staan de meest voorkomende bron limitaties. De - rest van de limitaties tezamen met andere login mogelijkheden - kunnen worden teruggevonden in &man.login.conf.5;. - - - - coredumpsize - - - De limitatie over de groote van een coredump bestand - - coredumpsize - - gegenereerd door een programmais ondergeschikt aan andere - limitaties - - gebruikers limiteren - coredumpsize - - over de disk ruimte, zoals filesize - of disk quotas. Deze limiet wordt vaak als een minder - zware methode om de disk consumptie te controleren. - Omdat gebruikers niet zelf een coredump genereren en - deze meestal niet verwijderen, kan deze instelling - voorkomen dat de disk ruimte voor de gebruiker op is - als er een grote applicatie gestart wordt en deze - crashed. - - - - - cputime - - - De maximale hoeveelheid CPU - - cputime - - - - gebruikers limiteren - cputime - - tijd een proces van een gebruiker mag consumeren. - Processen die dit overtreden worden door de kernel - gestopt. - - - Dit is een limitatie op de CPU - tijd die geconsumeerd wordt, - niet als percentage van de CPU zoals getoond in - sommige velden van &man.top.1; en &man.ps.1;. - - - - - - filesize - - - De maximale grootte van een bestand welke - - filesize - - - - gebruikers limiteren - filesize - - eigendom is van de gebruiker. In tegenstelling tot - disk quotas, geldt - deze limiet per individueel bestand en niet voor alle - bestanden welke eigendom zijn van een gebruiker. - - - - - maxproc - - - De maximale hoeveelheid processen - - maxproc - - - - gebruikers limiteren - maxproc - - welke een gebruiker kan hebben draaien. Dit is - inclusief voor en achtergrond processen. Dit - limiet mag niet groter zijn dan de systeem limiet - gespecificeerd door de kern.maxproc - &man.sysctl.8;. Als deze limiet te klein is kan dat - de productiviteit van de gebruiker beperken omdat het - vaak zo is dat een gebruiker meermalen is ingelogd of - door uitvoer door middel van pipelines. Sommige - processen zoals het compileren van een groot programma - kunnen veel processen opstarten. - - - - - memorylocked - - - De maximale hoeveelheid geheugen - - memorylocked - - - - gebruikers limiteren - memorylocked - - dat een proces kan vragen om in het hoofdgeheugen - gelocked te worden door gebruik te maken van - &man.mlock.2;. Sommige systeem kritische programma's - zoals &man.amd.8;, locken zichzelf in het geheugen - zodat als de machine begint te swappen, ze niet - meehelpen aan het stuk maken van de disk. - - - - - memoryuse - - - De maximale hoeveelheid geheugen - - memoryuse - - - - gebruikers limiteren - memoryuse - - dat een proces mag consumeren op elk willekeurig moment. - Dit bevat zowel het standaard geheugen als het gebruik - van swap. Dit is geen vangnet voor het allesomvattend - beperken van het geheugen, maar het is een goed - begin. - - - - - openfiles - - - De maximale hoeveelheid bestanden welke een proces - geopend kan hebben - - openfiles - - - - gebruikers limiteren - openfiles - . - In &os; worden bestanden gebruikt om sockets en IPC - kanalen te beschrijven, deze waarde mag dus niet te laag - worden ingesteld. De systeem-wijde limitatie hiervoor - wordt gedefinieerd door de - kern.maxfiles &man.sysctl.8;. - - - - - sbsize - - - De maximale hoeveelheid netwerk geheugen ofwel - mbufs - - sbsize - - - - gebruikers limiteren - sbsize - - die een gebruiker mag verbruiken. Dit kan in zijn - algemeenheid gebruikt worden om de hoeveeheid - netwerk communicatie te limiteren. - - - - - stacksize - - - De maximale grootte die een proces op de - stack kan benutten - - stacksize - - - - gebruikers limiteren - stacksize - . - Dit alleen is niet voldoende om de hoeveelheid geheugen - die een applicatie mag gebruiken. Het wordt aangeraden - om deze beperking in combinatie met andere beperkingen - te gebruiken. - - - - - Er zijn een aantal belangrijke dingen om te onthouden - wanneer bron limieten worden ingesteld. Hieronder volgen - enkele algemene tips, suggesties en willekeurig - commentaar. - - - - Processen die gestart worden bij het opstarten van - het systeem door /etc/rc zijn - toegewezen aan de daemon login - klasse. - - - - Ondanks dat het /etc/login.conf - bestand welke met het systeem geleverd wordt een goede - bron is voor redelijke limieten voor de meeste zaken, - kan het zijn dat ze niet voor elk systeem het meest - optimaal zijn. Door een limiet te hoog in te stellen - kan deze mogelijk misbruikt worden, terwijl een te laag - ingestelde limiet mogelijk de productiviteit - verlaagd. - - - - Gebruikers van &xorg; - hebben waarschijnlijk meer bronnen nodig dan andere - gebruikers. &xorg; alleen - al veel bronnen in gebruik, maar bemoedigd ook het gebruik - van meerdere applicaties tegelijkertijd door - gebruikers. - - - - Veel limieten worden toegepast op individuele - processen en niet de gebruiker in totaal. Bijvoorbeeld - het zetten van openfiles naar 50, - betekend dat elk proces dat de gebruiker start maximaal - 50 bestanden mag openen. De totale hoeveelheid bestanden - die een gebruiker mag openen is de waarde van - openfiles vermenigvuldigd met de - waarde van maxproc. Dit is ook van - toepassing op geheugen gebruik. - - - - Voor meer informatie over bron limieten en login - klasses en mogelijkheden in het algemeen wordt verwezen - naar de &man.cap.mkdb.1;, &man.getrlimit.2; en - &man.login.conf.5; handleidingen. - - Groepen beheren groups - /etc/groups - accounts groups Een groep is een lijst van gebruikers. Een groep wordt geidentificeerd door zijn groepsnaam en GID. In &os; gebruikt de kernel het UID van een proces en de lijst van bijbehorende groepen om te bepalen wat het proces mag doen. Veelal is het zo dat het GID van een gebruiker of proces, het de eerste groep uit de lijst is. De koppeling tussen de groepsnaam en het GID wordt gedaan in /etc/group. Dit is een plat tekst bestand met een vier velden gescheiden door een dubbele punt. Het eerste veld is de groepsnaam, het tweede veld is het versleutelde wachtwoord, het derde veld is het GID en het vierde veld is een door komma's gescheiden lijst van gebruikers. Voor een complete beschrijving van de syntax wordt verwezen naar de &man.group.5; handleiding. De superuser kan /etc/group aanpassen in een tekst editor. Als alternatief kan &man.pw.8; gebruikt worden om groepen toe te voegen en te bewerken. Bijvoorbeeld om een groep toe te voegen genaamd teamtwo en daarna te bevestigen dat deze aangemaakt is: Het toevoegen van een groep door middel van &man.pw.8; &prompt.root; pw groupadd teamtwo &prompt.root; pw groupshow teamtwo teamtwo:*:1100: In dit voorbeeld is 1100 het GID van teamtwo. Op dit moment heeft teamtwo geen leden. Dit commando voegt jru toe als lid van teamtwo. Toevoegen van gebruikers aan een nieuwe groep door middel van &man.pw.8; &prompt.root; pw groupmod teamtwo -M jru &prompt.root; pw groupshow teamtwo teamtwo:*:1100:jru Het argument van is een komma gescheiden lijst van gebruikers die toegevoegd moeten worden aan de (nieuwe) lijst of om de huidige lijst bij te werken. Voor de gebruiker is dit groepslidmaatschap anders dan zijn primaire groepslidmaatschap. Dit betekend dat de gebruiker niet naar voren komt als lid van een groep wanneer gebruikt wordt met &man.pw.8;, maar wel naar voren komt als gebruik gemaakt wordt van &man.id.1; of een soort gelijke tool. Wanneer &man.pw.8; wordt gebruikt om een gebruiker toe te voegen aan een groep wordt alleen /etc/group aangepast en wordt er niet gekeken naar /etc/passwd. Toevoegen van een nieuwe gebruiker aan een groep door middel van &man.pw.8; &prompt.root; pw groupmod teamtwo -m db &prompt.root; pw groupshow teamtwo teamtwo:*:1100:jru,db In dit voorbeeld is het argument van een komma gescheiden lijst van gebruikers welke toegevoegd moeten worden aan de groep. In tegenstelling tot het voorgaande commando worden deze gebruikers toegevoegd en wordt de bestaande lijst niet aangepast. - + Gebruik maken van &man.id.1; om groeplidmaatschappen te bepalen. - + &prompt.user; id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) - + In dit voorbeeld is jru lid van de groepen jru enteamtwo. Voor meer informatie over dit commando en het formaat van /etc/group wordt verwezen naar de &man.pw.8; en &man.group.5; handleidingen.
Rechten UNIX In &os; heeft elk bestand en directorie heeft een geassocieerde set van permissies en diverse tools zijn - beschikbaar om om deze permissies in te zien en aan te passen. + beschikbaar om deze permissies in te zien en aan te passen. Begrijpen hoe permissies werken zijn noodzakelijk om ervoor te zorgen dat de gebruikers in staat zijn om bestanden die ze nodig hebben te kunnen benaderen. Daarnaast beschermen de permissies om bestanden waar de gebruikers niet bij behoren te kunnen af te schermen, zoals bij bestanden die het besturingssysteem gebruikt of die van andere gebruikers zijn. Deze sectie behandelt de traditionele &unix; permissies zoals gebruikt binnen &os;. Voor meer diepgang en diepere toegangs controle wordt verwezen naar . In &unix; worden de basis permissies toegewezen via drie typen toegang: lezen, schrijven en uitvoeren. Deze types worden gebruikt om te kunnen bepalen of de bestandseigenaar, de groep, of de anderen toegang hebben tot het bestand. De lezen, schrijven en uitvoeren permissies kunnen worden weergegeven door de letters r, w en de x. Ze kunnen ook worden weergegeven als binaire cijfers, omdat elke permissie ofwel ingeschakeld is, ofwel uitgeschakeld (0). Wanneer deze worden getoond als cijfer is de volgorde altijd rwx waarbij r een ingeschakelde waarde heeft van 4, w een ingeschakelde waarde heeft van 2 en r een ingeschakelde waarde heeft van 1. Tabel 4.1 vat de mogelijke numerieke en alfabetische opties samen. Wanneer de Directory Listing kolom gelezen wordt, wordt een - gebruikt om te tonen dat de permissie uitgeschakeld is. Rechten Bestandsrechten &unix; permissies Waarde Recht Maprecht 0 Niet lezen, niet schrijven, niet uitvoeren --- 1 Niet lezen, niet schrijven, uitvoeren --x 2 Niet lezen, schrijven, niet uitvoeren -w- 3 Niet lezen, schrijven, uitvoeren -wx 4 Lezen, niet schrijven, niet uitvoeren r-- 5 Lezen, niet schrijven, uitvoeren r-x 6 Lezen, schrijven, niet uitvoeren rw- 7 Lezen, schrijven, uitvoeren rwx
&man.ls.1; mappen De optie kan gebruikt worden met &man.ls.1; om een lange lijst met de inhoud van een map te zien die een kolom heeft met informatie over bestandsrechten voor de eigenaar, groep en de rest. ls -l in een willekeurige map kan het volgende laten zien: &prompt.user; ls -l total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt Het eerste (meest linkse) karakter geeft aan of dit een regulier bestand is, een map, een speciaal karakter component(!), een socket of een andere pseudo-file component. In dit geval betekent de - dat het een regulier bestand is. De volgende drie karakters, rw- in dit voorbeeld, geven de rechten voor de eigenaar van het bestand. De drie karakters r-- erna geven de rechten van voor de groep van het bestand. De overige drie karakters r-- tonen de rechten voor alle overige gebruikers. Een streepje betekent dat de rechten uitgeschakeld zijn. In het geval van dit bestand zijn de rechten zo ingesteld dat de eigenaar kan lezen en schrijven naar het bestand, de groep het bestand kan lezen, en alle overige gebruikers kunnen ook het bestand lezen. Volgens de tabel hierboven worden de rechten 644, waar de cijfers de drie stukjes van de rechten aangeven. Hoe controleert het systeem rechten voor apparaten? &os; behandelt de meeste hardware apparaten als bestanden die door programma's kunnen worden geopend en gelezen, en waar data naar toe kan worden geschreven, net zoals elk ander bestand. Deze speciale apparaat bestanden worden bewaard in de map /dev. Mappen worden ook behandeld als bestanden. Ze hebben lees, schrijf en uitvoerbare rechten. De uitvoerbare vlag voor een map heeft iets andere betekenis dan die voor gewone bestanden. Als een map als uitvoerbaar gemarkeerd is, betekent dit dat er naar deze map gewisseld kan worden met &man.cd.1;. Dit betekent ook dat in de map bestanden benaderd kunnen worden waarvan de naam bekend is. Afhankelijk van de rechten op het bestand zelf. Om een inhoudsopgave te maken van een map moet de lees permissie ingeschakeld zijn. Om bestanden te kunnen verwijderen waarvan de naam bekend is, moet de schrijf permissie en de uitvoerbare permissie op de map ingesteld zijn. - Er zijn meer rechtenvlaggen, maar die worden slechts gebruikt - in speciale gevallen, zoals bij setuid binaries en sticky mappen. + Er zijn meer rechtenvlaggen, maar die worden slechts + gebruikt in speciale gevallen, zoals bij setuid binaries en + sticky mappen. Meer informatie over bestandsrechten en hoe die aangepast kunnen worden staat in &man.chmod.1;. Symbolische rechten Tom Rhodes Bijgedragen door rechten symbolisch Symbolische rechten maken gebruik van karakters in plaats van octale getallen om permissies toe te wijzen aan bestanden of directories. Symbolische rechten gebruiken de opbouw: (wie) (actie) (permissies), de volgende waarden zijn hierbij beschikbaar: Optie Letter Vertegenwoordigt (wie) u Gebruiker (wie) g Groepseigenaar (wie) o Overigen (wie) a Iedereen (wereld) (actie) + Rechten toevoegen (actie) - Rechten verwijderen (actie) = Stel deze rechten in (recht) r Lezen (recht) w Schrijven (recht) x Uitvoeren (recht) t Sticky bit (recht) s Verander UID of GID Deze waardes worden gebruikt met &man.chmod.1;, alleen dan met letters in plaats van cijfers. Het volgende commando kan worden gebruikt om overige gebruikers de toegang tot BESTAND te ontzeggen: &prompt.user; chmod go= BESTAND Er kan een door komma's gescheiden lijst geleverd worden als meer dan één wijziging aan een bestand moet worden uitgevoerd. Het volgende commando verwijderd de groeps en - wereld schrijf rechten op + wereld schrijf rechten op FILENAME en voegt uitvoerrechten toe voor iedereen: - &prompt.user; chmod go-w,a+x FILE + &prompt.user; chmod go-w,a+x BESTAND + + &os; bestandsvlaggen Tom Rhodes Geschreven door Naast de bestandsrechten biedt &os; ondersteuning voor bestandsvlaggen. Deze vlaggen bieden een aanvullend beveiligingsniveau en controle over bestanden, maar niet over mappen. Met bestandsvlaggen kan zelfs worden voorkomen dat root - bestanden verwijderd en/of aanpast. + bestanden verwijderd en/of aanpast. Bestandsvlaggen worden gewijzigd met het &man.chflags.1; commando. Om bijvoorbeeld de systeemvlag niet verwijderbaar in te stellen op het bestand file1: &prompt.root; chflags sunlink file1 Om de systeemvlag niet verwijderbaar weer uit te schakelen moet het woord no worden toegevoegd voor : &prompt.root; chflags nosunlink file1 Om de vlaggen op een bestand te kijken moet de vlag gebruikt worden: &prompt.root; ls -lo file1 De uitvoer hoort er ongeveer als volgt uit te zien: -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 Een aantal vlaggen kan alleen ingesteld of verwijderd worden door root. In andere gevallen kan de eigenaar van een bestand vlaggen instellen. Meer informatie voor beheerders staat in &man.chflags.1; en &man.chflags.2;. De <literal>setuid</literal>, <literal>setgid</literal>, en <literal>klevende</literal> toestemmingen + Tom Rhodes Bijgedragen door - + Buiten de toestemmingen die reeds besproken zijn, zijn er - nog drie specifieke instellingen waarvan alle beheerders kennis - dienen te hebben. Dit zijn de setuid, + nog drie specifieke instellingen waarvan alle beheerders + kennis dienen te hebben. Dit zijn de setuid,`` setgid, en sticky toestemmingen. Deze instellingen zijn belangrijk voor sommige &unix;-bewerkingen omdat ze functionaliteit bieden die - normaliter niet aan normale gebruikers wordt gegeven. Om ze te - begrijpen, dient ook het verschil tussen de echte gebruikers-ID - en de effectieve gebruikers-ID opgemerkt te worden. + normaliter niet aan normale gebruikers wordt gegeven. Om ze + te begrijpen, dient ook het verschil tussen de echte + gebruikers-ID en de effectieve gebruikers-ID opgemerkt te + worden. De echte gebruikers-ID is de UID die het proces start of bezit. De effectieve UID is - de gebruikers-ID waaronder het proces draait. Bijvoorbeeld, het - gereedschap &man.passwd.1; draait met de echte gebruikers-ID van - de gebruiker die het wachtwoord verandert; echter, om de + de gebruikers-ID waaronder het proces draait. Bijvoorbeeld, + het gereedschap &man.passwd.1; draait met de echte gebruikers-ID + van de gebruiker die het wachtwoord verandert; echter, om de database met wachtwoorden te manipuleren, draait het met de effectieve ID van root. Dit is wat normale gebruikers in staat stelt om hun wachtwoorden te veranderen zonder de fout Permission Denied te zien. De setuid-toestemming kan aangezet worden door het cijfer - vier (4) voor een toestemmingenverzameling te plaatsen zoals te - zien is in het volgende voorbeeld: + vier (4) voor een toestemmingenverzameling te plaatsen zoals + te zien is in het volgende voorbeeld: &prompt.root; chmod 4755 suidvoorbeeld.sh De toestemmingen op het bestand - suidvoorbeeld.sh dienen er nu als volgt uit - te zien: + suidvoorbeeld.sh dienen + er nu als volgt uit te zien: -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidvoorbeeld.sh Merk op dat s nu onderdeel is van de permissie set welke aangeduid wordt voor de eigenaar en daarmee de uitvoerbare permissie vervangt. Dit stelt applicaties zoals &man.passwd.1; in staat om te functioneren met verhoogde privileges. De nosuid &man.mount.8; optie zal ervoor zorgen dat zulke binaire bestanden zonder klagen zullen falen. Echter deze optie is niet helemaal betrouwbaar omdat er manieren zijn om hieronder uit te komen. Open twee terminals om dit in real-time te zien. Start op het ene het proces passwd als een normale gebruiker. Controleer de procestabel terwijl het op een nieuw wachtwoord wacht en kijk naar de gebruikersinformatie via &man.passwd.1;. In terminal A: Changing local password for trhodes Old Password: In terminal B: &prompt.root; ps aux | grep passwd trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 Ondanks dat &man.passwd.1; als gewone gebruiker gestart wordt, gebruikt deze effectief het UID van root. De setgid-toestemming voert dezelfde functie uit als de setuid-toestemming; behalve dat het de groepsinstellingen verandert. Wanneer een applicatie of gereedschap met deze instelling wordt gedraaid, krijgt het de toestemmingen gebaseerd op de groep die het bestand bezit, niet op de gebruiker die het proces startte. Om de setgid-toestemming op een bestand aan te zetten, dient een voorlopende twee (2) aan het commando &man.chmod.1; gegeven te worden zoals in het volgende voorbeeld: &prompt.root; chmod 2755 sgidvoorbeeld.sh De nieuwe instelling kan zoals hierboven bekeken worden, merk op dat de s nu in het veld bestemd voor de instellingen van de groepstoestemmingen staat: -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidvoorbeeld.sh In deze voorbeelden zal het shellscript niet met een andere EUID of effectief gebruikers-ID draaien, zelfs al is het shellscript uitvoerbaar. Dit is omdat shellscripts geen toegang hebben tot de &man.setuid.2;-systeemaanroepen. De setuid en setgid permissie bits kunnen de beveiliging van het systeem omlaag brengen, omdat er verhoogde privileges mogelijk zijn. Het derde speciale bitje kan echter voor een verbetering van de beveiliging zorgen. Wanneer de sticky bit ingesteld is op een directory, staat het alleen het verwijderen van bestanden toe door de eigenaar van deze bestanden. Dit is bijvoorbeeld handig in directories die door meerdere gebruikers gedeeld worden zoals /tmp en kan daarmee voorkomen dat gebruikers die niet de eigenaar zijn daarin bestanden verwijderen. Om gebruik te maken van deze permissie moet een voorlopende één (1) worden meegegeven. &prompt.root; chmod 1777 /tmp De sticky bit permissie kan nu gezien worden door de t aan het einde van de permissie set: &prompt.root; ls -al / | grep tmp drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
Mappenstructuur mappenstructuur De &os; mappenstructuur is erg belangrijk om het systeem goed te leren kennen. De meest belangrijke map is de rootmap ofwel /. Deze map is de eerste die gekoppeld wordt tijdens het opstarten en bevat het basissysteem dat nodig is om het besturingssysteem gereed te maken voor multi-user taken. De rootmap bevat ook koppelpunten voor elk ander bestandssysteem dat misschien gekoppeld wordt. - Een koppelpunt is een map waar extra bestandssystemen aan het - een bestandssysteem gekoppeld kunnen worden (meestal het root - bestandssysteem). Dit wordt beschreven + Een koppelpunt is een map waar extra bestandssystemen aan + het een bestandssysteem gekoppeld kunnen worden (meestal het + root bestandssysteem). Dit wordt beschreven in . Standaard koppelpunten zijn /usr, /var, /tmp, /mnt en /cdrom. Naar deze mappen wordt meestal verwezen in /etc/fstab, een tabel met bestandssystemen en koppelpunten ter referentie voor het systeem. De meeste bestandssystemen in /etc/fstab worden automatisch gekoppeld tijdens het opstarten door het script &man.rc.8;, behalve als de optie gedefinieerd is. Details staan beschreven in . Een complete beschrijving over het bestandssysteem staat in &man.hier.7;. De volgende tabel laat een overzicht zien van de meest voorkomende mappen. Map Omschrijving / Rootmap van het bestandssysteem. /bin/ Gebruikersapplicaties, belangrijk voor zowel single user als multi-user omgevingen. /boot/ Programma's en instellingenbestanden die gebruikt worden tijdens het opstarten van het besturingssysteem. /boot/defaults/ Bestanden met standaardinstellingen voor opstarten;, zie &man.loader.conf.5;. /dev/ Apparaatnodes;, zie &man.intro.4;. /etc/ Bestanden met systeeminstellingen en scripts. /etc/defaults/ Bestanden met standaard systeeminstellingen;, zie &man.rc.8;. /etc/mail/ Instellingenbestanden voor mail transport programma's zoals &man.sendmail.8;. /etc/namedb/ Instellingenbestanden voor named, zie &man.named.8;. /etc/periodic/ Scripts die dagelijks, wekelijks en maandelijks via &man.cron.8; worden uitgevoerd, zie &man.periodic.8;. /etc/ppp/ Instellingenbestanden voor ppp, zie &man.ppp.8;. /mnt/ Lege map, veel gebruikt door systeembeheerders als tijdelijk koppelpunt voor opslagruimtes. /proc/ Process bestandssysteem;, zie &man.procfs.5; en &man.mount.procfs.8;. /rescue/ Statisch gelinkte programma's voor noodherstel, zie &man.rescue.8;. /root/ Thuismap van de gebruiker root. /sbin/ Systeemprogramma's en administratieprogramma's belangrijk voor zowel single-user en multi-user omgevingen. /tmp/ Tijdelijke bestanden. De inhoud van /tmp blijft meestal NIET bewaard na een herstart. Er wordt vaak een geheugengebaseerd bestandssysteem gekoppeld aan /tmp. Dit kan geautomatiseerd worden met de tmpmfs-gerelateerde variabelen van &man.rc.conf.5; (of met een regel in /etc/fstab). Zie &man.mdmfs.8;. /usr/ Hier bevindt zich het leeuwendeel van alle hulpprogramma's en gewone programma's. /usr/bin/ Standaard programma's, programmeertools. /usr/include/ Standaard C invoegbestanden. /usr/lib/ Functiebibliotheken. /usr/libdata/ Diverse databestanden voor hulpprogramma's. /usr/libexec/ Systeemdaemons en systeemhulpprogramma's (uitgevoerd door andere programma's). /usr/local/ Lokale programma's, bibliotheken, etc. Wordt ook gebruikt als standaard locatie voor de &os; ports. Binnen /usr/local, wordt de algemene layout bepaald door &man.hier.7;, dat ook voor /usr wordt gebruikt. Uitzonderingen is de map man, die direct onder /usr/local ligt in plaats van onder /usr/local/share, en de - documentatie voor ports is te vinden in - share/doc/port. - + documentatie voor ports is te vinden in share/doc/port. + - - /usr/obj/ - - Architectuur afhankelijke doelstructuur voor - resultaten van de bouw van + + /usr/obj/ + Architectuur afhankelijke doelstructuur voor + resultaten van de bouw van /usr/src. /usr/ports/ - De &os; Portscollectie (optioneel). /usr/sbin/ - Systeemdaemons en systeemhulpprogramma's uitgevoerd door gebruikers. /usr/share/ - Architectuur onafhankelijke bestanden. /usr/src/ - BSD en/of lokale broncodebestanden. /var/ - Multifunctionele logboek-, tijdelijke, - transparante en spool bestanden. + vergankelijke en spool bestanden. Een + geheugen-gebaseerd bestands systeem is soms gemount op + /var. Dit kan geautomatiseerd worden + door varmfs-gerelateerde variabelen in + &man.rc.conf.5; of met een entry in + /etc/fstab; zie + &man.mdmfs.8; voor details. /var/log/ - Diverse logboekbestanden van het systeem. /var/mail/ - Postbusbestanden van gebruikers. /var/spool/ - Diverse printer- en mailsysteemspoolingmappen. /var/tmp/ Tijdelijke bestanden die bewaard worden bij een herstart van het systeem. /var/yp/ NIS maps. Organisatie van schijven De kleinste vorm van organisatie die &os; gebruikt om bestanden te vinden is de bestandsnaam. Bestandsnamen zijn hoofdlettergevoelig, wat betekent dat readme.txt en README.TXT twee verschillende bestanden zijn. &os; gebruikt de extensie van een bestand niet om te bepalen of het bestand een programma, een document of een andere vorm van data is. - Bestanden worden bewaard in mappen. Een map kan leeg zijn of - honderden bestanden bevatten. Een map kan ook andere mappen + Bestanden worden bewaard in mappen. Een map kan leeg zijn + of honderden bestanden bevatten. Een map kan ook andere mappen bevatten, wat het mogelijk maakt om een hiërarchie van mappen te maken om data beter te organiseren. Bestanden en mappen worden aangegeven door het bestand of de map aan te geven, gevolgd door een voorwaardse slash, /, gevolgd door andere mapnamen die nodig zijn. Als map foo de map bar bevat, die op zijn beurt het bestand readme.txt bevat, dan wordt de volledige naam of pad naar het bestand foo/bar/readme.txt. Let op dat dit anders is dan onder &windows; welke gebruik maakt van het \ teken om bestanden en mappen te scheiden. &os; maakt geen gebruik van schijfletters of andere schijfnamen in het pad. Zo zal op &os; nooit c:\foo\bar\readme.txt gebruikt worden. Mappen en bestanden worden bewaard op een bestandssysteem. Elk bestandssysteem bevat precies één map op het hoogste niveau die de rootmap van het bestandssysteem heet. Deze rootmap kan op zijn beurt andere mappen bevatten. Één bestandssysteem wordt gekozen als het root file system of /. Elk ander bestandssysteem wordt dan gemount onder het root file system. Ongeacht de hoeveelheid schijven er aan het &os; systeem gekoppeld zijn, elke directory lijkt onderdeel te zijn van dezelfde schijf. Stel er zijn drie bestandssystemen met de namen A,B en C. Elk bestandssysteem heeft één root map die twee andere mappen bevat, A1 en A2 (zo ook voor de andere twee: B1, B2, C1 en C2). A wordt het root besturingsysteem. Als &man.ls.1; wordt gebruikt om de inhoud van de map te tonen, zijn de twee mappen A1 en A2 te zien. De mappenstructuur ziet er als volgend uit: / | +--- A1 | `--- A2 Een bestandssysteem moet gekoppeld worden in een map op een ander bestandssysteem. Als nu bestandssysteem B wordt gekoppeld onder de map A1 vervangt B A1 en zien de koppelingen in B er als volgt uit: / | +--- A1 | | | +--- B1 | | | `--- B2 | `--- A2 Elk bestand dat in de mappen B1 en B2 aanwezig is, kan benaderd worden met het pad /A1/B1 of /A1/B2. Elk bestand dat in /A1 stond is tijdelijk verborgen en komt tevoorschijn als Bis ontkoppeldvan A. Als B gekoppeld is onder A2 ziet de diagram er als volgt uit: / | +--- A1 | `--- A2 | +--- B1 | `--- B2 en de paden zouden dan respectievelijk /A2/B1 en /A2/B2 zijn. - Bestandssystemen kunnen op elkaar worden gekoppeld. Doorgaand - op het vorige voorbeeld kan het bestandssysteem + Bestandssystemen kunnen op elkaar worden gekoppeld. + Doorgaand op het vorige voorbeeld kan het bestandssysteem C gekoppeld worden bovenop de map B1 in het bestandssysteem B. Dit resulteert in: / | +--- A1 | `--- A2 | +--- B1 | | | +--- C1 | | | `--- C2 | `--- B2 Of C kan direct onder het bestandssysteem A gekoppeld worden, onder de map A1: / | +--- A1 | | | +--- C1 | | | `--- C2 | `--- A2 | +--- B1 | `--- B2 Het is mogelijk om één groot root bestandssysteem te hebben en geen andere. Deze benadering heeft voordelen en nadelen. Voordelen van meerdere bestandssystemen Verschillende bestandssystemen kunnen verschillende mount opties hebben. Bijvoorbeeld, het root bestandssysteem kan alleen-lezen gekoppeld worden, wat het onmogelijk maakt voor gebruikers om ongewenst kritieke bestanden te bewerken of te verwijderen. Door bestandssystemen die schrijfbaar moeten zijn voor gebruikers te scheiden zoals /home van andere bestandssystemen, stelt deze in staat om gekoppeld te worden met de nosuid optie. Deze optie voorkomt dat suid/guid bits op uitvoerbare bestanden effectief gebruikt kunnen worden, waardoor de beveiliging mogelijk beter wordt. &os; optimaliseert automatisch de layout van bestanden op een bestandssysteem, afhankelijk van hoe het bestandssysteem wordt gebruikt. Een bestandsysteem dat veel bestanden bevat waar regelmatig naar geschreven wordt, wordt anders geoptimaliseerd dan een bestandssysteem dat minder maar grotere bestanden bevat. Door het gebruik van één groot bestandssysteem werkt deze optimalisatie niet. &os;'s bestandssystemen zijn erg robuust als er bijvoorbeeld een stroomstoring is, hoewel een stroomstoring - op een kritiek moment nog steeds kan leiden tot schade aan de - structuur van het bestandssysteem. Door het verdelen van + op een kritiek moment nog steeds kan leiden tot schade aan + de structuur van het bestandssysteem. Door het verdelen van data over meerdere bestandssystemen, is de kans groter dat het systeem nog opstart, wat terugzetten van een back-up makkelijker maakt als dat nodig is. Voordeel van één bestandssysteem Bestandssystemen hebben een vaste grootte. Als bij de installatie van &os; een bestandssysteem wordt gemaakt, is het later mogelijk dat de partitie groter gemaakt moet worden. Dit is niet zo makkelijk zonder een back-up, het opnieuw maken van het bestandssysteem met gewijzigde grootte en het terugzetten van de geback-upte gegevens. &os; heeft &man.growfs.8; waarmee de grootte van het bestandssysteem is aan te passen terwijl het draait. Bestandssystemen worden opgeslagen in partities. Dit betekent niet hetzelfde als de algemene betekenis van de term partitie (bijvoorbeeld, &ms-dos; partitie), vanwege &os;'s &unix; achtergrond. Elke partitie wordt geïdentificeerd door een letter van a tot en met h. Elke partitie kan slechts één bestandssysteem hebben, wat betekent dat bestandssystem vaak omschreven worden aan de hand van hun koppelpunt in de bestandssysteem hiërarchie of de letter van de partitie waar ze in opgeslagen zijn. &os; gebruikt ook schijfruimte voor wisselbestanden om hiermee virtueel geheugen te leveren. Dit geeft de computer de mogelijkheid om net te doen alsof er veel meer geheugen in de machine aanwezig is dan werkelijk het geval is. - Als &os; geen geheugen meer heeft, verplaatst het data die op dat - moment niet gebruikt wordt naar de wisselbestanden en plaatst het - terug als het wel nodig is (en zet iets anders in ruil daarvoor - terug). + Als &os; geen geheugen meer heeft, verplaatst het data die op + dat moment niet gebruikt wordt naar de wisselbestanden + en plaatst het terug als het wel nodig is (en zet iets anders + in ruil daarvoor terug). Aan sommige partities zijn bepaalde conventies gekoppeld. Partitie Conventie a Bevat meestal het root bestandssysteem b Bevat meestal de swapruimte c Heeft meestal dezelfde grootte als de hele harde schijf. Dit geeft hulpprogramma's de mogelijkheid om op een complete schijf te werken, zoals een bad block scanner, om te werken op de c partitie. Meestal wordt hierop dan ook geen bestandssysteem gecreeërd. d Partitie d had vroeger een speciale betekenis, maar die is verdwenen. d zou nu kunnen werken als een normale partitie. Schijven in &os; worden onderverdeeld in slices, onder &windows; ook wel partities genoemd, welke genummerd zijn van 1 tot en met 4. Deze worden vervolgens onderverdeeld in partities, welke bestandssystemen bevatten, en worden gelabeld door letters. slices partities gevaarlijk toegewijd Slicenummers volgen de apparaatnamen, voorafgegaan door een s die begint bij 1. Dus da0s1 is de eerste slice op de eerste SCSI drive. Er kunnen maximaal vier fysieke slices op een schijf staan, maar er kunnen logische slices in fysieke - slices van het correcte type staan. Deze uitgebreide slices zijn - genummerd vanaf 5. Dus ad0s5 - is de eerste uitgebreide slice op de eerste IDE schijf. Deze + slices van het correcte type staan. Deze uitgebreide slices + zijn genummerd vanaf 5. Dus ada0s5 + is de eerste uitgebreide slice op de eerste SATA schijf. Deze apparaten worden gebruikt door bestandssystemen waarvan verwacht wordt dat ze een slice in beslag nemen. Slices, gevaarlijk toegewijde (dangerously - dedicated) fysieke drivers en andere drives bevatten + dedicated) fysieke drives en andere drives bevatten partities, die worden weergegeven door letters vanaf a tot h. Deze letter wordt achter de apparaatnaam geplakt. Dus da0a is de a partitie op de eerste da schijf, die gevaarlijk toegewijd is. - ad1s3e is de vijfde partitie - op de derde slice van de tweede IDE schijf. + ada1s3e is de vijfde partitie + op de derde slice van de tweede SATA schijf. Elke schijf op het systeem wordt geïdentificeerd. Een schijfnaam start met een code die het type aangeeft en dan een nummer dat aangeeft welke schijf het is. In tegenstelling tot bij slices, start het nummeren van schijven bij 0. Standaardcodes staan beschreven in - . + . Bij een referentie naar een partitie verwacht &os; de schijfnaam, s, het slice nummer en de partitieletter aan te geven. Voorbeelden staan in . In staat een conceptmodel van een schijflayout die een en ander verduidelijkt. Wanneer &os; geïnstalleerd wordt, moeten de disk slices geconfigureerd worden en moeten er partities op deze slices worden gemaakt zodat &os; hier gebruik van kan maken om er bestandssystemen op te zetten of een plek voor swap ruimte. Hierna kan &os; bepalen waar elk bestandssysteem wordt gekoppeld. - - Schijf apparaatcodes +
+ Schijf Apparaat Namen - Code - - Betekenis + Schijf Type + Schijf Apparaat Naam - ad - - ATAPI (IDE) schijf + SATA en IDE + harde schijven + ada of + ad - da - - SCSI directe toegang schijf + SCSI harde schijven en + USB opslag apparaten + da - acd + SATA en IDE + CD-ROM spelers + cd of + acd + - ATAPI (IDE) CDROM + + SCSI CD-ROM + spelers + cd - cd + Floppydisk + fd + - SCSI CDROM + + Diverse niet-standaard CD-ROM + spelers + mcd voor Mitsumi + CD-ROM en scd voor + Sony CD-ROM apparaten - fd + SCSI tape drives + sa + - Floppydisk + + IDE tape drives + ast + + + RAID drives + Voorbeelden zijn aacd voor + &adaptec; AdvancedRAID, mlxd en + mlyd voor &mylex;, + amrd voor AMI &megaraid;, + idad voor Compaq Smart RAID, + twed voor &tm.3ware; RAID. +
Voorbeeld schijf-, slice- en partitienamen - - Name - + Naam Betekenis - ad0s1a - + ada0s1a De eerste partitie (a) op de eerste slice (s1) op de eerste IDE - schijf (ad0). + schijf (ada0). da1s2e - De vijfde partitie (e) op de tweede slice (s1) op de tweede SCSI schijf (da1). Conceptmodel van een schijf Het onderstaande diagram geeft aan hoe &os; de eerste IDE - schijf in het systeem ziet. Stel dat de schijf 4 GB groot - is en dat deze twee 2 GB slices (&ms-dos; partities) + schijf in het systeem ziet. Stel dat de schijf 4 GB + groot is en dat deze twee 2 GB slices (&ms-dos; partities) bevat. De eerste slice bevat een &ms-dos; schijf, C: en de tweede slice bevat een &os; installatie. Deze &os; installatie heeft drie partities en een partitie met een wisselbestand. - De drie partities hebben elk een bestandssysteem. Partitie - a wordt gebruikt voor het root + De drie partities hebben elk een bestandssysteem. + Partitie a wordt gebruikt voor het root bestandssysteem, e voor de map /var en f voor de map /usr. .-----------------. --. | | | | DOS / Windows | | : : > Eerste slice, ad0s1 : : | | | | :=================: ==: --. | | | Partitie a, gekoppeld als / | | | > gerefereerd als ad0s2a | | | | | :-----------------: ==: | | | | Partitie b, gebruikt als swap | | | > gerefereerd als ad0s2b | | | | | :-----------------: ==: | Partitie c, geen | | | Partition e, gebruikt als /var > bestandssysteem, bevat | | > gerefereerd als ad0s2e | alle &os; slices, | | | | ad0s2c :-----------------: ==: | | | | | : : | Partitie f, gebruikt als /usr | : : > gerefereerd als ad0s2f | : : | | | | | | | | --' | `-----------------' --'
Het koppelen en ontkoppelen van bestandssystemen Het bestandssysteem wordt het best weergegeven als een boom, met de stam als /. /dev, /usr en de andere map in root zijn takken die weer hun eigen takken kunnen hebben, zoals /usr/local, etc. root bestandssysteem Er zijn verschillende redenen om sommige van deze mappen op aparte bestandssystemen te plaatsen. /var bevat de mappen log/, spool/ en verschillende types tijdelijke bestanden en kan volraken. Het laten vollopen van het root bestandssysteem is geen goed idee, dus het splitsen van /var van /is vaak de favoriet. Een andere vaak voorkomende reden om bepaalde mapbomen - op aparte bestandssystemen te plaatsen, is om ze op verschillende - fysieke schrijven te zetten of gescheiden virtuele schijven zoals - beschreven in , of cd-rom - drives. + op aparte bestandssystemen te plaatsen, is om ze op + verschillende fysieke schrijven te zetten of gescheiden + virtuele schijven zoals beschreven in , + of cd-rom drives. Het bestand <filename>fstab</filename> bestandssystemen gekoppeld met fstab Tijdens het opstartproces () worden bestandssystemen die vermeld staan in /etc/fstab automatisch gekoppeld (tenzij ze vermeld staan met ). /etc/fstab bevat een lijst van regels die aan het volgende formaat voldoen: apparaat /koppelpunt fstype opties dumpfreq passno apparaat Een bestaande apparaatnaam zoals uitgelegd in . koppelpunt Een map (die moet bestaan) waarop het bestandssysteem gekoppeld moet worden. fstype Het bestandssysteem type dat aan &man.mount.8; gegeven wordt. Het standaard &os; bestandssysteem is ufs. opties Dit is of voor lezen en schrijven bestandssytemen, of voor - alleen lezen, gevolgd door elke andere optie die mogelijk - nodig is. Een standaard optie is + alleen lezen, gevolgd door elke andere optie die + mogelijk nodig is. Een standaard optie is voor bestandssystemen die niet automatisch gekoppeld worden tijdens het opstarten. Andere opties staan in &man.mount.8;. dumpfreq Dit wordt gebruikt door &man.dump.8; om te bepalen welke bestandssystemen gedumpt moeten worden. Als het veld niet is ingevuld, wordt aangenomen dat er een nul staat. passno Dit bepaalt in welke volgorde bestandssystemen gecontroleerd moeten worden. Bestandssystemen die overgeslagen moeten worden moeten hun passno waarde op nul hebben staan. Voor het root bestandssysteem, welke voor alle anderen gecontroleerd moet worden, moet passno op één staan en de passno waarden voor andere bestandssystemen moeten een waarde hebben groter dan één. Als bestandssysteem dezelfde passno waarde hebben probeert &man.fsck.8; deze bestandssystemen tegelijkertijd te controleren. In &man.fstab.5; staat meer informatie over de opmaak van /etc/fstab en de mogelijke opties. Gebruik maken van &man.mount.8; bestandssystemen koppelen Bestandssystemen worden gekoppeld door middel van &man.mount.8;. De basis syntax is als volgt: - &prompt.root; mount apparaat koppelpunt + &prompt.root; mount apparaat koppelpunt Dit commando heeft veel opties welke beschreven staan in - &man.mount.8;. De meest voorkomende zijn: + &man.mount.8;. De meest voorkomende zijn: Mountopties Mount alle bestandssystemen die in /etc/fstab staan, behalve die gemarkeerd staan als noauto, uitgesloten zijn door de optie of die al gekoppeld zijn. Doe alles behalve het echt aanroepen van de systeemopdracht mount. Deze optie is handig in samen met de optie om te bepalen wat &man.mount.8; eigenlijk probeert te doen. Forceert het koppelen van een niet schoon bestandssysteem (gevaarlijk) of het innemen van schrijftoegang, bij het degraderen van de status van het bestandssysteem van lezen-schrijven naar alleen-lezen. Mount het bestandssysteem alleen lezen. Dit is identiek aan de optie . fstype Mount het opgegeven bestandssysteem als het opgegeven type bestandssysteem of koppelt alleen bestandssystemen van het aangegeven type als ook de optie is opgegeven. Het standaard type bestandssysteem is ufs. Werk koppel opties van het bestandssysteem bij. Geef uitgebreide informatie (verbose). Mount het bestandssysteem lezen en schrijven. De volgende opties kunnen worden meegegeven bij de als een door komma's gescheieden lijst: nosuid Interpreteer geen setuid of setgid opties op het bestandssysteem. Ook dit is een nuttige veiligheidsoptie. Gebruik maken van &man.umount.8; bestandssystemen ontkoppelen Om een bestandssysteem te ontkoppelen moet gebruik worden gemaakt van &man.umount.8;. Dit commando heeft EEn parameter, welke een koppelpunt, een apparaatnaam, de vlag of de vlag. Alle vormen kunnen de optie gebruiken om een bestandsysteem geforceerd te ontkoppelen en de optie voor uitgebreide informatie. De optie is meestal geen goed idee. Forceren dat een bestandssysteem ontkoppeld wordt kan de computer laten crashen of data op het bestandssysteem beschadigen. Om alle bestandssystemen te ontkoppelen, of alleen de bestandsssystemen die gespecificeerd zijn door de optie, moet gebruik worden gemaakt van de of de optie. Let op dat de het root bestandssysteem niet ontkoppeld. Processen en daemons &os; is een multi-tasking besturingssysteem. Elk draaiend programma wordt een proces genoemd. Elk gestart commando, start EEn of meerdere nieuwe processen, daarnaast zijn er enkele processen die gestart worden door &os;. Elk proces wordt geïdentificeerd door een nummer dat process ID (PID) heet. Net als bij bestanden heeft elk proces één eigenaar en groep, waarbij de eigenaar en groepspermissies worden gebruikt om te bepalen welke bestanden en apparaten het proces mag openen. De meeste processen hebben een ouder-proces wat deze processen opstart. Bijvoorbeeld, de shell is een proces, en elk commando welke gestart wordt in de shell, heeft de shell als ouder proces. De uitzondering hierop is het &man.init.8; proces welke altijd het eerste proces is welke gestart wordt tijdens het opstarten en altijd het PID 1 heeft. Sommige programma's zijn niet ontworpen om continue gebruikers informatie te ontvangen en zich af te sluiten van de terminal bij de eerste mogelijkheid. Bijvoorbeeld, een webserver reageert op webverzoeken in plaats van gebruikers - input. Mailservers zijn een ander voorbeeld van zo een soort + invoer. Mailservers zijn een ander voorbeeld van zo een soort applicatie. Deze type programma's worden daemons genoemd. De term daemon komt uit de Griekse mythologie en symboliseerd een entiteit die noch vriendelijk noch onvriendelijk is, maar onzichtbaar belangrijke taken uitvoert. Hierom is de BSD-mascotte een vrolijk kijkende daemon met sneakers en een drietand. De conventie is om programma's die normaal gesproken als daemons draaien, een naam te geven die eindigt op het d karakter. Bijvoorbeeld, BIND heet Berkely Internet Name Domain, maar het daadwerkelijke programma welke uitgevoerd wordt heet named. De webserver applicatie Apache heet httpd en de lijn printer spooling daemon heet lpd. Dit is alleen een conventie! De Sendmail applicatie bijvoorbeeld heet sendmail en niet maild. Processen tonen Om de processen op het systeem te zien wordt &man.ps.1; of &man.top.1; gebruikt. Om een statische lijst van de huidige processen te zien, het PID, het geheugen gebruik, en het commando waarmee het proces gestart is wordt &man.ps.1; gebruikt. Om alle processen te zien die draaien en om deze continue bij te werken elke paar seconden zodat interactief te zien is wat de computer aan het uitvoeren is wordt &man.top.1; gebruikt. Standaard laat &man.ps.1; alleen processen zien welke gestart en eigendom zijn van de gebruiker. Bijvoorbeeld: &prompt.user; ps PID TT STAT TIME COMMAND 8203 0 Ss 0:00.59 /bin/csh 8895 0 R+ 0:00.00 ps De terugkoppeling van &man.ps.1; is georganiseerd in een aantal kolommen. De PID kolom laat het proces ID zien. PID's worden toegewezen, startende bij 1 en gaan tot en met 99999, waarna opnieuw begonnen wordt. Echter een PID wordt niet opnieuw uitgedeeld als deze nog in gebruik is. De TT kolom toont de tty waarop het programma draait en STAT laat de status van het programma zien. TIME is de hoeveelheid tijd welke het programma op de CPU heeft gedraaid. Dit is meestal niet de hoeveelheid tijd die voorbij gegaan is sinds het starten van de applicatie, omdat de meeste programma's wachten tot er iets gebeurd voor er CPU tijd benodigd is. Als laatste COMMAND toont het commando welke gebruikt is om het programma te starten. Er zijn een aantal opties om de informatie die wordt getoond te beinvloeden. EEn van de meest bruikbare sets is auxww. Hierbij toond de lopende processen van alle gebruikers, toont de gebruikersnaam en geheugen gebruik van de proces eigenaar, toont informatie over daemon processen, en instrueert &man.ps.1; om het volledige commando voor elk proces te laten zien in plaats van deze af te kappen als deze te lang is om te tonen. De terugkoppeling van &man.top.1; is vergelijkbaar: &prompt.user; top last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46 107 processes: 2 running, 104 sleeping, 1 zombie CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other Swap: 2048M Total, 2048M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4 De uitvoer is gesplitst in twee secties. De kop (de eerste vijf of zes regels) toont het PID van het laatst gestartte proces, de gemiddelde systeem belasting (welke een indruk geven hoe zwaar het systeem belast is), de uptime van het systeem (de tijd die verstreken is sinds de laatste reboot) en de huidige tijd. De andere regels in de kop laten zien hoeveel processen er draaien, hoeveel geheugen en hoeveel swap er verbruikt is, en hoeveel tijd de processor kwijt is aan - verschillende statussen. Als het systeem uitgerust is met - het ZFS bestandssysteem, laat de - ARC regel zien hoeveel data er gelezen is - uit het geheugen in plaats van uit de disk. + verschillende statussen. Als de ZFS bestands + systeem module is geladen, laat de ARC regel + zien hoeveel data er gelezen is uit het geheugen in plaats van + de uit de disk. Daaronder staat een serie van kolommen die soortgelijke informatie bevatten als de uitvoer van &man.ps.1;. Zo zijn het PID, de gebruikersnaam, de hoeveelheid processortijd en het commando dat gebruikt is om het proces te tarten te zien. &man.top.1; laat standaard ook zien hoeveel geheugen er gebruikt wordt door een proces. Dit is opgesplitst in twee kolommen, EEn voor de totale hoeveelheid en EEn voor de resistente hoeveelheid. De totale hoeveelheid verteld hoeveel geheugen het proces nodig heeft gehad. De resistente hoeveelheid verteld hoeveel geheugen het proces op dit moment gebruikt. &man.top.1; ververst de informatie op het scherm elke twee seconden. Een andere interval kan ingesteld worden door middel van de optie. Processen stoppen EEn manier om te communiceren met een draaiend proces of daemon is door het versturen van een signaal via &man.kill.1;. Er zijn een aantal verschillende signalen; sommigen hebben een specifieke betekenins terwijl anderen worden beschreven in de documentatie van de applicatie. Een gebruiker kan alleen een signaal sturen naar een proces waar ze eigenaar van zijn, het sturen naar een ander proces resulteert in een permission denied error. De uitzondering hierop is de gebruiker root, welke naar elk proces een signaal mag versturen. Het besturingssysteem kan ook een signaal naar een proces sturen. Als een applicatie slecht geschreven is en geheugen probeert te benaderen waar deze niet mag komen, zal &os; het signaal Segmentation Violation (SIGSEGV). Als een applicatie geschreven is om gebruik te maken van de &man.alarm.3; systeem oproep nadat een bepaalde tijd verstreken is, zal het signaal Alarm (SIGALRM) worden verstuurd. Er kunnen twee signalen worden gebruikt om een proces te stoppen: SIGTERM en SIGKILL. SIGTERM is de beleefde manier om een proces te stoppen, omdat het proces het signaal kan ontvangen, en daarmee alle openstaande log bestanden kan afsluiten, en proberen zichzelf netjes af te sluiten voor het proces gestopt wordt. In een aantal gevallen kan het zijn dat het proces SIGTERM kan negeren, omdat deze druk bezig is met een taak die niet onderbroken kan worden. SIGKILL kan niet worden genegeerd door een proces. Door het versturen van een SIGKILL zal het proces meteen worden gestopt. Er zijn een aantal taken die niet onderbroken kunnen worden. Dat is bijvoorbeeld zo als het proces een bestand probeert uit te lezen op een andere computer op het netwerk, waarbij de andere computer onbeschikbaar is. Het proces is dan uninterruptible. Uiteindelijk zal er een time-out optreden, vaak is dat na twee minuten. Zodra dit gebeurd zal het proces alsnog direct gestopt worden.. Andere veel gebruikte signalen zijn SIGHUP, SIGUSR1 en SIGUSR2. Omdat dit meer algemene signalen zijn, zullen applicaties hier verschillend op reageren. Voorbeeld: Nadat de webserver configuratie is aangepast, zal de webserver verteld moeten worden dat de configuratie opnieuw uitgelezen moet worden. Het herstarten van httpd zou een kleine onderbreking veroorzaken. In plaats daarvan kan het SIGHUP signaal verstuurd worden. Wees ervan bewust dat verschillende applicaties hier verschillend op reageren. Lees hiervoor de bijgeleverde documentatie om te kunnen bepalen of SIGHUP datgeen doet wat er verwacht wordt. Het versturen van een signaal naar een proces Dit voorbeeld toont hoe een signaal naar &man.inetd.8; wordt verstuurd. Het bestand met instellingen voor &man.inetd.8; is /etc/inetd.conf en &man.inetd.8; leest dit bestand opnieuw in als er een SIGHUP wordt verstuurd. Zoek naar het PID van het proces waarnaar een signaal moet worden verstuurd door gebruik te maken van &man.pgrep.1;. In dit voorbeeld is het PID voor &man.inetd.8; 198. &prompt.user; pgrep -l inetd 198 inetd -wW Met &man.kill.1; kan het signaal verzonden worden. Omdat &man.inetd.8; wordt gedraaid door root moet &man.su.1; gebruikt worden om root te worden. &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 Zoals zoveel &unix; commando's, geeft &man.kill.1; geen uitvoer als deze succesvol uitgevoerd is. Als er een signaal wordt verstuurd naar een proces waar de gebruiker geen eigenaar van is volgt het bericht: kill: PID: Operation not permitted. Bij het verkeerd intoetsen van het PID zal het signaal ofwel naar het verkeerde proces worden gestuurd, wat negatieve gevolgen kan hebben, ofwel wordt het signaal naar een PID gestuurd welke niet in gebruik is wat resulteert in de error: kill: PID: No such process. Waarom gebruik maken van <command>/bin/kill</command>? De meeste shells leveren kill als ingebouwde optie, wat betekend dat de shell het signaal direct verstuurd, in plaats van dat /bin/kill wordt gebruikt. Let op dat verschillende shells, een verschillende manier hebben van het specificeren van de naam van het signaal welke verstuurd moet worden. In plaats van om deze allemaal te leren kennen, kan het simpeler zijn om /bin/kill te gebruiken. Wanneer er andere signalen verstuurd moeten worden, vervang dan TERM of KILL met de naam van het signaal. Het stoppen van willekeurige processen op een systeem is meestal een slecht idee. In het bijzonder bij &man.init.8; met PID 1. Het uitvoeren van /bin/kill -s KILL 1 is een snelle manier maar ongewenste manier om een systeem uit te schakelen. Argumenten die aan &man.kill.1; worden meegegeven moeten altijd twee keer gecontroleerd worden voordat op Enter gedrukt wordt. Shells shells commandoregel Een shell levert een commando regel interface om te kunnen communiceren met het - besturingssysteem. Een shell ontvangt commando's op het input + besturingssysteem. Een shell ontvangt commando's op het invoer kanaal en voert deze uit. Veel shells leveren ingebouwde functies welke helpen met alledaagse taken zoals bestandsbeheer, bestandsglobbing, command line bewerkingen, commando makro's en omgevings variabelen. &os; heeft een aantal verschillende shells, zoals de Bourne shell (&man.sh.1;) en de uitgebreide C shell (&man.tcsh.1;). Meer shells zijn beschikbaar in de &os; Ports Collectie zoals zsh en bash. De shell die gebruikt wordt is meestel een kwestie van smaak. Een C programmeur kan zich beter thuis voelen met een C-achtige shell zoals &man.tcsh.1;. Terwijl een &linux; gebruiker zich meer thuis kan voelen met bash. Elke shell heeft unieke opties die al dan niet passen in de voorkeurs omgeving van de gebruiker, dit is de reden waarom er een gekozen kan worden welke shell er gebruikt kan worden. Een veel voorkomende shell optie is het automatisch aanvullen van bestandsnamen. Nadat een gebruiker de eerste letters heeft getyped van een commando of bestandsnaam en op Tab drukt, zal de shell de rest van het commando en/of bestandsnaam aanvullen. Voorbeeld: er zijn twee bestanden genaamd foobar en football. Om foobar te verwijderen kan de gebruiker rm foo intoetsen en op Tab drukken om het commando aan te vullen. De shell laat alleen rm foo zien. Hij was niet in staat om de bestandsnaam aan te vulen omdat beide bestandsnamen foobar en football beginnen met foo. Sommige shells laten een beep horen en anderen laten alle mogelijke opties zien als er meer dan EEn naam overeenkomt. De gebruiker moet dan meer karakters typen om de gewenste naam aan te kunnen vullen. Door het typen van een t en het drukken op Tab is voldoende om de shell te laten bepalen welk bestand gewenst is en deze aan te vullen. omgevingsvariabelen Een andere optie van de shell is het gebruik van omgevingsvariabelen. Omgevingsvariabelen zijn variabele sleutelparen die opgeslagen zijn in de omgevingsruimte van een shell. Deze variabelen kunnen uitgelezen worden door elk programma dat door de shell wordt uitgevoerd en bevat dus veel programmainstellingen. biedt een lijst van veel voorkomende omgevingsvariabelen en de betekenis ervan. Let op dat omgevingsvariabelen altijd met hoofdletters geschreven worden. Veel voorkomende omgevingsvariabelen Variabele Omschrijving USER Gebruikersnaam van de gebruiker die is aangemeld. PATH Een lijst van mappen, gescheiden door een : voor het zoeken naar binaire bestanden. DISPLAY Netwerknaam van het &xorg; scherm om verbinding mee te maken, indien beschikbaar. SHELL De huidige shell. TERM De naam van de huidige gebruikersterminal. Gebruikt om de mogelijkheden van de terminal te bepalen. TERMCAP Databaseregel met terminal escape codes voor het uitvoeren van diverse terminalfuncties. OSTYPE Type besturingssysteem. MACHTYPE De CPU architectuur. EDITOR De teksteditor waar de gebruiker de voorkeur aan geeft. PAGER De tekstpager waar de gebruiker de voorkeur aan geeft, om EEn bestand per keer te tonen. MANPATH Lijst van mappen gescheiden door een : voor het zoeken naar handleidingen.
Bourne shells - Het instellen van omgevingsvariabelen verschilt van shell tot - shell. In de C–achtige shells zoals + Het instellen van omgevingsvariabelen verschilt van shell + tot shell. In de C–achtige shells zoals tcsh en csh moet setenv gebruikt worden om omgevingsvariabelen in te stellen. In Bourne-shells zoals sh en bash moet export gebruikt worden om de omgevingsvariabelen in te stellen. Om bijvoorbeeld de omgevingsvariabele EDITOR te wijzigen naar /usr/local/bin/emacs onder csh of tcsh moet het volgende gedaan worden: &prompt.user; setenv EDITOR /usr/local/bin/emacs In Bourne shells is dat: &prompt.user; export EDITOR="/usr/local/bin/emacs" Met de meeste shells kunnen de omgevingsvariabelen ook weergegeven worden door een $ karakter voor de variabelenaam te plaatsen op de commandoregel. echo $TERM zou weergeven wat er in $TERM gezet is. Shells kennen speciale karakters, die meta-karakters heten, als speciale weergaves van data. De meest voorkomende is het * karakter, dat elk karakter in een bestandsnaam voorstelt. Deze speciale meta-karakters kunnen gebruikt worden om bestandsnaamglobbing te doen. Door bijvoorbeeld echo * in te voeren, is het resultaat bijna hetzelfde als door het uitvoeren van ls, omdat de shell alle bestanden die van toepassing zijn aan echo geeft om ze daarna te tonen. Om te voorkomen dat de shell deze speciale tekens verwerkt, kunnen ze uitgeschakeld worden door er het backslash karakter (\) voor te plaatsen. echo $TERM print de inhoud van TERM naar het scherm. echo \$TERM print $TERM zoals het geschreven is. Shell wijzigen De makkelijkste manier om de shell te wijzigen is door het chsh commando te gebruiken. Door chsh te starten wordt de editor gestart die in de EDITOR omgevingsvariable staat. Als deze niet is ingesteld, wordt vi gestart. Verander de waarde van Shell: in het volledige pad van de nieuwe shell. Aan chsh kan ook de optie meegegeven worden. Dit stelt de shell in, zonder dat een editor gebruikt hoeft te worden. Als de shell bijvoorbeeld gewijzigd moet worden in bash, kan dat als volgt: &prompt.user; chsh -s /usr/local/bin/bash De nieuwe shell moet geregistreerd zijn in /etc/shells. Als de shell geinstalleerd is via de &os; Ports Collectie, zoals beschreven in, zal dat automatisch gebeuren. Als deze onverhoopt ontbreekt kan deze worden toegevoegd door het volgende commando uit te voeren, waarbij het pad moeten worden aangepast naar het volledige pad van de shell: - &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells + &prompt.root; echo /usr/local/bin/bash >> /etc/shells Hierna kan &man.chsh.1; weer gedraaid worden. + + + + Geavanceerde Shell Technieken + + + + + Tom + Rhodes + + Written by + + + + + De &unix; shell is niet alleen een commando-interpreter, het + fungeert als een krachtige tool die gebruikers in staat stelt om + commando's uit te voeren, hun uitvoer om te leiden, hun invoer om te + leiden en commando's aan elkaar te linken om de uiteindelijke commando + uitvoer te verbeteren. + Wanneer deze functie wordt gemengd met ingebouwde commando's, word de + gebruiker voorzien van een omgeving met maximale efficiëntie. + + Shell omleiding is de actie van het verzenden van de uitvoer of + de invoer van een opdracht in een andere opdracht of in een bestand. + Om de uitvoer van het &man.ls.1; commando in een bestand vast te leggen, + bijvoorbeeld, leid de uitvoer om: + + &prompt.user; ls > map_lijst.txt + + De inhoud van de map wordt nu opgeslagen in + map_lijst.txt. Sommige opdrachten kunnen + worden gebruikt om invoer te lezen, zoals &man.sort.1;. Dit soort + notering, leid de invoer om: + + &prompt.user; sort < map_lijst.txt + + De invoer zal gesorteerd en op het scherm worden weergegeven. Om + die invoer om te leiden naar een ander bestand, kan men de + uitvoer van &man.sort.1; omleiden door de richting te veranderen: + + &prompt.user; sort < map_lijst.txt > gesorteerd.txt + + In alle voorgaande voorbeelden, voeren de commando's + omleiding uit door middel van file descriptors. Elk &unix; + systeem heeft file descriptors, die standaard invoer omvatten + (stdin), standaard uitvoer (stdout) en standaardfout + (stderr). Die hebben allemaal een doel, waar de invoer een + toetsenbord of muis kan zijn, iets dat invoer verschaft. Uitvoer + kan een scherm of papier in een printer zijn. En fout zou iets kunnen + zijn dat wordt gebruikt voor diagnostische of foutmeldingen. Alle + drie worden beschouwd als I/O gebaseerde bestands + beschrijvingen en soms als streams. + + Door het gebruik van deze beschrijvingen, maakt de shell het mogelijk + om uitvoer en invoer door te gegeven door middel van verschillende + opdrachten en omgeleid naar of vanuit een bestand. Een andere + omleidings methode is de pijp operator. + + De &unix; pijp operator | staat de uitvoer + van een commando toe rechtstreeks te worden doorgegeven of gericht + aan een ander programma. Kortom, een pijp kan de normale uitvoer + van een commando door geven als standaard invoer naar een ander + commando, bijvoorbeeld: + + &prompt.user; cat map_lijst.txt | sort | less + + In dit voorbeeld wordt de inhoud van + map_lijst.txt gesorteerd en + de uitvoer doorgegeven aan &man.less.1;. Dit stelt de gebruiker + in staat in zijn eigen tempo door de uitvoer te bladeren en + voorkomt het van het scherm af scrollen van de uitvoer. +
Teksteditors teksteditors editors Een groot deel van de instellingen in &os; wordt gemaakt door het bewerken van tekstbestanden. Hierdoor is het een goed - idee om bekend te zijn met een tekstverwerker. &os; heeft er een - paar in het basissysteem en veel anderen zijn beschikbaar via de - Portscollectie. + idee om bekend te zijn met een tekstverwerker. &os; heeft er + een paar in het basissysteem en veel anderen zijn beschikbaar + via de Portscollectie. ee editors &man.ee.1; Een simpele editor om te leren kennen is ee, wat easy editor betekent. Om ee te starten, moet op - de commandoregel ee bestandsnaam ingevoerd + de commandoregel ee bestandsnaam ingevoerd worden, waar bestandsnaam de naam is van het bestand dat bewerkt moet worden. Zodra de editor gestart is, staan alle commando's om de bewerk functies te gebruiken boven in het scherm. Het dakje (^) vertegenwoordigd Ctrl, dus ^e betekend het volgende Ctrl e . Om &man.ee.1; te verlaten moet Esc worden ingetoetst, waarna de leave editor optie gekozen moet worden uit het hoofdmenu. De editor zal vragen of de wijzigingen bewaard moeten worden als deze er zijn. vi editors Emacs editors Emacs &os; heeft ook uitgebreidere tekstverwerkers, zoals - &man.vi.1;, in het basissysteem. Andere + &man.vi.1;, in het basissysteem. Andere editors als editors/emacs en editors/vim maken onderdeel uit van de &os; Portscollectie. Deze editors leveren veel meer functionaliteit en kracht maar zijn lastiger om te leren. Het leren omgaan met een dergelijke editor als vim of Emacs kan in de toekomst meer tijd schelen. Veel applicaties die bestanden wijzigen of getypte invoer - nodig hebben zullen automatisch een tekstverwerker openen. Om de - tekstverwerker te wijzigen die standaard wordt gebruikt, moet + nodig hebben zullen automatisch een tekstverwerker openen. Om + de tekstverwerker te wijzigen die standaard wordt gebruikt, moet de omgevingsvariabele EDITOR ingesteld worden zoals beschreven in . Apparaten en apparaatnodes Apparaat is een term die meestal wordt gebruikt voor hardwareonderdelen in een systeem, zoals schijven, printers grafische kaarten en toetsenborden. Als &os; opstart zijn de getoonde meldingen veelal die van apparaten die gedetecteerd worden. Een kopie van de opstart meldingen wordt bewaard in /var/run/dmesg.boot. Elk apparaat heeft een apparaatnaam en een volgnummer. - Voorbeeld: acd0 is de eerste IDE CD-ROM + Voorbeeld: ada0 is de eerste SATA harde schijf speler, en kbd0 symboliseert het keyboard. Veel apparaten in &os; moeten benaderd worden via speciale bestanden genaamd apparaatnodes, welke te vinden zijn in de map /dev. Handleidingen handleidingen De meest complete documentatie binnen &os; komt in de vorm van handleidingen. Nagenoeg elk programma in het basis-systeem wordt geleverd met een korte handleiding welke de basis opties en beschikbare argumenten uitlegt. Deze handleidingen kunnen getoond worden door het man: - &prompt.user; man command + &prompt.user; man command Waar command de naam is van het commando waarover meer informatie opgevraagd moet worden. Om bijvoorbeeld meer te leren over &man.ls.1; moet er het volgende getypt worden: &prompt.user; man ls Handleidingen worden onderverdeeld in secties welke het type onderwerp aangeven. In &os; zijn de volgende secties beschikbaar: Gebruikers commando's Systeem aanroepen en error nummers. Functies in de C-bibliotheken Apparaat drivers Bestandsformaten Spelletjes en andere afleidingen Diverse informatie Systeem onderhoud en operatie commando's Systeem kernel interfaces In sommige gevallen kan hetzelfde onderwerp in meer dan EEn sectie voorkomen. Ter voorbeeld, er is een chmod gebruikers commando en een chmod() systeem aanroep. Om &man.man.1; te vertellen welke sectie er gebruikt moet worden, moet het sectienummer gespecificeerd worden: &prompt.user; man 1 chmod Dit laat de handleiding zien van het gebruikerscommando &man.chmod.1;. Referenties naar een bepaalde sectie worden traditioneel gezien in ronde haken in geschreven documentatie. Dus &man.chmod.1; verwijst naar het gebruikers commando en &man.chmod.2; verwijst naar de systeem aanroep. Als de naam van de handleiding onbekend is, kan het commando man -k gebruikt worden om te zoeken naar sleutelwoorden in de handleiding beschrijvingen: - &prompt.user; man -k mail + &prompt.user; man -k mail Dit commando laat een lijst zien van commando's welke het sleutelwoord mail in de beschrijving hebben staan. Dit is gelijk aan het gebruik van &man.apropos.1;. Om de beschrijvingen te lezen van de commando's in /usr/bin moet er het volgende getypt worden: &prompt.user; cd /usr/bin &prompt.user; man -f * | more of &prompt.user; cd /usr/bin &prompt.user; whatis * |more Gnu infobestanden Free Software Foundation - &os; heeft veel applicaties en hulpmiddelen die gemaakt + &os; heeft verscheidene applicaties en hulpmiddelen die gemaakt zijn door de Free Software Foundation (FSF). Als extraatje voor de documentatie kunnen deze programma's html bestanden hebben genaamd info. Deze kunnen bekeken worden door gebruik van &man.info.1; of als editors/emacs is geïnstalleerd, de infomodus van emacs. Om &man.info.1; te gebruiken:: &prompt.user; info h geeft een korte beschrijving en ? toont een kort commando–overzicht.