o basics	-> 1.154

Submitted by:   Rene Ladan
Obtained from:  The FreeBSD Dutch Documentation Project
Facilitated by: Snow B.V. at EuroBSDCon 2008
This commit is contained in:
Remko Lodder 2008-10-18 14:41:55 +00:00
parent 0f8282bf8f
commit 09e401e7ec
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33077

View file

@ -4,7 +4,7 @@
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/basics/chapter.sgml
%SRCID% 1.153
%SRCID% 1.154
-->
<chapter id="basics">
@ -760,6 +760,150 @@ total 530
Meer informatie voor beheerders staat in &man.chflags.1; en
&man.chflags.2;.</para>
</sect2>
<sect2>
<sect2info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Bijgedragen door </contrib>
</author>
</authorgroup>
</sect2info>
<title>De setuid-, setgid-, en klevende toestemmingen</title>
<para>Buiten de toestemmingen die reeds besproken zijn, zijn er
nog drie specifieke instellingen waarvan alle beheerders kennis
dienen te hebben. Dit zijn de <literal>setuid</literal>-,
<literal>setgid</literal>-, en <literal>sticky</literal>
toestemmingen.</para>
<para>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.</para>
<para>De echte gebruikers-ID is de <acronym>UID</acronym> die het
proces start of bezit. De effectieve <acronym>UID</acronym> 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
database met wachtwoorden te manipuleren, draait het met de
effectieve ID van de gebruiker <username>root</username>. Dit
is wat normale gebruikers in staat stelt om hun wachtwoorden te
veranderen zonder een fout <errorname>Permission
Denied</errorname> te zien.</para>
<note>
<para>De &man.mount.8;-optie <literal>nosuid</literal> zorgt
ervoor dat deze binairen zwijgend falen. Dit houdt in dat ze
niet worden uitgevoerd zonder ooit de gebruiker op de hoogte
te stellen. Deze optie is ook niet geheel betrouwbaar
aangezien een <literal>nosuid</literal>-wrapper dit volgens de
handleidingpagina &man.mount.8; kan omzeilen.</para>
</note>
<para>De setuid-toestemming kan aangezet worden door het cijfer
vier (4) voor een toestemmingenverzameling te plaatsen zoals te
zien is in het volgende voorbeeld:</para>
<screen>&prompt.root; <userinput>chmod 4755 suidvoorbeeld.sh</userinput></screen>
<para>De toestemmingen op het bestand
<filename>suidvoorbeeld.sh</filename> dienen er nu als volgt uit
te zien:</para>
<programlisting>-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidvoorbeeld.sh</programlisting>
<para>Het zou in dit voorbeeld te zien moeten zijn dat een
<literal>s</literal> nu deel is van de toestemmingenverzameling
bestemd voor de bestandseigenaar, en de uitvoerbare bit
vervangt. Dit staat gereedschappen toe die verhoogde
toestemmingen nodig hebben, zoals <command>passwd</command>.</para>
<para>Open twee terminals om dit in real-time te zien. Start op
het ene het proces <command>passwd</command> als een normale
gebruiker. Controleer de procestabel terwijl het op een nieuw
wachtwoord wacht en kijk naar de gebruikersinformatie van het
commando <command>passwd</command>.</para>
<para>In terminal A:</para>
<screen>Changing local password for trhodes
Old Password:</screen>
<para>In terminal B:</para>
<screen>&prompt.root; <userinput>ps aux | grep passwd</userinput></screen>
<screen>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</screen>
<para>Zoals boven vermeld, wordt <command>passwd</command> door
een normale gebruiker gedraaid, maar gebruikt het de effectieve
<acronym>UID</acronym> van <username>root</username>.</para>
<para>De <literal>setgid</literal>-toestemming voert dezelfde
functie uit als de <literal>setuid</literal>-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.</para>
<para>Om de <literal>setgid</literal>-toestemming op een bestand
aan te zetten, dient een voorlopende twee (2) aan het commando
<command>chmod</command> gegeven te worden zoals in het volgende
voorbeeld:</para>
<screen>&prompt.root; <userinput>chmod 2755 sgidvoorbeeld.sh</userinput></screen>
<para>De nieuwe instelling kan zoals hierboven bekeken worden,
merk op dat de <literal>s</literal> nu in het veld bestemd voor
de instellingen van de groepstoestemmingen staat:</para>
<programlisting>-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidvoorbeeld.sh</programlisting>
<note>
<para>In deze voorbeelden zal het shellscript niet met een
andere <acronym>EUID</acronym> of effectief gebruikers-ID
draaien, zelfs al is het shellscript uitvoerbaar. Dit is
omdat shellscripts geen toegang hebben tot de
&man.setuid.2;-systeemaanroepen.</para>
</note>
<para>De eerste twee speciale toestemmingsbits die we besproken
hebben (de toestemmingsbits <literal>setuid</literal> en
<literal>setgid</literal>) kunnen de systeemveiligheid verlagen,
door verhoogde toestemmingen toe te staan. Er is een derde bit
voor speciale toestemmingen die de veiligheid van een systeem
kan verhogen: de <literal>klevende bit</literal>.</para>
<para>De <literal>klevende bit</literal>, wanneer deze op een map
is ingesteld, staat alleen het verwijderen van bestanden toe
door de eigenaar van die bestanden. Deze
toestemmingenverzameling is nuttig om het verwijderen van
bestanden in publieke mappen, zoals <filename
class="directory">/tmp</filename>, door gebruikers die het
bestand niet bezitten te voorkomen. Zet een &eacute;&eacute;n
(1) voor de toestemming om deze toestemming te gebruiken.
Bijvoorbeeld:</para>
<screen>&prompt.root; <userinput>chmod 1777 /tmp</userinput></screen>
<para>Het effect kan nu met het commando <command>ls</command>
bekeken worden:</para>
<screen>&prompt.root; <userinput>ls -al / | grep tmp</userinput></screen>
<screen>drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp</screen>
<para>De toestemming <literal>klevende bit</literal> is te
onderscheiden met de <literal>t</literal> aan het einde van de
verzameling.</para>
</sect2>
</sect1>
<sect1 id="dirstructure">
@ -1400,7 +1544,7 @@ total 530
<entry><literal>d</literal></entry>
<entry>Partitie <literal>d</literal> had vroeger een
speciale betekenis, maar die is verdwenen.
speciale betekenis, maar die is verdwenen.
<literal>d</literal> zou nu kunnen werken als een normale
partitie.</entry>
</row>