UNIXwork

LDAP-Authentifizierung mit Solaris

2017-12-06 19:19:24.0

Dieser Artikel ist eine kurze Anleitung für die Einrichtung des LDAP-Clients unter Solaris. Der Artikel gilt sowohl für das aktuelle Solaris 11 als auch Solaris 10.

Netzwerk-Konfiguration (nur Solaris 11)

Solaris 11 hat für die Netzwerkkonfiguration zwei Profile (NCP): DefaultFixed und Automatic. Der LDAP-Client funktioniert jedoch nicht mit dem Automatic-NCP, daher muss zwingend DefaultFixed verwendet werden. Zumindestens wenn Solaris über die Live-CD installiert wurde ist standardmäßig das Automatic-NPC aktiv. Dies muss dann geändert werden.

netadm enable -p ncp defaultfixed

Danach muss noch das Netzwerk manuell konfiguriert werden. Wer einfach DHCP verwenden will kann dies folgendermaßen tun:

ipadm create-ip net0
ipadm create-addr -T dhcp net0/v4

DNS geht dann übrigens noch nicht, das beheben wir aber später.

LDAP-Client konfigurieren

Dieser Schritt ist identisch unter Solaris 10 und 11. Der folgende Befehl konfiguriert den LDAP-Client.

ldapclient manual -a credentialLevel=proxy -a authenticationMethod=simple -a defaultSearchBase=dc=example,dc=com -a domainName=example.com -a defaultServerList=<ip> -a proxyDN=<admin-cn> -a proxyPassword=<admin-pw> -a serviceSearchDescriptor=group:ou=Groups,dc=example,dc=com

Standardmäßig werden Benutzer in ou=People,dc=example,dc=com gesucht (für den Basis-DN dc=example,dc=com). Wo genau nach Gruppen gesucht wird weiß ich gar nicht, weshalb ich auch mit -a serviceSearchDescriptor=group:ou=Groups,dc=example,dc=com den passenden DN angebe. Wer dies für User ändern will kann dies mit -a serviceSearchDescriptor=passwd und -a serviceSearchDescriptor=shadow tun.

Name-Service konfigurieren

Nachdem der LDAP-Client konfiguriert ist, ist der Name Service Switch für die meisten eher suboptimal konfiguriert, denn Hostnamen werden per LDAP gesucht und nicht mehr mittels DNS. Unter Solaris 11 ändert man dies nur mit ein paar Befehlen:

svccfg -s "name-service/switch" setprop 'config/host = astring: "files dns"'
svcadm refresh name-service/switch
svcadm restart name-service/switch

Unter Solaris 10 muss die Datei /etc/nsswitch.conf angepasst werden. Dafür ändert man nur folgende zwei Zeilen:

hosts: files dns
ipnodes: files dns

PAM konfigurieren

Die User existieren zwar schon, einloggen kann man sich jedoch nicht. Unter Solaris 11 ersetzt man dafür in den Dateien /etc/pam.d/login und /etc/pam.d/other die Zeile auth required pam_unix_auth.so.1 mit folgenden zwei Zeilen:

auth binding          pam_unix_auth.so.1 server_policy
auth required         pam_ldap.so.1

Unter Solaris 10 muss nur die Datei /etc/pam.conf geändert werden. Die Zeile

login   auth required       pam_unix_auth.so.1

ersetzt man durch

login   auth binding        pam_unix_auth.so.1 server_policy
login   auth required       pam_ldap.so.1

und die Zeile

other   auth required       pam_unix_auth.so.1

mit

other   auth binding        pam_unix_auth.so.1 server_policy
other   auth required       pam_ldap.so.1

Danach kann man sich gewohnt mit su oder in Gnome mit LDAP-Benutzern einloggen.

Autor: Olaf | 0 Kommentare | Tags: ldap, solaris

Neue Solaris und SPARC Roadmap

2017-01-21 10:59:59.0

Oracle hat eine neue Roadmap für SPARC und Solaris veröffentlicht, und wie erwartet kommt dort kein Solaris 12 mehr vor. Stattdessen setzt Oracle auf ein Continuous Delivery Modell, so dass neue Features direkt in Solaris 11 landen.

Das ist zwar einerseits ein gutes Konzept, andererseits will Oracle sicherlich auch Entwicklungskosten drücken. Es bleibt abzuwarten ob das nächste Solaris 11 Release die Neuerungen erhält, die Oracle bisher für Solaris 12 schon angekündigt hatte.

Autor: Olaf | 0 Kommentare | Tags: solaris, oracle

Oracle, Solaris, Linux und warum alles Scheiße ist

2016-12-19 16:40:00.0

Es scheint jetzt offenbar doch sehr schlecht für die Zukunft von Solaris auszusehen. Vor ein paar Monaten hat Oracle noch einige neue Solaris-Features angekündigt. Ein Entwickler hat sogar Screenshots von Gnome 3 unter Solaris veröffentlicht. Offenbar hat Oracle sich aber kurzfristig komplett umentschieden und holzt jetzt einiges ab.

Ihr Cloud-Geschäft läuft ziemlich gut, und dort kommt auch Solaris zum Einsatz. Daher wird es wohl noch irgendwie erhalten bleiben. Aber wie genau wird sich erst zeigen müssen. Server mit Solaris hat offenbar keine Priorität mehr, es sollen stattdessen alle auf Cloud-Produkte umsteigen.

Linux ist mitlerweile das dominierende Betriebsystem im Unix-Segment. Es gibt viele Gründe dafür, warum dies so ist, technisch gesehen ist Solaris aber mehr als konkurrenzfähig. Features, die jetzt erst langsam zu Linux wandern gibt es schon seit mehr als 10 Jahren bei Solaris:

Es gibt auch sehr viele Kleinigkeiten, die mir unter Solaris besser gefallen.

Vor allem sind bei Solaris viele Dinge schöner integriert und arbeiten wunderbar zusammen, wärend Linux ein wenig mehr Gefrickel ist.

Das soll jetzt kein Linux-Bashing werden, aber es ist meiner Meinung nach nicht das völlig überlegene Betriebsystem. Wenn Solaris stirbt wäre das einfach ein Technologie-Verlust. Vor allem will ich mich nicht mit Problem rumschlagen, die schon vor Jahren gelöst wurden. Es gibt natürlich noch IllumOS, den OpenSolaris-Fork, das müsste ich mir mal genauer anschauen.

Düstere Zukunftsaussichten

Nicht nur um Solaris wäre es schade. Generell verschwinden die guten Produkte.

Von 2009 bis Ende 2013 war ich Apple-User. Mich hat damals sowohl OS X überzeugt als auch die Hardware. Heute überzeugt mich von Apple leider gar nichts mehr. Ich bin immer bereit für hohe Qualität mehr Geld zu bezahlen. Apple liefert aber nicht mal mehr ansatzweise etwas wie Qualität. Nach jeder Einführung eines neuen Mac häufen sich Berichte über Probleme damit. Wann kam eigentlich der letzte Mac raus, der keine Grafik-Probleme hatte? Und auf verlöteten RAM hab ich auch keine Lust. Ich hab wenig Hoffnung, dass zukünftige Desktop-Macs wieder besser werden.

Als Smartphone hatte ich schon immer Nexus-Geräte. Erst das Nexus One, dann ein Nexus 4. Ein neues Smartphone könnte ich langsam mal gebrauchen. Leider hat Google die Nexus-Reihe beerdigt, und das Pixel ist einfach lächerlich überteuert und überzeugt generell nicht.

Irgendwann brauch ich auch mal einen neuen Desktop-Computer. Ich bin ein bisschen ein Fan der HP Z-Workstations. Leider entwickelt sich HP immer mehr zur völligen Idioten-Firma. Ich bin auch sehr überzeugt von Fujitsu. Die halte ich eigentlich für den aktuell besten Hersteller. Dumm nur, dass es da Gerüchte gibt, dass sie ihre PC-Sparte verkaufen wollen.

Zu guter Letzt veraltet die von mir bevorzugte Linux-Distribution CentOS 7 leider immer mehr. Kurz nach Release ist die Software schon nicht top aktuell, für mich jedoch neu genug. Mit den Jahren wird das leider nicht besser. Da ein EL8 noch nicht in Sicht ist, muss ich mich möglicherweise nach einer neuen Distri umschauen.

Autor: Olaf | 0 Kommentare | Tags: oracle, apple, google, solaris, linux, rant

Extended Attributes Teil 6: Solaris Syscalls

2016-12-13 18:07:26.0

Programmiertechnisch sind Extended Attributes unter Solaris nur Dateien, daher gibt es keine speziellen Syscalls für den Zugriff darauf.

Eine Attribut-Datei öffnen kann man mit openat. Hierfür benötigt man nur einen File-Descriptor der Datei, von der man ein Attribut öffnen will. Es muss dann nur noch das O_XATTR-Flag zusätzlich angegeben werden. Man erhält einen gewöhnlichen File-Descriptor, aus dem wie gewohnt gelesen und geschrieben werden kann.

Hier ist ein kleines Beispielprogramm, dass ein Attribut ausliest und auf der Konsole ausgibt.

Die Liste aller Attribute erhält man, in dem man das Attribut-Verzeichnis ließt. Der Trick ist hier, dass man das “.“-Verzeichnis relativ zur Datei mit dem O_XATTR-Flag öffnet.

int attrdir = openat(file, ".", O_RDONLY|O_XATTR);

Hier ist ein Beispiel dafür.

Für andere Dateisystemoperationen wie z.B. unlink oder chown gibt es ebenfalls *at-Funktionen, die man in Kombination mit einem File-Desriptor des Attribut-Verzeichnis benutzen kann. Siehe unlinkat, fstatat, fchownat.

Anstatt zuerst eine Datei mit open und danach mit openat das Attribut zu öffnen, kann man auch attropen benutzen, die das ganze in einer Funktion zusammenfasst.

Autor: Olaf | 0 Kommentare | Tags: solaris, xattr, c

Extended Attributes Teil 5: Solaris Commandline Tools

2016-12-12 20:17:32.0

In Solaris sind Extended Attributes keine Key/Value-Paare, sondern werden als Dateien repräsentiert. Hinter jeder Datei im Dateisystem steckt eine weitere Datei-Hierarchie, die jedoch auf normale Dateien beschränkt ist, also keine Unterverzeichnisse oder Links erlaubt. Attribute sind somit nur Dateien, für die die selben Limits für die Dateigröße oder Namen gelten. Außerdem haben sie eigene Zugriffsrechte. Nur einen absoluten Pfad haben sie nicht.

Für den Zugriff auf Attribute über die Shell gibt es das runat Tool. Dieses macht nichts weiter als das Working-Directory auf das versteckte Attributverzeichnis zu setzen und dann ein gewünschtes Kommando auszuführen. Man kann auch einfach eine Shell für dieses Verzeichnis starten. Um die Attribute dann zu lesen, schreiben oder aufzulisten können prinzipiell alle Programme verwendet werden.

$ touch test.txt
$ runat test.txt sh
$ echo "xattr test string" > testattribute
$ echo "text/plain" > mime_type
$ ls
mime_type      SUNWattr_ro    SUNWattr_rw    testattribute
$ cat testattribute
xattr test string
$ exit

Kommen wir zu der Unterstützung für Extended Attributes in den Standard-Unix-Tools.

Dateisysteme werden nicht nur ZFS und UFS unterstützt, sondern auch NFS. Und betreibt man einen Solaris smb-Server werden die Extended Attributes dort auch über smb als NTFS Alternate Data Stream zur Verfügung gestellt.

Siehe auch: fsattr(5)

Autor: Olaf | 0 Kommentare | Tags: solaris, xattr, shell
Weiter