diff --git a/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml index 5d7e64a64a..246bf772a8 100644 --- a/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml @@ -1,1101 +1,1105 @@ Jim Mock Gereorganiseerd en delen herschreven door Arjan van Leeuwen Vertaald door Introductie Overzicht Welkom bij &os;! Dit hoofdstuk beschrijft de verschillende aspecten van het &os; Project: geschiedenis, doelen, ontwikkelmodel en meer. Na het lezen van dit hoofdstuk weet de lezer: Hoe &os; gerelateerd is aan andere besturingssystemen; De geschiedenis van het &os; Project; De doelen van het &os; Project; De fundering van het &os; open-source ontwikkelmodel; En natuurlijk: waar de naam &os; vandaan komt. Welkom bij &os;! 4.4BSD-Lite &os; is een op 4.4BSD-Lite gebaseerd besturingssysteem voor Intel (x86 en &itanium;), AMD64, Alpha en Sun &ultrasparc; computers. Er zijn ook ports naar andere architecturen in voorbereiding. Er is nog meer informatie over de geschiedenis van &os; of over de huidige release. Als de lezer wil bijdragen aan het project (code, hardware, geld) wordt aangeraden het artikel Bijdragen aan &os; te lezen. Wat kan &os;? &os; heeft veel mogelijkheden die het bespreken waard zijn. Hier zijn er enkele op een rij gezet: preemptive multitasking Preemptive multitasking zorgt ervoor dat meerdere programma's en gebruikers op dezelfde computer kunnen werken, zonder dat de systeemrespons of stabiliteit beïnvloed wordt. Meerdere gebruikers Ondersteuning voor meerdere gebruikers maakt het mogelijk dat verschillende mensen een &os; systeem tegelijkertijd kunnen gebruiken voor een groot aantal taken. Dit betekent bijvoorbeeld dat randapparaten als printers en tapedrives gedeeld kunnen worden door alle gebruikers van het systeem en dat individuele beperkingen ingesteld kunnen worden voor gebruikers of voor groepen gebruikers, zodat kritieke systeembronnen beschermd kunnen worden tegen onrechtmatig of overmatig gebruik. TCP/IP netwerken Krachtige mogelijkheden voor TCP/IP netwerken met ondersteuning voor industriestandaarden als SLIP, PPP, NFS, DHCP en NIS. Dit betekent dat een &os;-systeem makkelijk kan samenwerken met andere systemen en dat het kan functioneren als bedrijfsserver, waarbij het belangrijke functies als NFS (bestandsdeling over het netwerk), email, web services, FTP, routing en firewall-diensten kan aanbieden. Geheugenbeveiliging Geheugenbeveiliging garandeert dat applicaties (of gebruikers) elkaar niet kunnen storen. Een crashende applicatie heeft totaal geen effect op andere applicaties. &os; is een 32-bits besturingssysteem (64-bits op de Alpha, &itanium;, AMD64, en &ultrasparc;) en is van de grond af aan zo ontworpen. X Window systeem XFree86 Het X Window systeem (X11R6), een industriële standaard, biedt een grafische gebruikersinterface (GUI) met als enige benodigdheden een VGA-kaart en een beeldscherm. binaire compatibiliteit Linux binaire compatibiliteit SCO binaire compatibiliteit SVR4 binaire compatibiliteit BSD/OS binaire compatibiliteit NetBSD Door binaire compatibiliteit met veel programma's voor &linux;, SCO, SVR4, BSDI en NetBSD is het mogelijk om deze programma's zonder snelheidsverlies op &os; te draaien. Er zijn duizenden applicaties beschikbaar in de &os; ports en packages collectie. Waarom zoeken op het internet als het allemaal al klaarstaat? Duizenden andere en makkelijk over te zetten applicaties zijn beschikbaar op het internet. &os; is broncode-compatibel met de meeste populaire commerciële &unix; systemen, wat betekent dat veel applicaties nagenoeg geen wijzigingen vereisen om te compileren op &os;. Virtueel geheugen Het demand-paged virtueel geheugen en de gecombineerde VM/buffer cache van &os; zorgen ervoor dat applicaties met grote geheugenbehoeften niets te kort komen, terwijl de systeemrespons niet achteruit gaat. Symmetric Multi-Processing (SMP) SMP-ondersteuning voor computers met meerdere processoren. compilers C compilers C++ compilers FORTRAN Een volledige C, - C++, Fortran en - Perl ontwikkelomgeving. Vele andere + C++, Fortran + ontwikkelomgeving. Vele andere programmeertalen, te gebruiken voor onderzoek of geavanceerde ontwikkeling, zijn ook beschikbaar in de ports- en packagescollectie. broncode De broncode van het hele systeem is beschikbaar, zodat gebruikers de volledige controle over het systeem in handen hebben. Waarom genoegen nemen met alleen het erewoord van de softwarefabrikant, als een compleet open systeem ook tot de mogelijkheden behoort? Uitgebreide online documentatie. En nog veel meer! 4.4BSD-Lite Computer Systems Research Group (CSRG) U.C. Berkeley &os; is gebaseerd op de 4.4BSD-Lite release van de Computer Systems Research Group (CSRG) aan de University of California in Berkeley en borduurt voort op een lange traditie van ontwikkeling van BSD-systemen. Het &os; Project heeft duizenden uren gestoken in het afstellen van het systeem voor maximale prestaties en betrouwbaarheid in realistische en veel voorkomende situaties. Terwijl veel commerciële bedrijven blijven worstelen met het uitbrengen van besturingssystemen met dergelijke mogelijkheden, prestaties en betrouwbaarheid, kan &os; deze nu bieden! De toepassingen voor &os; worden alleen beperkt door eigen fantasie. Van software-ontwikkeling tot fabrieksautomatisering, van voorraadbeheersing tot de azimuth-correctie van een satellietantenne: als het kan met een commercieel &unix;product, dan kan het ook met &os;! &os; vaart ook wel bij de letterlijk duizenden open-source programma's, vaak van bijzonder hoge kwaliteit, die ontwikkeld zijn in onderzoekscentra, universiteiten over de hele wereld en open-source gemeenschappen, en die beschikbaar zijn voor weinig of geen geld. Ook steeds meer commerciële applicaties vinden hun weg naar &os;. Omdat ook de broncode van &os; zelf vrij beschikbaar is, kan het systeem aangepast worden voor speciale toepassingen of projecten, op manieren die meestal niet mogelijk zijn met besturingssystemen van vooraanstaande commerciële softwarehuizen. Hier zijn een aantal voorbeelden van toepassingen waar &os; voor gebruikt wordt: Internetdiensten: de robuuste TCP/IP netwerkarchitectuur die in &os; zit, maakt het een ideaal platform voor uiteenlopende internetdiensten als: FTP servers FTP servers; webservers World Wide Webservers (standaard of beveiligd [SSL]); firewall NAT Firewalls en NAT (IP-maskering) gateways; elektronische mail e-mail e-mail E-mail servers; USENET USENET nieuws of Bulletin Board (BBS) systemen; En meer... &os; kan eenvoudig geleerd worden op een goedkope standaard-PC, om later verder te groeien naar een professioneel Xeon-systeem met 4 processoren (of meer!) en RAID opslagsystemen als een bedrijf groeit. Onderwijs: is de lezer informatica-student of werkzaam in een ander vakgebied dat hier mee te maken heeft? Er is geen betere manier om besturingssystemen, computerarchitecturen en netwerken te bestuderen dan de hands-on open-source ervaring die &os; kan bieden. Gratis beschikbare programma's voor CAD, wiskundige toepassingen en grafisch ontwerp maken &os; ook heel handig voor mensen wiens primaire interesse voor de computer ligt bij het voltooien van ander werk! Onderzoek: omdat de broncode van het volledige systeem beschikbaar is, vormt &os; een uitstekende basis voor het onderzoeken van besturingssystemen of andere takken in de informatica. De open natuur van &os; maakt het ook mogelijk voor groepen mensen over de hele wereld om met elkaar samen te werken, zonder dat men zich zorgen hoeft te maken over speciale licentieovereenkomsten of beperkingen op wat er besproken kan worden in open fora. router DNS Server Netwerken: nieuwe router nodig? Of een nameserver (DNS)? Een firewall om een intern netwerk te beschermen? &os; kan die ongebruikte 486 of Pentium PC die nog ergens in een hoekje ligt gemakkelijk omtoveren tot een geavanceerde router met uitgebreide pakketfilter mogelijkheden. X Window systeem XFree86 X Window systeem Accelerated-X X Window werkstation: &os; is een prima keuze als goedkope X terminal oplossing, door gebruik te maken van de gratis beschikbare X11 server of een van de commerciële servers aangeboden door Xi Graphics. In tegenstelling tot een pure X terminal kan &os; ook applicaties lokaal draaien, wat een verlichting van de centrale server tot gevolg kan hebben. &os; heeft zelfs de mogelijkheid om schijfloos op te starten, zodat individuele workstations nog goedkoper en makkelijker te beheren zijn. Bureaublad: de beschikbaarheid van geavanceerde bureabladomgevingen als KDE en GNOME en kantoortoepassingen als tekstverwerkers en spreadsheet-programma's in de ports- en packagescollectie maken van &os; een uitgebreid desktop-platform. Thuis en op het werk zorgt &os; ervoor dat er snel, efficiënt en veilig gewerkt kan worden! GNU Compiler Collection Software Ontwikkeling: bij het standaard &os;-systeem zit al een volledige verzameling van ontwikkelgereedschappen, inclusief de bekende GNU C/C++ compiler en debugger. &os; is beschikbaar in zowel broncode als binaire vorm op cd-rom, DVD en via FTP. In staat meer informatie over het verkrijgen van &os;. Wie gebruiken &os;? gebruikers grote sites die &os; draaien &os; is de drijvende kracht achter enkele van de grootste sites die het internet kent, zoals: Yahoo! Yahoo! Apache Apache Blue Mountain Arts Blue Mountain Arts Pair Networks Pair Networks Sony Japan Sony Japan Netcraft Netcraft Weathernews Weathernews Supervalu Supervalu TELEHOUSE America TELEHOUSE America Sophos Anti-Virus Sophos Anti-Virus JMA Wired JMA Wired en nog veel meer sites. Over het &os; project Deze paragraaf geeft wat meer achtergrondinformatie over het project, inclusief een korte geschiedenis, projectdoelen, en het ontwikkelmodel van het project. Jordan Hubbard Bijgedragen door Korte geschiedenis van &os; 386BSD Patchkit Hubbard, Jordan Williams, Nate Grimes, Rod &os; Project geschiedenis Het &os; Project zag het licht in het begin van 1993, gedeeltelijk als een voortzetting van de Unofficial 386BSD Patchkit door de 3 laatste coördinatoren van de patchkit: Nate Williams, Rod Grimes en ikzelf. 386BSD Het oorspronkelijke doel was om een zogenaamde 'snapshot'-release te maken van 386BSD, om zo een aantal problemen op te lossen die niet op te lossen waren met het patchkit-mechanisme dat eerder gebruikt was. Sommigen kunnen zich misschien nog herinneren dat de werktitel van het project in het begin nog 386BSD 0.5 of 386BSD Interim was, refererend aan het oorspronkelijke doel. Jolitz, Bill 386BSD was het besturingssysteem van Bill Jolitz en had tot op dat moment geleden onder het feit dat er al bijna een jaar niet naar omgekeken was. Terwijl de patchkit steeds groter en onhandiger werd, was een groep mensen het er over eens dat er iets moest gebeuren en beslisten om Bill te assisteren bij het maken van een tussentijdse cleanup snapshot. Deze plannen kwamen echter tot een plotseling einde toen Bill Jolitz besliste om zijn toestemming voor het project in te trekken, zonder dat er een alternatief werd geboden. Greenman, David Walnut Creek CDROM Het duurde niet lang om te beslissen dat het doel nog steeds belangrijk was, zelfs zonder de ondersteuning van Bill, dus werd de naam &os; aangenomen, naar een idee van David Greenman. De oorpronkelijke doelen werden opgesteld na het raadplegen van de gebruikers van het systeem. Toen het erop begon te lijken dat dit project misschien wel snel realiteit kon worden, werd contact opgenomen met Walnut Creek CDROM vanuit het oogpunt om de distributiekanalen van &os; te verbeteren voor diegenen die geen toegang hadden tot internet. Walnut Creek CDROM ondersteunde niet alleen het idee om &os; op cd-rom te distribueren, maar bood het project ook een systeem en een snelle internetverbinding om mee te werken. Zonder Walnut Creek CDROM's bijna onbeperkte vertrouwen in wat op dat moment nog een compleet onbekend project was, is het onwaarschijnlijk dat &os; zo ver gekomen zou zijn, en zo snel, als het vandaag de dag is. 4.3BSD-Lite Net/2 U.C. Berkeley 386BSD Free Software Foundation De eerste cd-rom (en algemene op het net beschikbare) distributie was &os; 1.0, uitgebracht in december 1993. Deze versie was gebaseerd op de 4.3BSD-Lite (Net/2) tape van U.C. Berkeley, met veel toevoegingen van 386BSD en de Free Software Foundation. Het werd een redelijk succes voor een eerste aanbod, en werd opgevolgd door de zeer succesvolle &os; 1.1 release in mei 1994. Novell U.C. Berkeley Net/2 AT&T Rond deze tijd vormde zich nogal onverwacht een stormachtige lucht aan de horizon toen Novell en U.C. Berkeley hun langlopende rechtszaak over de legale status van de Berkeley Net/2 tape oplosten met een schikking. Een voorwaarde van deze schikking was dat U.C. Berkeley toegaf dat grote delen van Net/2 beladen code was en het eigendom van Novell, die deze code op haar beurt overgenomen had van AT&T enige tijd hiervoor. Wat Berkeley hiervoor terugkreeg was Novell's zegen over de 4.4BSD-Lite release; wanneer deze uitkwam zou Novell verklaren dat geen van de code hierin eigendom van Novell was, en bestaande Net/2 gebruikers zou sterk aanbevolen worden om over te stappen naar deze nieuwe versie. Dit gold ook voor &os; en het project werd de tijd gegeven tot juli 1994 om te stoppen met het distribueren van het eigen op Net/2-gebaseerde product. De schikking liet wel toe dat nog een laatste release werd uitgebracht voor de deadline en dat was &os; 1.1.5.1. &os; nam toen de enorme taak op zich om zichzelf letterlijk opnieuw uit te vinden, met als basis een volledig nieuwe en nogal incomplete verzameling van delen van 4.4BSD-Lite. De Lite releases werden zo genoemd omdat Berkeley's CSRG grote delen code die nodig waren om een werkend systeem te construeren had weggelaten (om allerlei legale redenen) en omdat de Intel port van 4.4 grotendeels incompleet was. Het kostte het project tot november 1994 om deze overstap te maken. Op dat moment werd &os; 2.0 op het net en op cd-rom (aan het einde van december) uitgebracht. Ondanks het feit dat deze release nog wat ruige kantjes had, werd het een groot succes en werd het gevolgd door de robustere en makkelijker te installeren &os; 2.0.5 in juni 1995. In augustus 1996 is &os; 2.1.5 uitgebracht en deze bleek populair genoeg bij internet service providers (ISP's) en andere commerciële gebruikers van &os; om nog een release van de 2.1-STABLE tak te rechtvaardigen. Dit was &os; 2.1.7.1, uitgebracht in februari 1997. Deze release markeerde het einde van de hoofdstroomontwikkeling op 2.1-STABLE; alleen beveilingsupdates en andere kritieke bug fixes werden nog op deze tak uitgevoerd (RELENG_2_1_0). &os; 2.2 werd afgesplitst van de ontwikkelingstak (-CURRENT) in november 1996 als RELENG_2_2 en de eerste volledige release (2.2.1) werd uitgebracht in april 1997. Andere releases van de 2.2 tak werden uitgebracht in de zomer en herfst van '97. De laatste (2.2.8) verscheen in november 1998. De eerste officiële 3.0 release verscheen in oktober 1998 en was het begin van het einde voor de 2.2 tak. Er was opnieuw een afsplitsing op 20 januari 1999, wat leidde tot de 4.0-CURRENT en 3.x-STABLE takken. Vanuit 3.X-STABLE werd versie 3.1 uitgebracht op 15 februari 1999, 3.2 op 15 mei 1999, 3.3 op 16 september 1999, 3.4 op 20 december 1999 en 3.5 op 24 juni 2000. De laatste werd enkele dagen later gevolgd door een point release update naar 3.5.1, om enkele net-ontdekte beveiligingsfouten in Kerberos te corrigeren. Dit was de laatste release van de 3.X tak. Een nieuwe tak werd gemaakt op 13 maart 2000, de 4.X-STABLE tak. Er zijn verschillende releases van deze tak gemaakt: 4.0-RELEASE werd geïntroduceerd in maart 2000, en - de laatste &rel2.current;-RELEASE verscheen in - &rel2.current.date;. + de laatste 4.11-RELEASE verscheen in januari 2005. De langverwachte 5.0-RELEASE werd aangekondigd op 19 januari 2003. Dit resultaat van bijna drie jaar werk zette &os; stevig neer op de weg naar geavanceerde multiprocessor- en threading-ondersteuning en introduceerde nieuwe &os; ports voor de &ultrasparc; en ia64 architecturen. Deze release werd gevolgd door 5.1 in juni 2003. De laatste 5.X release uit de –CURRENT-tak was 5.2.1–RELEASE uit februari 2004. De RELENG_5 tak is gemaakt in augustus 2004 en werd gevolgd door 5.3-RELEASE, die het begin van de 5-STABLE tak - markeert. De meest recente &rel.current;-RELEASE is uitgekomen - op &rel.current.date;. Er staan nog andere versies gepland + markeert. De meest recente &rel2.current;-RELEASE is uitgekomen + op &rel2.current.date;. Er staan nog andere versies gepland in de RELENG_5 tak. + De RELENG_6 tak is gemaakt in juli 2005, de eerste release + van de 6.X tak werd vrijgegeven in november 2005. De meest + recente &rel.current;-RELEASE kwam uit op &rel.current.date;. + Er staan nog andere versies gepland in de RELENG_6 tak. + Op dit moment vinden lange-termijn ontwikkelprojecten - plaats in de 6.X-CURRENT tak, en snapshot releases van 6.X op + plaats in de 7.X-CURRENT tak, en snapshot releases van 7.X op cd-rom (en natuurlijk op het Net) worden continu beschikbaar gemaakt op de snapshot server. Jordan Hubbard Bijgedragen door &os; projectdoelen &os; Project doelen Het doel van het &os; Project is om software aan te bieden die gebruikt kan worden voor iedere mogelijke toepassing, zonder beperkingen. Vele ontwikkelaars hebben een belangrijke investering in de code (en het project) zitten en vinden het niet erg om af en toe een financiële compensatie te ontvangen, maar dat is zeker geen voorwaarde. De ontwikkelaars van &os; geloven dat de eerste en belangrijkste missie het aanbieden van code is, aan iedereen die het wil hebben, voor wat voor doel dan ook, zodat de code zo breed mogelijk gebruikt kan worden tot voordeel van zoveel mogelijk mensen. Dit is een van de meest fundamentele doelen van Vrije Software dat &os; enthousiast ondersteunt. GNU General Public License (GPL) GNU Lesser General Public License (LGPL) BSD Copyright Sommige code in &os; valt onder de GNU General Public License (GPL) of Library General Public License (LGPL). Deze code heeft iets meer beperkingen, maar in ieder geval aan de kant waarbij vrije toegang tot de code geforceerd wordt, in plaats van het gebruikelijke tegenovergestelde hiervan. Door de toegevoegde moeilijkheden die kunnen voortkomen uit het commerciële gebruik van GPL software geeft het &os; Project echter de voorkeur aan het meer vrije BSD copyright, wanneer er een redelijk alternatief voor handen is. Satoshi Asami Bijgedragen door Het &os; ontwikkelmodel &os; Project ontwikkelmodel De ontwikkeling van &os; is een erg open en flexibel proces en wordt gevormd door de bijdragen van letterlijk honderden mensen over de hele wereld, zoals te zien is in de lijst van medewerkers. De infrastructuur die wordt gebruikt voor de ontwikkeling van &os; zorgt ervoor dat deze honderden ontwikkelaars kunnen samenwerken over het internet. Het &os; Project is continu op zoek naar nieuwe ontwikkelaars en ideeën. Om bij te dragen aan de ontwikkeling van &os; is een mail naar &a.hackers; voldoende. De &a.announce; is beschikbaar om mededelingen te doen aan andere &os;-gebruikers over grote veranderingen. Een aantal dingen over &os; en haar ontwikkelingsproces zijn handig om te weten, of een bijdrage nu onafhankelijk of in samenwerking met anderen uit het Project komt: Het CVS-archief CVS archief Concurrent Versions System CVS Alle broncode voor &os; wordt bijgehouden met CVS (Concurrent + url="http://ximbiot.com/cvs/wiki/">CVS (Concurrent Versions System), een vrij verkrijgbaar pakket voor het onderhouden van broncode die bij &os; zit. Het primaire CVS archief staat op een systeem in Santa Clara, Californië, in de VS, waar het wordt gesynchroniseerd met verschillende mirrors over de hele wereld. De boomstructuur van CVS, waarin de broncode voor -CURRENT en -STABLE is te vinden, kan ook makkelijk met die op een eigen systeem gesynchroniseerd worden. Synchroniseren van broncode bevat meer informatie over dit onderwerp. Committers committers De zogenaamde committers zijn alle mensen die schrijf-rechten hebben in het CVS archief van &os;. Deze mensen mogen veranderingen maken aan de &os; broncode (de term committer is afkomstig uit het &man.cvs.1; commit commando, wat gebruikt wordt om veranderingen door te voeren in het CVS-archief). De beste manier om eigen bijdragen te laten keuren door een van de committers is door gebruik te maken van &man.send-pr.1;. Als het erop lijkt dat een bijdrage ergens in het systeem blijft hangen, dan is het ook mogelijk om mail te sturen naar de &a.committers;. Het &os; Core Team core team Het &os; core team zou het equivalent zijn van een raad van bestuur als &os; een bedrijf zou zijn. De primaire taak van het core team is ervoor zorg te dragen dat het project, in zijn geheel, in goede vorm verkeert en de goede richting opgaat. Toegewijde en verantwoordelijke ontwikkelaars uitnodigen om deel te worden van de committers is één van de taken van het core team, net als het recruteren van nieuwe leden van het core team. Het huidige core team is gekozen door de committers uit een groep van kandidaten (ook allen committers) in juli 2004. Elke twee jaar worden verkiezingen gehouden. Sommige leden van het core team hebben een bijzondere verantwoordelijkheid, wat wil zeggen dat zij er speciaal op toezien dat een bepaald deel van het systeem werkt zoals het hoort. In de lijst van medewerkers staat een complete lijst van ontwikkelaars en hun verantwoordelijkheden. De meeste leden van het core team zijn vrijwilligers. Toewijding betekent dus niet gegarandeerde ondersteuning. De raad van bestuur-analogie hierboven klopt niet helemaal en het is misschien beter om te zeggen dat dit de mensen zijn die hun leven opgaven voor &os;, tegen beter weten in! Externe Bijdragen externe bijdragen De grootste groep ontwikkelaars zijn de gebruikers zelf, die &os; continu voorzien van constructief commentaar en oplossingen voor fouten. De handigste manier om contact te houden met het niet-gecentraliseerde deel van de ontwikkeling van &os; is een abonnement nemen op de &a.hackers;, waar allerlei bijdragen, patches en nieuwe ideeën worden bediscussieerd. In is meer informatie te vinden over de verschillende &os; mailinglijsten. De lijst van medewerkers is lang en groeit iedere dag, dus wat let de lezer om zelf een bijdrage te doen aan &os;? Programmeren is niet de enige manier om een bijdrage te leveren aan het project. Een meer volledige lijst van dingen die gedaan moeten worden staat op de &os; web site. Samengevat is het &os; ontwikkelmodel georganiseerd als een niet-samenhangende verzameling van concentrische cirkels. Het gecentraliseerde model is ontworpen voor het gemak van de gebruikers van &os;, die op deze manier makkelijk de wijzigingen in het project kunnen volgen. Niet om potentiële medewerkers buiten de deur te houden! Het is wenselijk om een stabiel besturingssysteem te maken, met een grote verzameling samenhangende applicaties. Dit model heeft zijn waarde op dat gebied bewezen. Om bij te dragen en samen &os; verder te ontwikkelen, is het enige wat het &os; Project vraagt dat te doen met dezelfde toewijding als de huidige ontwikkelaars: succes gegarandeerd! Huidige &os; release NetBSD OpenBSD 386BSD Free Software Foundation U.C. Berkeley Computer Systems Research Group (CSRG) &os; is een open source, op 4.4BSD-Lite gebaseerd besturingssysteem voor Intel (x86 en &itanium;), AMD64, Alpha en Sun &ultrasparc; computers. Het is grotendeels gebaseerd op software van de Computer Systems Research Group (CSRG) van de University of California in Berkeley (U.C. Berkeley), met verbeteringen overgenomen van NetBSD, OpenBSD, 386BSD en de Free Software Foundation. Sinds het uitbrengen van &os; 2.0 tegen het einde van 1994, zijn de prestaties, mogelijkheden en stabiliteit van &os; dramatisch verbeterd. &os; heeft namelijk de beschikking over een compleet nieuw subsysteem voor virtueel geheugen, dat niet alleen de prestaties ten goede komt, maar er ook voor zorgt dat het systeem minder geheugen gebruikt dan ooit tevoren. Andere belangrijke verbeteringen zijn de ondersteuning van veel nieuwe hardware, een compleet nieuw systeem voor de ondersteuning van machines met meerdere processoren (SMP) en een nieuwe bibliotheek voor de ondersteuning van multithreading in applicaties. Behalve de basisdistributie van het besturingssysteem, biedt &os; ook een enorme softwarecollectie met duizenden veelgebruikte programma's, de zogenaamde ports. Op het moment van schrijven zijn er al meer dan &os.numports; ports! In de ports zitten alle mogelijke klassen van software die te bedenken zijn, van http-servers tot spellen, van kantoorapplicaties tot multimedia en alles wat er tussenin zit. De complete Portscollectie beslaat zo'n &ports.size; aan schijfruimte. Meer informatie over de ports en over de packages is te vinden in . Een aantal andere documenten die kunnen helpen bij het installeren en gebruiken van &os; staan in de map /usr/share/doc op ieder recente &os;-installatie. De lokaal geïnstalleerde documentatie kan in een browser bekeken worden door de volgende URLs te gebruiken: Het &os; handboek /usr/share/doc/handbook/index.html De &os; FAQ /usr/share/doc/faq/index.html De nieuwste versies van deze documenten zijn altijd te vinden op . diff --git a/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml index 42f71bb6eb..e946e45997 100644 --- a/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml @@ -1,1272 +1,1273 @@ Neil Blakey-Milner Geschreven door Siebrand Mazeland Vertaald door Gebruikers en basis accountbeheer Overzicht Met &os; is het mogelijk een computer met meerdere gebruikers tegelijkertijd te gebruiken. Natuurlijk kan er op een zeker moment maar één gebruiker achter het scherm en toetsenbord zitten Tenzij er natuurlijk meerdere terminals worden aangesloten, maar dat wordt behandeld in . , maar er kan een groot aantal gebruikers zijn aangemeld via het netwerk om dingen met de computer te doen. Om een systeem te gebruiken moet een gebruiker een account hebben. Na het lezen van dit hoofdstuk weet de lezer: De verschillen tussen de gebruikersaccounts op een &os; systeem; Hoe gebruikersaccounts toe te voegen; Hoe gebruikersaccounts te verwijderen; Hoe eigenschappen van accounts te wijzigen, zoals de volledige naam van de gebruiker of de voorkeursshell; Hoe op een per account basis limieten in te stellen om het bronnengebruik van bijvoorbeeld geheugen en processortijd te reguleren voor accounts en accountgroepen; Hoe groepen te gebruiken om accountbeheer te vereenvoudigen. Aangeraden voorkennis: Basisbegrip van &unix; en &os; (). Inleiding Via accounts wordt alle toegang tot een systeem gegeven en alle processen worden door gebruikers gedraaid. Dus gebruikers en accountbeheer zijn van integraal belang op &os; systemen. Elke account op een &os; systeem heeft een aantal informatievelden waarmee de account geïdentificeerd kan worden. Gebruikersnaam De gebruikersnaam, zoals die ingevoerd wordt bij het prompt login:. Gebruikersnamen moeten uniek zijn op een computer. Er mogen geen twee gebruikers zijn met dezelfde gebruikersnaam. Er horen een aantal regels bij het maken van geldige gebruikersnamen, die in &man.passwd.5; staan beschreven. Gebruikersnamen bestaan gewoonlijk uit acht of minder karakters (geen hoofdletters). Wachtwoord Bij ieder account hoort een wachtwoord. Het wachtwoord kan leeg zijn. Er is dan geen wachtwoord nodig om toegang te krijgen tot een systeem. Dit is meestal een slecht idee. Ieder account hoort een wachtwoord te hebben. Gebruikers ID (UID) Het UID is een nummer, traditioneel van 0 tot 65535 Het is mogelijk om UID/GID's te gebruiken tot 4294967295, maar die ID's kunnen tot serieuze problemen leiden met software die aannames maakt over de waarde van ID's. , dat wordt gebruikt om een gebruiker op een systeem uniek te identificeren. Intern gebruikt &os; het UID om gebruikers te identificeren. Voor alle &os; commando's waarin een gebruikersnaam wordt opgegegeven, wordt eerst geconverteerd naar het UID voordat ermee gewerkt wordt. Dit betekent dat er verschillende accounts kunnen zijn met andere gebruikersnamen maar met hetzelfde UID. Wat &os; betreft zijn al die accounts één gebruiker. Het is onwaarschijnlijk dat het ooit nodig is deze eigenschap te gebruiken. Groep ID (GID) Het GID is een nummer, traditioneel van 0 tot 65535 , gebruikt om de primaire groep waartoe een gebruiker behoort, uniek te identificeren. Groepen zijn een methode waarmee toegang tot bronnen beheerst kan worden, gebaseerd op het GID van een gebruiker in plaats van op een UID. Hiermee kan het aantal instellingen in bepaalde bestanden aanzienlijk verkleind worden. Een gebruiker kan lid zijn van meer dan één groep. Aanmeldklasse Aanmeldklassen zijn een uitbreiding op het groepenmechanisme waarmee additionele flexibiliteit wordt geboden bij het aanpassen van een systeem op verschillende gebruikers. Wijzigingstijd wachtwoord Standaard dwingt &os; gebruikers niet tot het periodiek wijzigen van hun wachtwoord. Dit kan wel per gebruiker afgedwongen worden, zodat sommige of alle gebruikers hun wachtwoord na een bepaalde periode moeten wijzigen. Verloopdatum account Standaard verlopen accounts op &os; niet. Als er accounts gemaakt worden waarvan bekend is dat ze maar een beperkte tijd nodig zijn, bijvoorbeeld op een school waar accounts bestaan voor studenten, dan kan er aangegeven worden wanneer een account verloopt. Nadat de verloopdatum is verstreken kan de account niet meer gebruikt worden om aan te melden op een systeem, hoewel de mappen en bestanden van de account nog wel blijven bestaan. Volledige gebruikersnaam De gebruikersnaam identificeert de account uniek voor &os;, maar die geeft niet zonder meer de echte naam van de gebruiker weer. Deze informatie kan aan de account gekoppeld worden. Thuismap De thuismap is het volledige pad naar een map op een systeem waar de gebruiker start als die aanmeldt op een systeem. Het is de gewoonte dat alle thuismappen voor gebruikers onder /home/gebruikersnaam of /usr/home/gebruikersnaam staan. Gebruikers slaan hun persoonlijke bestanden op in hun thuismap en in mappen die daaronder worden gemaakt. Gebruikersshell De shell biedt een standaardomgeving waarmee gebruikers met een systeem werken. Er zijn vele shells en ervaren gebruikers hebben hun eigen voorkeuren, die hun weerslag kunnen hebben in hun accountinstellingen. Er zijn drie hoofdtypen accounts: de Superuser, systeemgebruikers en gebruikersaccounts. De Superuser account, die meestal root heet, wordt gebruikt om een systeem te beheren zonder beperkingen. Systeemgebruikers kunnen diensten draaien. Tenslotte kunnen gebruikersaccounts gebruikt worden door echte personen, die aanmelden, e-mail lezen, enzovoort. De superuser account accounts superuser (root) De superuser account, die meestal root heet, is al ingesteld om gebruikt te worden voor systeembeheer en hoort niet gebruikt te worden voor dagelijkse werkzaamheden, zoals het sturen en ontvangen van e-mail, het verkennen van het systeem of programmeren. Dit omdat de Superuser, anders dan gewone gebruikersaccounts, zonder beperkingen kan opereren en misbruik van een Superuser account kan resulteren in spectaculaire problemen. Gebruikersaccounts kunnen niet per ongeluk een systeem vernielen, dus het is aan te raden om wanneer maar mogelijk gewone gebruikersaccounts te gebruiken, tenzij de extra privileges noodzakelijk zijn. Commando's die als superuser worden uitgevoerd dienen altijd twee of drie keer gecontroleerd te worden voordat ze worden uitgevoerd, omdat een extra spatie of een missend karakter kan leiden tot niet terug te draaien dataverlies. Als het niet al geregeld is, is het dus na het lezen van dit hoofdstuk aan te raden als eerste een gebruikersaccount zonder bijzondere rechten te maken voor de dagelijkse bezigheden. Dit geldt zowel als het gaat over een machine voor één gebruiker als wanneer het gaat over een machine voor meerdere gebruikers. Later in dit hoofdstuk wordt beschreven hoe additionele accounts gemaakt kunnen worden en hoe er tussen de normale gebruiker en de Superuser gewisseld kan worden. Systeemaccounts accounts systeem Systeemgebruikers draaien diensten, zoals DNS, mailservers, webservers, enzovoort. De reden hiervoor is beveiliging. Als alle diensten als Superuser zouden draaien, dan zouden ze zonder beperkingen kunnen opereren. accounts daemon accounts operator Voorbeelden van systeemgebruikers zijn daemon, operator, bind (voor de Domain Name Service), news en www. accounts nobody nobody is de generieke systeemgebruiker zonder bijzondere privileges. Het is wel belangrijk om ervan bewust te zijn dat hoe meer diensten nobody gebruiken, hoe meer bestanden en processen er bij die gebruiker horen en dat de gebruiker daardoor meer privileges kan krijgen. Gebruikersaccounts accounts gebruiker Gebruikersaccounts zijn het primaire middel dat echte gebruikers gebruiken om toegang te krijgen tot een systeem en die account schermen de gebruiker en de omgeving af, waardoor die gebruikers het systeem of andere gebruikers niet kunnen beschadigen en waardoor gebruikers hun omgeving kunnen aanpassen zonder invloed te hebben op anderen. Iedereen die toegang heeft tot een systeem hoort een unieke gebruikersaccount te hebben. Hierdoor is het mogelijk uit te vinden wie wat aan het doen is, te voorkomen dat mensen elkaars instellingen kunnen verpesten of elkaars e-mail kunnen lezen, enzovoort. Iedere gebruiker kan zijn eigen omgeving instellen op een systeem, door andere shells, editors, toetsenbordinstellingen en taal te kiezen. Accounts wijzigen accounts wijzigen Er zijn vele commando's beschikbaar in de &unix; omgeving om gebruikersaccounts te manipuleren. De meest gebruikte commando's worden hieronder beschreven, gevolgd door meer gedetailleerde voorbeelden van gebruik. Commando Samenvatting &man.adduser.8; Het aanbevolen commandoregelprogramma voor het aanmaken van nieuwe gebruikers. &man.rmuser.8; Het aanbevolen commandoregelprogramma voor het verwijderen van gebruikers. &man.chpass.1; Een flexibel hulpprogramma voor het wijzigen van informatie in de gebruikersdatabase. &man.passwd.1; Een eenvoudig commandoregelprogramma voor het wijzigen van wachtwoorden van gebruikers. &man.pw.8; Een krachtig en flexibel hulpprogramma voor het wijzigen van alle aspecten van gebruikersaccounts. <command>adduser</command> accounts toevoegen adduser /usr/share/skel skeleton map &man.adduser.8; is een eenvoudig programma voor het aanmaken van nieuwe gebruikers. Er worden regels mee toegevoegd aan de systeembestanden passwd en group. Het maakt ook een thuismap voor de nieuwe gebruiker, kopieert de standaard instellingenbestanden (dotfiles) uit /usr/share/skel en kan, optioneel, de nieuwe gebruiker een welkomstbericht mailen. In &os; 5.0, is &man.adduser.8; herschreven van een Perl script naar een shell script dat een wrapper om &man.pw.8; is, zodat het gebruik wat verschilt tussen &os; 4.X en &os; 5.X. Een eerste instellingenbestand kan gemaakt worden met adduser -s -config_create Door de optie start &man.adduser.8; standaard in stille modus. Later wordt de optie gebruikt als de standaarden worden aangepast. . Hierna worden de &man.adduser.8; standaarden ingesteld en kan de eerste gebruikersaccount gemaakt worden, omdat het gebruik van root voor normaal gebruik boosaardig en naar kan zijn. <command>adduser</command> instellen en een gebruiker op &os; 4.X toevoegen &prompt.root; adduser -v Use option ``-silent'' if you don't want to see all warnings and questions. Check /etc/shells Check /etc/master.passwd Check /etc/group Enter your default shell: csh date no sh tcsh zsh [sh]: zsh Your default shell is: zsh -> /usr/local/bin/zsh Enter your default HOME partition: [/home]: Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: Send message from file: /etc/adduser.message no [/etc/adduser.message]: no Do not send message Use passwords (y/n) [y]: y Write your changes to /etc/adduser.conf? (y/n) [n]: y Ok, let's go. Don't worry about mistakes. I will give you the chance later to correct any input. Enter username [a-z0-9_-]: jru Enter full name []: J. Random User Enter shell csh date no sh tcsh zsh [zsh]: Enter home directory (full path) [/home/jru]: Uid [1001]: Enter login class: default []: Login group jru [jru]: Login group is ``jru''. Invite jru into other groups: guest no [no]: wheel Enter password []: Enter password again []: Name: jru Password: **** Fullname: J. Random User Uid: 1001 Gid: 1001 (jru) Class: Groups: jru wheel HOME: /home/jru Shell: /usr/local/bin/zsh OK? (y/n) [y]: y Added user ``jru'' Copy files from /usr/share/skel to /home/jru Add another user? (y/n) [y]: n Goodbye! &prompt.root; Samenvattend is de standaard shell gewijzigd in zsh (een extra shell uit de Portscollectie) en is het sturen van een welkomstbericht aan nieuwe gebruikers uitgeschakeld. Daarna zijn de instellingen opgeslagen en is een account gemaakt voor jru en is jru in de groep wheel geplaatst (zodat die gebruiker de rol van root mag aannemen met het commando &man.su.1;). Het wachtwoord dat wordt ingegeven wordt niet weergegeven en er worden ook geen sterretjes getoond. Het is belangrijk geen typefouten in het wachtwoord te maken. Vanaf nu kan &man.adduser.8; zonder argumenten gebruikt worden en hoeven de standaardinstellingen niet meer aangepast te worden. Als het programma vraagt om de instellingen te wijzigen, kan het verlaten worden en opnieuw gestart worden met de optie . Een gebruiker toevoegen aan &os; 5.X &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]: 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; <command>rmuser</command> rmuser accounts verwijderen Met &man.rmuser.8; kan een gebruiker volledig van een systeem verwijderd worden. &man.rmuser.8; voert de volgende stappen uit: Verwijdert de &man.crontab.1; van de gebruiker (als die bestaat). Verwijdert bestaande &man.at.1; taken van de gebruiker. Stopt alle processen van de gebruiker. Verwijdert de gebruiker uit het lokale wachtwoordbestand van een systeem. Verwijdert de thuismap van de gebruiker (als de gebruiker daar eigenaar van is). Verwijdert de inkomende e-mail voor de gebruiker uit /var/mail. Verwijdert alle bestanden waar de gebruiker eigenaar van is uit opslaggebieden voor tijdelijke bestanden als /tmp. Als laatste wordt de gebruikersnaam uit alle groepen in /etc/group waar die lid van was verwijderd. Als een groep leeg raakt en de groepsnaam is hetzelfde als de gebruikersnaam, dan wordt de groep verwijderd. Dit is het tegenovergestelde van wat &man.adduser.8; met een unieke groep per gebruiker. &man.rmuser.8; kan niet gebruikt worden om superuser accounts te verwijderen, omdat dat vrijwel altijd leidt tot vreselijke verwoesting. Standaard wordt een interactieve modus gebruikt, die ervoor zorgt dat alle stappen bewust worden genomen. 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 Updating password file, updating databases, done. Updating group file: trusted (removing group jru -- personal group is empty) done. Removing user's incoming mail file /var/mail/jru: done. Removing files belonging to jru from /tmp: done. Removing files belonging to jru from /var/tmp: done. Removing files belonging to jru from /var/tmp/vi.recover: done. &prompt.root; <command>chpass</command> chpass &man.chpass.1; wijzigt informatie in de gebruikersdatabase, zoals wachtwoorden, shells en persoonlijke informatie. Alleen systeembeheerders, zoals de Superuser, mogen de informatie en wachtwoorden voor andere andere gebruikers wijzigen met &man.chpass.1;. Als er geen opties worden meegegeven, buiten de optionele gebruikersnaam, dan toont &man.chpass.1; een editor waarin de gebruikersinformatie wordt weergegeven. Als de gebruiker de editor verlaat, dan wordt de gebruikersdatabase bijgewerkt met de nieuwe informatie. In &os; 5.X wordt er gevraagd om een wachtwoord na het verlaten van de editor als de uitvoerende gebruiker geen superuser is. Interactieve <command>chpass</command> door superuser #Informatie in de gebruikersdatabase wijzigen voor 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: Een normale gebruiker kan slechts een deel van de bovenstaande informatie wijzen en alleen voor zijn eigen account. Interactieve <command>chpass</command> door een gewone gebruiker #Informatie in de gebruikersdatabase wijzigen voor 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 gewoon links naar &man.chpass.1;. Dat geldt ook voor &man.ypchpass.1;, &man.ypchfn.1; en &man.ypchsh.1;. Ondersteuning voor NIS gaat automatisch; er hoeft dus geen yp voor het commando aangegeven te worden. NIS wordt behandeld in . <command>passwd</command> passwd accounts wachtwoord wijzigen Met &man.passwd.1; wijzigt een gebruiker gewoonlijk zijn eigen wachtwoord of dat van een andere gebruiker als het door de Superuser wordt uitgevoerd. Om onbedoelde of ongeautoriseerde wijzigen te voorkomen moet het originele wachtwoord worden ingegeven voordat een nieuw wachtwoord kan worden ingesteld. Wachtwoord wijzigen &prompt.user; passwd Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done Als superuser het wachtwoord van een andere gebruiker wijzigen &prompt.root; passwd jru Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done Net als bij &man.chpass.1; is &man.yppasswd.1; gewoon een link naar &man.passwd.1;, dus NIS werkt met beide commando's. <command>pw</command> pw &man.pw.8; is een commandoregelhulpprogramma om gebruikers en groepen te maken, verwijderen, aan te passen en weer te geven. Het werkt als een voorkant voor de systeembestanden met gebruikers en groepen. &man.pw.8; heeft een zeer krachtige set commandoregelopties, waardoor het erg geschikt is om in shell scripts gebruikt te worden. Nieuwe gebruikers vinden het wellicht gecompliceerder dan de andere commando's die hier beschreven worden. Gebruikers beperken gebruikers beperken accounts beperken Bij het hebben van gebruikers komt wellicht ook de gedachte aan het beperken van de mogelijkheden op een systeem. &os; biedt een aantal mogelijkheden waarmee een beheerder de hoeveelheid systeembronnen die een gebruiker kan aanwenden kan beperken. Die beperkingen zijn onderverdeeld in twee onderdelen: schijfquota en andere beperkingen voor bronnen. quota gebruikers beperken quota schijfquota Schijfquota beperken het schijfgebruik voor gebruikers en ze bieden een mogelijkheid om dat gebruik snel te controleren zonder het iedere keer te hoeven berekenen. Quota worden besproken in . De overige beperking van bronnen omvat het beperken van het gebruik van CPU, geheugen en andere bronnen die gebruikers tot hun beschikking hebben. Die worden ingesteld in aanmeldklassen en worden hieronder beschreven. /etc/login.conf Aanmeldklassen worden ingesteld in /etc/login.conf. De precieze semantiek wordt niet behandeld in dit handboek, maar die staat beschreven in &man.login.conf.5;. Hier is het voldoende aan te geven dat iedere gebruiker wordt toegewezen aan een aanmeldklasse (standaard default) en dat iedere aanmeldklasse verbonden is met een groep aanmeldmogelijkheden (login capability). Een aanmeldmogelijkheid is een naam=waarde paar, waar naam een bekende eigenschap is en waarde een arbitraire string is die wordt verwerkt afhankelijk van de naam. Het instellen van aanmeldklassen en -mogelijkheden is een redelijk eenvoudig proces en wordt ook beschreven in &man.login.conf.5;. - Een systeem leest de instellingen uit + Een systeem leest de instellingen uit normaal gesproken /etc/login.conf niet direct, maar leest - het databasebestand /etc/login.conf.db. + het databasebestand /etc/login.conf.db + welke snellere opzoekmogelijkheden biedt. /etc/login.conf.db kan met het volgende commando gemaakt worden uit /etc/login.conf: &prompt.root; cap_mkdb /etc/login.conf Beperkingen van bronnen verschillen van standaard aanmeldmogelijkheden op twee manieren. Ten eerste is er voor iedere beperking een zachte en een harde limiet. Een zachte (huidige) limiet kan door een gebruiker of applicatie aangepast worden, maar mag niet hoger zijn dan de harde limiet. De laatste kan door een gebruiker verlaagd worden, maar nooit verhoogd. Deze verschillen worden veroorzaakt door de specifieke behandeling van de beperkingen, niet door de implementatie van het aanmeldmogelijkheden framework, dat wil zeggen dat ze niet echt bijzondere aanmeldmogelijkheden zijn. Hieronder worden de meest gebruikte beperkingen op bronnen beschreven. De overige mogelijkheden, samen met alle andere aanmeldmogelijkheden, staat beschreven in &man.login.conf.5;. coredumpsize coredumpsize gebruikers beperken coredumpsize De limiet op de grootte van een corebestand dat wordt gemaakt door een programma is, om verschillende redenen, ondergeschikt aan andere beperkingen op het gebied van schijfgebruik (bijvoorbeeld filesize of schijfquota). Desalniettemin wordt deze instelling vaak gebruikt als een minder zware methode voor het beheersen van het gebruik van schijfruimte. Omdat gebruikers niet hun eigen corebestanden maken en ze vaak niet verwijderen, kan deze instelling helpen te voorkomen dat een schijf vol loopt in het geval een groot programma (bijvoorbeeld emacs) zou crashen. cputime cputime gebruikers beperken processortijd Dit is de maximale hoeveelheid processortijd die een proces van een gebruiker mag gebruiken. Processen die meer bronnen gebruiken worden afgeschoten door de kernel. Dit is een beperking op de CPU tijd die wordt gebruikt, niet op een percentage van de CPU, zoals wordt getoond in sommige velden door &man.top.1; en &man.ps.1;. Een limiet op de laatste is op het moment van schrijven niet mogelijk en zou ook redelijk waardeloos zijn: een compiler – waarschijnlijk een legitieme taak – kan makkelijk gedurende enige tijd bij 100% van een CPU gebruiken. filesize filesize gebruikers beperken filesize Dit is de maximale grootte voor een bestand waar een gebruiker eigenaar van kan zijn. Anders dan bij schijfquota is deze limiet van toepassing op individuele bestanden en niet op alle bestanden samen waarvan een gebruiker eigenaar is. maxproc maxproc gebruikers beperken maxproc Dit is het maximale aantal processen dat een gebruiker mag draaien. Hieronder vallen zowel processen die op de voorgrond draaien als op de achtergrond. Om duidelijke reden kan deze waarde niet groter zijn dan de ingestelde systeemlimiet voor kern.maxproc met &man.sysctl.8;. Het te laag zetten van deze instelling kan de productiviteit van een gebruiker schaden: vaak is het zinvol om meerdere keren aangemeld te zijn of om pipelines uit te voeren. Sommige taken, zoals het compileren van een groot programma, spawnen ook meerdere processen (bijvoorbeeld &man.make.1;, &man.cc.1; en andere tussentijdse preprocessors). memorylocked memorylocked gebruikers beperken memorylocked Dit is de maximale hoeveelheid geheugen die een proces mag claimen om te locken in het hoofdgeheugen (zie bijvoorbeeld &man.mlock.2;). Sommige systeemkritische programma's, zoals &man.amd.8;, locken in het hoofdgeheugen, zodat zij, in het geval het wisselbestand gebruikt moet worden, niet hoeven bij te dragen aan dat proces als het nodig is. memoryuse memoryuse gebruikers beperken memoryuse Dit is de maximale hoeveelheid geheugen die een proces op enig moment mag gebruiken. Hieronder vallen zowel hoofdgeheugen als het gebruik van het wisselbestand. Deze limiet vangt niet al het geheugengebruik af, maar het is een prima begin. openfiles openfiles gebruikers beperken openfiles Dit is het maximale aantal bestanden dat een proces open mag hebben. In &os; representeren bestanden ook sockets en IPC kanalen. Deze limiet mag dus niet te laag gezet worden. De limiet voor het systeem staat ingesteld in kern.maxfiles van &man.sysctl.8;. sbsize sbsize gebruikers beperken sbsize Dit is de limiet op de hoeveelheid netwerkgeheugen, en dus mbufs, die een gebruiker ter beschikking staan. Deze waarde komt voort uit het antwoord op een DoS aanval waarmee veel sockets werden gemaakt, maar het kan in het algemeen gebruikt worden om de hoeveelheid netwerkcommunicatie te limiteren. stacksize stacksize gebruikers beperken stacksize Dit is de maximale grootte voor een stack van een proces. Deze instelling alleen is niet genoeg om de hoeveelheid geheugen die een programma mag gebruiken te beperken. Daarom moet deze limiet samen met andere limieten gebruikt worden. Er zijn nog een aantal dingen belangrijk bij het instellen bronbeperkingen. Hierna worden een aantal algemene tips, suggesties en commentaren gegeven. Processen die bij het opstarten van een systeem gestart worden vanuit /etc/rc worden toegewezen aan de aanmeldklasse daemon. Hoewel de /etc/login.conf die bij een systeem zit een goede bron is voor redelijke waardes voor de meeste limieten, kan alleen de beheerder van een machine de echt juiste waarden kennen. Het te hoog instellen van een limiet kan een systeem kwetsbaar maken voor misbruik, terwijl het te laag instellen van limieten de productiviteit te veel kan hinderen. Gebruikers van het X Window systeem (X11) horen waarschijnlijk meer bronnen toegewezen te krijgen dan andere gebruikers. X11 gebruikt zelf al meer bronnen, maar het moedigt gebruikers ook aan om meerdere programma's tegelijkertijd te draaien. Het is belangrijk niet te vergeten dat veel limieten betrekking hebben op individuele processen en niet op een hele gebruiker. Het instellen van bijvoorbeeld openfiles op 50, betekent dat ieder proces dat een gebruiker draait 50 open bestanden mag hebben. Het totale aantal bestanden dat een gebruiker dus open kan hebben is het produkt van de waarde van openfiles en de waarde van maxproc. Dit geldt ook voor het gebruik van geheugen. Meer informatie over bronbeperkingen en aanmeldklassen in het algemeen staan in de relevante hulppagina's: &man.cap.mkdb.1;, &man.getrlimit.2;, &man.login.conf.5;. Groepen groepen /etc/groups accounts groepen Een groep is eenvoudigweg een lijst gebruikers. Groepen kunnen geïdentificeerd worden aan de hand van hun naam en GID (Groep ID). In &os; (en de meeste andere &unix; achtige systemen), worden besluiten door de kernel over of een proces iets wel of niet mag doen genomen op basis van het bijbehorende gebruikers ID en een lijst van groepen waar dat bij hoort. Anders dan bij een gebruikers ID, heeft een proces een lijst met bijbehorende groepen. Sommige programma's refereren wel eens aan het groep ID van een gebruiker of een proces. Meestal is dit gewoon de eerste groep in de hiervoor genoemde lijst. De vertaling van groep ID naar groepsnaam staat in /etc/group. Dit is een tekstbestand met vier velden die door het karakter : (dubbele punt) worden gescheiden. Het eerste veld is de groepsnaam, het tweede veld is het versleutelde wachtwoord, het derde het groep ID, het vierde een door komma's gescheiden lijst van leden van de groep. Het bestand kan zonder gevaar met de hand aangepast worden (aangenomen dat er geen fouten in de syntaxis worden gemaakt, natuurlijk). Een volledige beschrijving van de syntaxis staat in &man.group.5;. Als het onwenselijk is om /etc/group met de hand aan te passen, dan kan &man.pw.8; gebruikt worden voor het toevoegen en wijzigen van groepen. Om bijvoorbeeld een groep met de naam teamtwo toe te voegen en daarna het bestaan van die groep te bevestigen: Groepen toevoegen met &man.pw.8; &prompt.root; pw groupadd teamtwo &prompt.root; pw groupshow teamtwo teamtwo:*:1100: Het getal 1100 hierboven is het groep ID van de groep teamtwo. Met de huidige instelling heeft teamtwo geen leden en is die redelijk waardeloos. Dat kan veranderen door jru aan de groep teamtwo toe te voegen. Gebruikers aan groepen toevoegen met &man.pw.8; &prompt.root; pw groupmod teamtwo -M jru &prompt.root; pw groupshow teamtwo teamtwo:*:1100:jru Het argument voor de optie is een door komma's gescheiden lijst van gebruikers die lid moeten zijn van de aangegeven groep. In de voorgaande paragrafen is al aangegeven dat het password bestand ook voor iedere gebruiker een groep bevat. Een gebruiker wordt automatisch toegevoegd aan de groepenlijst door een systeem. De gebruiker wordt niet als lid getoond van die groep bij het gebruik van de optie van &man.pw.8;, maar wordt wel getoond als de informatie wordt opgevraagd via &man.id.1; of met een soortgelijk programma. Met andere woorden: &man.pw.8; wijzigt alleen het bestand /etc/group en probeert nooit extra informatie te lezen uit /etc/passwd. &man.id.1; gebruiken om groepslidmaatschap te bepalen &prompt.user; id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) Hierboven is te zien dat jru lid is van de groepen jru en teamtwo. Meer informatie over &man.pw.8; staat in de hulppagina en meer informatie over de opmaak van /etc/group staat in &man.group.5;.