<?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>Matthias Lohr&#039;s technical stuff &#187; Linux</title>
	<atom:link href="http://www.matthias-lohr.net/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.matthias-lohr.net</link>
	<description>&#34;do nothing, successfully&#34; -- man true</description>
	<lastBuildDate>Tue, 22 Jun 2010 21:01:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>VMWare: Pfeiltasten öffnen Windows Startmenü</title>
		<link>http://www.matthias-lohr.net/72/vmware-pfeiltasten-offnen-windows-startmenu</link>
		<comments>http://www.matthias-lohr.net/72/vmware-pfeiltasten-offnen-windows-startmenu#comments</comments>
		<pubDate>Tue, 12 May 2009 20:45:50 +0000</pubDate>
		<dc:creator>Matthias Lohr</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.ml.vg/?p=72</guid>
		<description><![CDATA[Aus verschiedenen Gründen habe ich unter meinem Linux eine Installation von VMWare mit einem Windows XP als Gastsystem. Allerdings quält mich schon seit geraumer Zeit das Problem, dass als Reaktion auf die Pfeiltasten das Windows-Startmenü geöffnet wird, statt den Cursor in die gewünschte Richtung zu bewegen. Nach ein wenig Googlen habe ich dafür eine ganz [...]]]></description>
			<content:encoded><![CDATA[<p>Aus verschiedenen Gründen habe ich unter meinem Linux eine Installation von VMWare mit einem Windows XP als Gastsystem. Allerdings quält mich schon seit geraumer Zeit das Problem, dass als Reaktion auf die Pfeiltasten das Windows-Startmenü geöffnet wird, statt den Cursor in die gewünschte Richtung zu bewegen. Nach ein wenig Googlen habe ich dafür eine ganz einfache Lösung gefunden, die ich hier einfach auch mal auf Deutsch poste:</p>
<p>Im Home-Verzeichnis einfach (sofern nicht vorhanden) ein Verzeichnis mit dem Namen <em>.vmware</em> anlegen, dort eine Datei <em>config</em> die folgenden Inhalt bekommt:</p>
<blockquote><p>xkeymap.keycode.108  = 0&#215;138 # Alt_R<br />
xkeymap.keycode.106  = 0&#215;135 # KP_Divide<br />
xkeymap.keycode.104  = 0x11c # KP_Enter<br />
xkeymap.keycode.111 = 0&#215;148 # Up<br />
xkeymap.keycode.116 = 0&#215;150 # Down<br />
xkeymap.keycode.113 = 0x14b # Left<br />
xkeymap.keycode.114 = 0x14d # Right<br />
xkeymap.keycode.105 = 0x11d # Control_R<br />
xkeymap.keycode.118 = 0&#215;152 # Insert<br />
xkeymap.keycode.119 = 0&#215;153 # Delete<br />
xkeymap.keycode.110 = 0&#215;147 # Home<br />
xkeymap.keycode.115 = 0x14f # End<br />
xkeymap.keycode.112 = 0&#215;149 # Prior<br />
xkeymap.keycode.117 = 0&#215;151 # Next<br />
xkeymap.keycode.78 = 0&#215;46 # Scroll_Lock<br />
xkeymap.keycode.127 = 0&#215;100 # Pause<br />
xkeymap.keycode.133 = 0x15b # Meta_L<br />
xkeymap.keycode.134 = 0x15c # Meta_R<br />
xkeymap.keycode.135 = 0x15d # Menu</p></blockquote>
<p>Damit sollten die Probleme erledigt sein. Vielen Dank an <a href="http://throwingmywindows.blogspot.com/2008/12/vmware-arrow-key-problem.html">http://throwingmywindows.blogspot.com/2008/12/vmware-arrow-key-problem.html</a>, von dieser Seite habe ich diese Lösung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthias-lohr.net/72/vmware-pfeiltasten-offnen-windows-startmenu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authentifizierung über libnss-mysql</title>
		<link>http://www.matthias-lohr.net/42/authentifizierung-uber-libnss-mysql</link>
		<comments>http://www.matthias-lohr.net/42/authentifizierung-uber-libnss-mysql#comments</comments>
		<pubDate>Sun, 22 Feb 2009 22:52:03 +0000</pubDate>
		<dc:creator>Matthias Lohr</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OpenVPN]]></category>

		<guid isPermaLink="false">http://blog.ml.vg/?p=42</guid>
		<description><![CDATA[Manchmal hat man den Wunsch, ein zentrales Benutzerverzeichnis über mehrere Server hinweg anzubieten. Bei solchen Szenarien fällt einem eigentlich sofort LDAP ein, allerdings kann es manchmal von Vorteil sein, eine datenbankbasierte Authentifikation durchzuführen. Nach ein wenig Recherche im großen Netz bin ich dann auf libnss-mysql gestoßen (zu meinem großen Bedauern hab ich kein libnss-pgsql für [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal hat man den Wunsch, ein zentrales Benutzerverzeichnis über mehrere Server hinweg anzubieten. Bei solchen Szenarien fällt einem eigentlich sofort LDAP ein, allerdings kann es manchmal von Vorteil sein, eine datenbankbasierte Authentifikation durchzuführen. Nach ein wenig Recherche im großen Netz bin ich dann auf libnss-mysql gestoßen (zu meinem großen Bedauern hab ich kein libnss-pgsql für PostgreSQL gefunden&#8230;). Ich Copy&amp;Paste hier im Wesentlichen nun einfach meine Ergebnisse und Configs, falls ihr jemand das Bedürfnis habt, ein ähnliches System aufzusetzen.</p>
<p>Der Server mit den Benutzerdaten ist ein &#8220;echter&#8221; Host, der irgendwo als physische Maschine rumsteht. Damit man sich nicht groß mit SSL, Verschlüsselung und Sicherheit rumschlagen muss habe ich kurzerhand auf Server und Client <a title="OpenVPN-Webseite" href="http://www.openvpn.org/">OpenVPN</a> installiert. Wie genau die Einrichtung funktioniert entnehme man bitte der verlinkten Seite. Jedenfalls hatte ich so ein eigenes Netzwerk, welches sogar Verschlüsselung zwischen den einzelnen Knoten hat, damit sind (vorerst) die gröbsten Löcher gestopft.</p>
<p>Nun schnell MySQL umkonfigurieren, damit der DB-Dienst nicht an localhost sondern an meinem neuen virtuellen VPN-Interface lauscht. Dazu passt man einfach den Eintrag &#8216;bind-address&#8217; in der Datei /etc/mysql/my.cnf an. Beispiel (unsichere Methode, lauscht überall):</p>
<blockquote><p>bind-address = *</p></blockquote>
<p>Außerdem muss man noch (per phpMyAdmin o. ä.) die Datenbank+Tabellen erstellen und, wenn man das System auch benutzen möchte, Daten einpflegen. Hier poste ich nun einfach mal meine Struktur der Tabellen</p>
<blockquote><p>CREATE TABLE IF NOT EXISTS `sys_groupmembers` (<br />
`uid` int(11) NOT NULL default &#8217;0&#8242;,<br />
`gid` int(11) NOT NULL default &#8217;0&#8242;<br />
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;</p>
<p>CREATE TABLE IF NOT EXISTS `sys_groups` (<br />
`gid` int(11) NOT NULL auto_increment,<br />
`groupname` varchar(30) character set latin1 NOT NULL,<br />
`group_password` varchar(64) character set latin1 NOT NULL default &#8216;x&#8217;,<br />
PRIMARY KEY  (`gid`)</p>
<p>) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1000;</p>
<p>CREATE TABLE IF NOT EXISTS `sys_users` (<br />
`uid` int(11) NOT NULL auto_increment,<br />
`username` varchar(50) character set latin1 NOT NULL,<br />
`realname` varchar(32) character set latin1 NOT NULL default &#8221;,<br />
`shell` varchar(20) character set latin1 NOT NULL default &#8216;/bin/sh&#8217;,<br />
`password` varchar(40) character set latin1 NOT NULL default &#8221;,<br />
`gid` int(11) NOT NULL default &#8217;65534&#8242;,<br />
`homedir` varchar(32) character set latin1 NOT NULL default &#8216;/bin/sh&#8217;,<br />
`lastchange` varchar(50) character set latin1 NOT NULL default &#8221;,<br />
`min` int(11) NOT NULL default &#8217;0&#8242;,<br />
`max` int(11) NOT NULL default &#8217;0&#8242;,<br />
`warn` int(11) NOT NULL default &#8217;7&#8242;,<br />
`inact` int(11) NOT NULL default &#8216;-1&#8242;,<br />
`expire` int(11) NOT NULL default &#8216;-1&#8242;,<br />
PRIMARY KEY  (`uid`)<br />
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1000 ;</p></blockquote>
<p>Auf dem Client installiert man nun die Pakete nscd und libnss-mysql (ich benutze eigentlich immer Debian/Ubuntu, da heißen die Pakete direkt so und die Installation ist mit apt-get install schnell erledigt. Bei anderen Distributionen bitte entsprechende Befehle verwenden oder die Pakete einfach von Hand installieren). Dann werden die entsprechenden Konfigurations-Dateien angepasst:</p>
<p>nsswitch.conf ist für das Betriebssystem ein Hinweis wo/wie überall nach Benutzern gesucht werden kann. nss-mysql.conf gibt an, wie man alle interessanten User-Details mit Ausnahme des Passworts bekommen kann. nss-mysql-root.conf füllt eben genau diese Lücke. Daher sollten für beide Configs verschiedene Benutzer verwendet werden, der Datenbankbenutzer der nss-mysql.conf &#8211; Config (also der, der nicht nach dem PW gefragt wird) sollte auch keine Rechte haben, auf die Passwort-Spalte in MySQL zuzugreifen. Außerdem verlangt libnss, dass die nss-mysql-root.conf nur von Benutzer root gelesen werden kann (also chmod 600), denn niemand außer root sollte generell an die System-Passwörter kommen, was man allerdings mit Hilfe des in dieser Datei notierten MySQL-Passworts doch erreichen könnte.</p>
<p><strong>/etc/nsswitch.conf</strong>:<br />
An das Ende der Zeilen, die mit &#8220;passwd&#8221;, &#8220;group&#8221; bzw. &#8220;shadow&#8221; anfangen, hängt man (mit einem Leerezeichen Abstand zum bisherigen letzten Wort) das Wörtchen &#8220;mysql&#8221; hintendran. So siehts dann aus:</p>
<blockquote><p>passwd:         compat mysql<br />
group:          compat mysql<br />
shadow:         compat mysql</p></blockquote>
<p><strong>/etc/nss-mysql.conf</strong>:<br />
Ich gebe hier nur die Zeilen wieder, die kein Kommentar sind. Hostname, Datenbankname, Benutzername und Passwort sind erfunden und sollten den jeweiligen Bedingungen angepasst werden:</p>
<blockquote><p>conf.version = 2;<br />
users.host = inet:mein.server.tld:3306;<br />
users.database = userdata;<br />
users.db_user = nss-auth-normal;<br />
users.db_password = 123geheim;<br />
users.table = sys_users;<br />
users.where_clause =;<br />
users.user_column = sys_users.username;<br />
users.password_column = sys_users.password;<br />
users.userid_column = sys_users.uid;<br />
users.uid_column = sys_users.uid;<br />
users.gid_column = sys_users.gid;<br />
users.realname_column = sys_users.realname;<br />
users.homedir_column = sys_users.homedir;<br />
users.shell_column = sys_users.shell;<br />
groups.group_info_table = sys_groups;<br />
groups.where_clause =;<br />
groups.group_name_column = sys_groups.groupname;<br />
groups.groupid_column = sys_groups.gid;<br />
groups.gid_column = sys_groups.gid;<br />
groups.password_column = sys_groups.group_password;<br />
groups.members_table = sys_groupmembers;<br />
groups.member_userid_column = sys_groupmembers.uid;<br />
groups.member_groupid_column = sys_groupmembers.gid;</p></blockquote>
<p><strong>/etc/nss-mysql-root.conf</strong>:<br />
Diese Konfiguration wird für den Abgleich von Passwörtern verwendet:</p>
<blockquote><p>conf.version = 2;<br />
shadow.host = inet:mein.server.tld:3306;<br />
shadow.database = userdata;<br />
shadow.db_user = nss-auth-root;<br />
shadow.db_password = 124geheim;<br />
shadow.table = sys_users;<br />
shadow.where_clause =;<br />
shadow.userid_column = sys_users.uid;<br />
shadow.user_column = sys_users.username;<br />
shadow.password_column = sys_users.password;<br />
shadow.lastchange_column = sys_users.lastchange;<br />
shadow.min_column = sys_users.min;<br />
shadow.max_column = sys_users.max;<br />
shadow.warn_column = sys_users.warn;<br />
shadow.inact_column = sys_users.inact;<br />
shadow.expire_column = sys_users.expire;</p></blockquote>
<p>Das wars eigentlich. Nun noch alle betroffenen Dienste (nscd, mysql,openvpn) neustarten und der Spaß sollte funktionieren.</p>
<p>Was ich leider noch nicht geschafft habe, ist die Administration der in der Datenbank gespeicherten Benutzer und Gruppen per Kommandozeilen-Tools, ein erster Ansatz wäre z. B. schonmal passwd, aber selbst das klappt (noch) nicht&#8230; Sollte jemand wissen, wie das funktioniert: Da unten ist ein Kommentarfeld <img src='http://www.matthias-lohr.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ansonsten: Viel Erfolg bei euren Installationen, bei Fragen und Problemen einfach melden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthias-lohr.net/42/authentifizierung-uber-libnss-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
