<?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>dergraf.net &#187; Linux</title>
	<atom:link href="http://dergraf.net/tags/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://dergraf.net</link>
	<description>Software und Dinge</description>
	<lastBuildDate>Thu, 17 Jun 2010 09:53:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>iptables: Firewall-Regeln speichern</title>
		<link>http://dergraf.net/2008/11/iptables-save/</link>
		<comments>http://dergraf.net/2008/11/iptables-save/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 17:17:18 +0000</pubDate>
		<dc:creator>Sven Weidauer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Skript]]></category>

		<guid isPermaLink="false">http://dergraf.net/?p=23</guid>
		<description><![CDATA[Hier noch ein (hoffentlich) nützliches Skript: iptables-converter.pl Dieses Perl-Skript übersetzt die Ausgabe von &#8220;iptables-save&#8221; in ein Shell-Skript um, welches die selben Firewall-Regeln installiert. Ich habe es getestet, es funktioniert, aber wie immer übernehme ich keinerlei Verantwortung.]]></description>
			<content:encoded><![CDATA[<p>Hier noch ein (hoffentlich) nützliches Skript: <a href="http://dergraf.net/wp-content/uploads/2008/11/iptables-converterpl.txt">iptables-converter.pl</a></p>
<p>Dieses Perl-Skript übersetzt die Ausgabe von &#8220;iptables-save&#8221; in ein Shell-Skript um, welches die selben Firewall-Regeln installiert. Ich habe es getestet, es funktioniert, aber wie immer übernehme ich keinerlei Verantwortung.</p>
]]></content:encoded>
			<wfw:commentRss>http://dergraf.net/2008/11/iptables-save/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dateirechte und ACLs</title>
		<link>http://dergraf.net/2008/10/acl/</link>
		<comments>http://dergraf.net/2008/10/acl/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 17:37:49 +0000</pubDate>
		<dc:creator>Sven Weidauer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://dergraf.net/?p=10</guid>
		<description><![CDATA[Mit den Standard-Unix-Dateiberechtigungen für Besitzer, Gruppe und den Rest kann man schon einiges machen, man stößt aber recht schnell an die Grenzen. Ich hatte folgende Situation: Mehrere Benutzer sollen eine Webseite bearbeiten können Der Web-Server muss die Dateien natürlich lesen können um sie auszuliefern Um über ein PHP-Skript Dateien hochladen zu können muss der Web-Server [...]]]></description>
			<content:encoded><![CDATA[<p>Mit den Standard-Unix-Dateiberechtigungen für Besitzer, Gruppe und den Rest kann man schon einiges machen, man stößt aber recht schnell an die Grenzen. Ich hatte folgende Situation:</p>
<ol>
<li>Mehrere Benutzer sollen eine Webseite bearbeiten können</li>
<li>Der Web-Server muss die Dateien natürlich lesen können um sie auszuliefern</li>
<li>Um über ein PHP-Skript Dateien hochladen zu können muss der Web-Server in einen Ordner schreiben dürfen. Aus Sicherheitsgründen soll er auch nur in diesen Ordner schreiben dürfen.</li>
</ol>
<p><span id="more-10"></span></p>
<p>So kann man das alles lösen:</p>
<blockquote><p>mkdir <em>www</em></p>
<p>chown <em>besitzer</em>:<em>bearbeiter</em> <em>www</em></p>
<p>chmod u=rwx,g=rwx,o= <em>www</em></p></blockquote>
<p>Damit legt man ein Verzeichnis an und legt den Besitzer &#8220;<em>B</em><em>esitzer</em>&#8221; und die Gruppe &#8220;<em>B</em><em>earbeiter</em>&#8221; fest. <em>Besitzer</em> und alle in <em>Bearbeiter</em> dürfen alles in dem Verzeichnis, sonst darf niemand etwas. Bis jetzt darf der Web-Server auch nichts.</p>
<p>Um das zu lösen könnte man ihn (also den Benutzer <em>www-data</em>) einfach mit in die Gruppe <em>Bearbeiter</em> aufnehmen. Dadurch kann er aber überall hin schreiben, was ja nicht gewünscht ist. Hier kommen dann die ACLs ins Spiel.</p>
<blockquote><p>setfacl -m u:<em>www-data</em>:r-x <em>www</em></p>
<p>setfacl -m d:u:<em>www-data</em>:r-x <em>www</em></p></blockquote>
<p>Als erstes wird Bekommt der Benutzer (u:) <em>www-data</em> das Recht das Verzeichnis zu lesen und zu betreten (r-x). Und danach wird ein Standard-Eintrag (d:) angelegt, der dem Benutzer <em>www-data</em> diese Rechte auch für alle im Ordner www neu angelegten Ordner und Dateien erteilt.</p>
<p>Der Upload-Ordner, der ja vom Webserver beschrieben werden muss, kann mit</p>
<blockquote><p>setfacl -m u:<em>www-data</em>:rwx <em>upload</em></p>
<p>setfacl -m d:u:<em>www-data</em>:rwx <em>upload</em></p></blockquote>
<p>für den Webserver freigegeben werden. Die zweite Zeile ist nur nötig, wenn der Webserver auch Unterordner anlegen und darin schreiben soll. Ansonsten ist die Standard-ACL nicht nötig.</p>
<p>Jetzt bleibt allerdings noch ein Problem zu lösen: Die Dateien und Ordner, die der Webserver anlegt werden für die Benutzer, die die Webseite bearbeiten können nicht erreichbar sein, da sie dem Webserver und dessen Gruppe gehören. Hiermit kann man das lösen:</p>
<blockquote><p>chmod g+s <em>www</em></p>
<p>setfacl -m d:u:<em>besitzer</em>:rwx <em>www</em></p></blockquote>
<p>Erst wird das SetGid-Bit gesetzt. Das bedeutet, dass alle neu angelegten Ordner der selben Gruppe gehören wie der übergeordnete Ordner. Und als letztes wird noch eine Standard-ACL gesetzt, die dem Besitzer alle Rechte gibt. Nicht unbedingt nötig, aber sicher ist sicher.</p>
<p>Das einfachste ist, man macht das alles bevor man irgend welche Dateien in dem Ordner ablegt. Ansonsten muss man bei chmod, chown und setfacl mit der Option -R rekursiv alle Dateien und Ordner bearbeiten und hinterher alles noch einmal überprüfen.</p>
<p>Hier noch einmal die ACL-Befehle im Überblick:</p>
<ul>
<li>setfacl -m (d:)u:<em>benutzername</em>:rwx datei &#8212; legt die Rechte für einen Benutzer fest.</li>
<li>setfacl -m (d:)g:<em>gruppenname</em>:rwx  datei &#8212; legt die Rechte für eine Gruppe fest.</li>
</ul>
<p>Wenn &#8220;d:&#8221; für einen Ordner angegeben wird wird die angegeben ACL an neue Objekte in dem Ordner vererbt. rwx sind die Standard-Unix-Rechte. Die Rechte, die nicht gegeben werden sollen werden durch ein &#8220;-&#8221; ersetzt.</p>
<p>Der Befehl getfacl zeigt die gesetzten Rechte an.</p>
]]></content:encoded>
			<wfw:commentRss>http://dergraf.net/2008/10/acl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
