<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Werk &#187; unix</title>
	<atom:link href="http://werk.feub.net/tag/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://werk.feub.net</link>
	<description>Pourquoi Werk? ^.^</description>
	<lastBuildDate>Tue, 06 Dec 2011 14:18:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Droits Unix : la notation octale</title>
		<link>http://werk.feub.net/2008/10/droits-unix-la-notation-octale/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=droits-unix-la-notation-octale</link>
		<comments>http://werk.feub.net/2008/10/droits-unix-la-notation-octale/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 23:19:58 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[droits]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://werk.feub.net/?p=14</guid>
		<description><![CDATA[Des chiffres et des lettres]]></description>
			<content:encoded><![CDATA[<p>
Petite piqure de rappel sur les bases des droits Unix suite à la demande de <a href="http://feub.net/werk/index.php/feubv9/comments/setuid_setgid_et_sticky_bit/" title="commentaire">San Antonio</a> pour le billet sur les <a href="http://feub.net/werk/index.php/feubv9/comments/setuid_setgid_et_sticky_bit/" title="setuid, setgid et sticky bit">droits spéciaux</a>. Plus précisément sur la représentation octale des droits.
</p>
<p>
Sur les systèmes Unix/Linux/BSD, les droits sur les fichiers sont définis pour le propriétaire, pour les utilisateurs appartenant au groupe et pour les autres utilisateurs. Ils sont représentés &#8211; par exemple lorsque l&#8217;on invoque la commande <em>ls -l</em> &#8211; par une suite de 3 lettres (r,w et x pour respectivement read/lire, write/écrire, execute/exécuter), mais peuvent être représentés par des chiffres, par exemple comme suit :
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">r <span style="color: #c20cb9; font-weight: bold;">w</span> - r - - r - - est la même chose que <span style="color: #000000;">644</span></pre></div></div>

<p>
Il s&#8217;agit de la représentation octale. Pour être expliquée, il faut partir de la forme binaire des droits, suivant ce schéma :
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">000 = <span style="color: #000000;">0</span>
001 = <span style="color: #000000;">1</span>
010 = <span style="color: #000000;">2</span>
011 = <span style="color: #000000;">3</span>
<span style="color: #000000;">100</span> = <span style="color: #000000;">4</span>
<span style="color: #000000;">101</span> = <span style="color: #000000;">5</span>
<span style="color: #000000;">110</span> = <span style="color: #000000;">6</span>
<span style="color: #000000;">111</span> = <span style="color: #000000;">7</span></pre></div></div>

<p>
On peut associer chaque triplet aux trois entités (propriétaire, groupe, autres) des droits, ainsi, un fichier ayant le droit du propriétaire en lecture et écriture (r w -) sera écrit 110, 1 pour le r, 1 pour le w et 0 pour le flag x qui n&#8217;est pas attribué. Le procédé est le même pour les deux autres triplets. Pour l&#8217;exemple complet, prenons : r w &#8211;  r &#8211; -  r &#8211; -, soit 110 100 100.<br />
Ensuite on part du principe que l&#8217;on ajoute les chiffres des valeurs binaires des triplets pour obtenir la valeur octale. En continuant sur l&#8217;exemple précédent : 110 en binaire vaut 6 en décimal, 100 vaut 4, ainsi nous avons 6 &#8211; 4 &#8211; 4, simplifié en 644. Notre fichier a les droits 644.
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">r <span style="color: #c20cb9; font-weight: bold;">w</span> -  r - -  r - - = <span style="color: #000000;">110</span> <span style="color: #000000;">100</span> <span style="color: #000000;">100</span> = <span style="color: #000000;">644</span>
r <span style="color: #c20cb9; font-weight: bold;">w</span> - r <span style="color: #c20cb9; font-weight: bold;">w</span> -  r - - = <span style="color: #000000;">100</span> <span style="color: #000000;">100</span> <span style="color: #000000;">100</span> = <span style="color: #000000;">664</span>
r - x r - x  r - x = <span style="color: #000000;">101</span> <span style="color: #000000;">101</span> <span style="color: #000000;">101</span> = <span style="color: #000000;">555</span>
r <span style="color: #c20cb9; font-weight: bold;">w</span> x  r - x r - - = <span style="color: #000000;">111</span> <span style="color: #000000;">101</span> 000 = <span style="color: #000000;">754</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://werk.feub.net/2008/10/droits-unix-la-notation-octale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>setuid, setgid et sticky bit</title>
		<link>http://werk.feub.net/2008/03/setuid-setgid-et-sticky-bit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=setuid-setgid-et-sticky-bit</link>
		<comments>http://werk.feub.net/2008/03/setuid-setgid-et-sticky-bit/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 10:27:51 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[droits]]></category>
		<category><![CDATA[posix]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://werk.feub.net/?p=42</guid>
		<description><![CDATA[Point sur les droits spéciaux ]]></description>
			<content:encoded><![CDATA[<p>
Lorsque l&#8217;on découvre l&#8217;univers d&#8217;Unix/Linux/Mac, il y a certaines choses qui ont du mal à passer lorsque l&#8217;on débute. Je me souviens par exemple de la difficulté à apprendre le fonctionnement du système des droits sur les fichiers et plus  particuliérement n&#8217;avoir rien compris des <b>setuid</b>, <b>setgid</b> et <b>sticky bit</b>. Je reparle de ça parce que je viens de perdre pas mal de temps avec un problème sur un développement PHP en cours, et il s&#8217;agissait du setgid qui n&#8217;était pas accordé à un répertoire. Bref, ce qui suit est un petit raffraîchissement.
</p>
<p>
Comme dit dans le sous-titre, les <b>setuid</b>, <b>setgid</b> et <b>sticky bit</b> sont des droits dits <i>spéciaux</i>, ils s&#8217;ajoutent aux droits classiques (lecture, écriture et exécution) et fonctionnent différemment suivant qu&#8217;on les applique sur un fichier ou un répertoire.
</p>
<p><span id="more-42"></span></p>
<h4>setuid</h4>
<p>
Lorsqu&#8217;un utilisateur exécute un programme, celui-ci se lance avec les droits de cet utilisateur. Je (utilisateur <em>fabien</em>) lance un script toto.sh, celui-ci aura les droits de <em>fabien</em>, normal. Mais il arrive que l&#8217;on veuille lancer une commande <em>spéciale</em> &#8211; en général dévolue à root &#8211; en tant que simple utilisateur, l&#8217;exemple flagrant étant la commande <a href="http://pwet.fr/man/linux/formats/passwd" title="Man">passwd</a> (sous <code>/usr/bin/passwd</code>) qui est une commande root, mais tout un chacun peut pourtant changer son mot de passe avec cette commande. En regardant les droits sur <b>passwd</b>, on s&#8217;aperçoit que ce fichier est <em>setuidé</em> :
</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span>
<span style="color: #660033;">-rwsr-xr-x</span> <span style="color: #000000;">1</span> root root <span style="color: #000000;">25708</span> sep <span style="color: #000000;">25</span>  <span style="color: #000000;">2007</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span></pre></div></div>

<p>
C&#8217;est-à-dire que lorsqu&#8217;un utilisateur lance la commande passwd, elle est lancée avec les droits du superutilisateur, ainsi l&#8217;écriture pourra se faire dans le fichier <code>/etc/passwd</code> et l&#8217;utilisateur aura changé son mot de passe sans être root. Sans le setuid, l&#8217;utilisateur n&#8217;aurait pas pu écrire dans le fichier <code>/etc/passwd</code>.<br />
La notion de setuid n&#8217;existe pas pour les répertoires.
</p>
<h4>setgid</h4>
<p>
Le principe du setgid est le même que le setuid pour un fichier, mais bien entendu au niveau des droits du groupe. Un exécutable <em>setgidé</em> peut donc être lancé avec les droits du groupe auquel il appartient. Par contre, le comportement change lorsqu&#8217;il s&#8217;agit d&#8217;un répertoire. Lorsqu&#8217;un répertoire est <em>setgidé</em>, tous les fichiers créés dans ce répertoire appartiennent au même groupe que le répertoire. Ainsi, imaginons un répertoire <em>conteneur</em>, plusieurs personnes &#8211; Jean-Claude, André et Robert &#8211; travaillent dedans pour un même projet, il est bon de le <em>setgider</em>, de cette façon, les fichiers créés appartiendront tous au même groupe et non aux groupes de chaque utilisateur individuel.
</p>
<h4>Sticky bit</h4>
<p>
Lorsque l&#8217;on <em>positionne le sticky bit</em>, un exécutable restera en mémoire même lorsqu&#8217;il aura terminé son exécution, ainsi, il se lancera plus rapidement au prochain lancement. Cette pratique tend à être obsolète. Seul l&#8217;administrateur système peut positionner le sticky bit.
</p>
<p>
En ce qui concerne les répertoires, le sticky bit sert à <em>sécuriser</em> un fichier se trouvant dans un répertoire où tout le monde a les droits en écriture. Par exemple  pour le répertoire <code>/tmp</code> (en général tout le monde a le droit d&#8217;écrire dedans), il serait gènant qu&#8217;un autre utilisateur puisse supprimer un de vos fichiers. Pour y remédier, on positionne le sticky bit sur ce répertoire, n&#8217;autorisant la suppression d&#8217;un fichier uniquement à son propriétaire.
</p>
<h4>Ecriture octale</h4>
<p>
Les permissions octales des setuid, setgid et sticky bit sont représentées par une série de 3 bits avant les 3 autres séries des permissions classiques :<br />
setuid=4,<br />
setgid=2,<br />
sticky=1<br />
Par exemple, un fichier ayant les droits rwsr-sr-x (rwxr-xr-x, setuid, setgid) donnera en octal 6755.</p>
]]></content:encoded>
			<wfw:commentRss>http://werk.feub.net/2008/03/setuid-setgid-et-sticky-bit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc (Feed is rejected)
Page Caching using apc
Object Caching 249/268 objects using memcached

Served from: werk.feub.net @ 2012-02-09 00:15:13 -->
