Hallo,
gibt es eine Möglichkeit, mit einem reinen Shellskript das Kennwort eines Nutzers zu ändern oder festzulegen? Sowohl useradd als auch usermod verlangen die verschlüsselte Variante, und "crypt" existiert (aus welchem Grund auch immer) nicht als Standard-Kommandozeilentool. Ich will das Skript dafür verwenden, eine "Sandbox"-Umgebung herzustellen, um Programme darin auszuführen, die aus dem Netz gezogen werden, aber nicht in jedem Fall fehlerfrei ablaufen könnten, und falls doch mal was schiefgeht ist mir mein Homeverzeichnis viel zu wichtig... Ein kleines Programm sorgt dann immer dafür, daß die Sachen unter der ID des Nutzers "sandbox" ablaufen, nur muß der erstmal automatisch erzeugt werden können.
Josef Spillner
gibt es eine Möglichkeit, mit einem reinen Shellskript das Kennwort eines Nutzers zu ändern oder festzulegen?
"passwd" ist das Programm das du suchst. Funktioniert auf jedem Unix.
Hi Josef,
On Thu, Jul 19, 2001 at 23:24:58 +0200, Josef Spillner wrote:
Ich will das Skript dafür verwenden, eine "Sandbox"-Umgebung herzustellen, um Programme darin auszuführen, die aus dem Netz gezogen werden, aber nicht in jedem Fall fehlerfrei ablaufen könnten, und falls doch mal was schiefgeht ist mir mein Homeverzeichnis viel zu wichtig...
Warum richtest Du Dir nicht einfach einen eigenen Accounr fuer solche Aktionen ein?
bye, Chris
On Thursday 19 July 2001 23:42, Christian Perle wrote:
Warum richtest Du Dir nicht einfach einen eigenen Accounr fuer solche Aktionen ein?
Ich hab meinen schon, aber es geht um andere Nutzer. Bei der Installation von Binärpaketen kann man das z.B. im postinst mit unterbringen, dafür habe ich das Skript "drsinit", wo man zur Not das Kennwort schon kodiert reinschreibt, da der Nutzer wirklich unprivilegiert sein soll (falsches Login, Quota (falls existent) auf <10MB oder was auch immer). Für die Generierung von einer GUI aus werde ich jetzt wahrscheinlich doch nicht auf das Skript zurückgreifen, sondern noch mal extra eine Implementation in C/C++ machen, so daß bei der Nutzer später einfach nur das Root- und das gewünschte Nutzerkennwort angeben muß zur Erzeugung. Lokal soll das Kennwort dann gespeichert werden, sonst müßte es der Nutzer jedesmal wieder neu eingeben, und dann könnte er gleich eine Konsole aufmachen und "su" eingeben. Tja, leider gibt es unter Linux kein vernünftiges Sandbox-Konzept, deshalb muß das so umständlich gemacht werden. Dummerweise hat das nämlich wieder den Nachteil, daß die heruntergeladenen Dateien, die im Homeverzeichnis des Nutzers liegen, von "sandbox" nicht gelesen werden können, also muß man die zuerst nach tmp/ verschieben. Naja, für die ganz Mutigen gibt es ja die Option "Applikation unter der eigenen UID starten" :-)
Josef Spillner
On Thu, Jul 19, 2001 at 11:24:58PM +0200, Josef Spillner wrote: Tag!
gibt es eine Möglichkeit, mit einem reinen Shellskript das Kennwort eines Nutzers zu ändern oder festzulegen? Sowohl useradd als auch usermod verlangen die verschlüsselte Variante, und "crypt" existiert (aus welchem Grund auch immer) nicht als Standard-Kommandozeilentool.
Ich kapiere zwar nicht so ganz, was du eigentllich willst. Vielleicht nützt dir folgendes was, um in der shell zu crypten:
#!/bin/sh pw="geheim" salt="x" crypted=`perl -e "print crypt("$pw","$salt")"` echo $crypted
Reinhard
On Friday 20 July 2001 14:32, Reinhard Foerster wrote:
Ich kapiere zwar nicht so ganz, was du eigentllich willst. Vielleicht
http://mindx.sourceforge.net/drs
Es geht eigentlich nur darum, Applikationen automatisch upzudaten vor der Ausführung - entweder auf "stable", oder (was für Entwickler interessanter ist) direkt immer die neueste CVS-Version dazuhaben. Und weil es noch ziemlich genau eine Zwischenlösung gibt, nämlich immer das aktuelle Client/Server-Protokoll zu verwenden bei einer hinreichend stabilen Version, muß ein Server darüber entscheiden, was gut für den Client ist. (Sonst lehnt er ihn sowieso ab) Und damit das alles funktioniert und auch sicher ist, muß da eine Sandbox her. Nicht daß es im Moment "gefährlich" wäre, nur wenn so ein System erstmal funktioniert, wer weiß was sich die Leute alles runterladen.
Sieh mal auf http://civil.sourceforge.net - ein Strategiespiel, in Python geschrieben und damit 100% online-update-fähig. Das wird mein Release-Ziel, dieses Spiel darüber zum Laufen zu bekommen. Spätere Versionen machen dann davon Gebrauch, bei modernen Sprachen wie z.B. Ruby dynamisch zu bereits instantiierten Objekten Methoden hinzuzufügen. Ob das in jedem Fall sinnvoll ist ist fraglich, aber besser was selbstgebasteltes als .NET oder Mono oder wie diese Projekte heißen, die wohl auf ähnliches (nur größer und teurer) hinauslaufen, und programmiertechnisch auf alle Fälle eine Herausforderung, denn immer nur GUI-only und Server-only zu programmieren ist mir im Moment zu monoton.
Hm, leicht vom Thema abgekommen, aber jetzt weiß ich zumindest daß Shellskripte hier nicht so optimal sind, ich werde das also mit als C-Funktion integrieren.
Josef Spillner
On Fri, Jul 20, 2001 at 05:37:06PM +0200, Josef Spillner wrote: Abend!
Neger im nächtlichen Tunnel? (Netscape-4.77)
View --> Page code
aber viel steht da ja noch nicht :)
Es geht eigentlich nur darum, Applikationen automatisch upzudaten vor der Ausführung - entweder auf "stable", oder (was für Entwickler interessanter ist) direkt immer die neueste CVS-Version dazuhaben. Und weil es noch ziemlich genau eine Zwischenlösung gibt, nämlich immer das aktuelle Client/Server-Protokoll zu verwenden bei einer hinreichend stabilen Version, muß ein Server darüber entscheiden, was gut für den Client ist. (Sonst lehnt er ihn sowieso ab)
Bis hierher nicht sonderlich aufregend. Schlaue Beschreibungssprachen für Interfaces inkl. Versionierung gibt es sicherlich mehrere. Möglichst an der Stelle nicht neues erfinden! Ausserdem ist es sicher nötig, das Protokoll für die Spieleupdates völlig abseits der Kommunikation der Spiele im Netz zu machen. Da ich bisher noch nicht so recht weiss, was genau das Ding tun soll, kann ich dazu nicht viel schreiben. Das wäre mal ein gutes Thema für einen Kneipenabend. Da ich ja bekanntermaßen öfters mit Blizzards battle.net zu tun habe und daran vieles zum Kot**** ist, habe ich mir zu dem Thema auch schon den Kopf zerbrochen.
Und damit das alles funktioniert und auch sicher ist, muß da eine Sandbox her.
Verstehe ich das jetzt richtig: Das ganze spiel soll dann in dieser Sandbox laufen? Wenn ja würde ich mal so als Schnellschuß sagen: Vergiß es.
Nicht daß es im Moment "gefährlich" wäre, nur wenn so ein System erstmal funktioniert, wer weiß was sich die Leute alles runterladen.
Sieh mal auf http://civil.sourceforge.net - ein Strategiespiel, in Python geschrieben und damit 100% online-update-fähig. Das wird mein Release-Ziel, dieses Spiel darüber zum Laufen zu bekommen. Spätere Versionen machen dann davon Gebrauch, bei modernen Sprachen wie z.B. Ruby dynamisch zu bereits instantiierten Objekten Methoden hinzuzufügen.
Deine Onlineupdatefähigkeit wird also von der Implementierungssprache des Spiels abhängen? Schlecht.
Ob das in jedem Fall sinnvoll ist ist fraglich, aber besser was selbstgebasteltes als .NET oder Mono oder wie diese Projekte heißen, die wohl auf ähnliches (nur größer und teurer) hinauslaufen, und programmiertechnisch auf alle Fälle eine Herausforderung, denn immer nur GUI-only und Server-only zu programmieren ist mir im Moment zu monoton.
Fang nicht gleich an zu Kodieren. Mach erstmal so eine Art Spezifikation deiner Idee, {stell sie ins Netz ... schmeiss sie wieder weg ... mach eine neue}* ... baue erst eine Referenzinplementation, wenn ein paar Leute die Spec für sinnvoll halten. Du würdest ansonsten garantiert 1000 wichtige Dinge vergessen oder unschön machen. So nur 997 :-)
Hm, leicht vom Thema abgekommen, aber jetzt weiß ich zumindest daß Shellskripte hier nicht so optimal sind, ich werde das also mit als C-Funktion integrieren.
Vom Regen in die Traufe :) Das Protokoll ist erstmal wichtig. In was man das dann baut ist die 2. Frage.
Reinhard
Hallo,
On Saturday 21 July 2001 00:26, Reinhard Foerster wrote:
Neger im nächtlichen Tunnel? (Netscape-4.77)
View --> Page code
aber viel steht da ja noch nicht :)
Keine Ahnung ob Netscape das kann. Wenn nicht, sage ich einfach mal "ich supporte keine proprietären Programme". Mit Konqueror, Mozilla, Lynx, w3m sollte es gehen. (Die Datei heißt index.php, eventuell mag NS das nicht, obwohl das ja der Apache entscheidet).
Bis hierher nicht sonderlich aufregend. Schlaue Beschreibungssprachen für Interfaces inkl. Versionierung gibt es sicherlich mehrere. Möglichst an der Stelle nicht neues erfinden! Ausserdem ist es sicher nötig, das Protokoll für die Spieleupdates völlig abseits der Kommunikation der Spiele im Netz zu machen.
Richtig - das sind zwei voneinander getrennte serielle Abläufe.
Da ich bisher noch nicht so recht weiss, was genau das Ding tun soll, kann ich dazu nicht viel schreiben. Das wäre mal ein gutes Thema für einen Kneipenabend. Da ich ja bekanntermaßen öfters mit Blizzards battle.net zu tun habe und daran vieles zum Kot**** ist, habe ich mir zu dem Thema auch schon den Kopf zerbrochen.
Ähm.... erwarte keine Spiele die dich graphisch vom Hocker reißen oder mit denen von Blizzard, selbst von vor 5 Jahren, mithalten können. Wir machen Spiele, keine Produkte :-) (Blizzard lehnt sowohl Open Source als auch Linux an sich ab)
Und damit das alles funktioniert und auch sicher ist, muß da eine Sandbox her.
Verstehe ich das jetzt richtig: Das ganze spiel soll dann in dieser Sandbox laufen? Wenn ja würde ich mal so als Schnellschuß sagen: Vergiß es.
Hm. Spiele müssen nur Daten lesen, nicht schreiben. Highscores etc. werden an den Server übergeben. Dann sollte das Konzept an sich nicht so falsch sein. Java-Applets funktionieren ja auch so, nur daß es dort in der Sprache implementiert ist, und das ist aus unserer Sicht völliger Nonsens -> bitte benutzt nur Basic, das kann nichts kaputtmachen :)
[...]
Deine Onlineupdatefähigkeit wird also von der Implementierungssprache des Spiels abhängen? Schlecht.
Nein - Wirf einfach einen Blick ins CVS (http://sourceforge.net/projects/mindx -> auf CVS klicken). Nur Skriptsprachen müssen es sein, denn wie willst du Binärkode direkt ausführen? Z.B. auf einer 64-bit Maschine, oder mit einer anderen libc, oder mit fest einkompilierten Pfaden - bei Perl, Python, Ruby & Co. ist man da relativ frei und kompatibel.
Fang nicht gleich an zu Kodieren. Mach erstmal so eine Art Spezifikation deiner Idee, {stell sie ins Netz ... schmeiss sie wieder weg ... mach eine neue}* ... baue erst eine Referenzinplementation, wenn ein paar Leute die Spec für sinnvoll halten. Du würdest ansonsten garantiert 1000 wichtige Dinge vergessen oder unschön machen. So nur 997 :-)
Spezifikation ist vorhanden (langsam fange ich an Netscape zu verteufeln), und die Referenzimplementation ist das was ich gerade mache. Naja, nächstes Wochenende zumindest, jetzt muß ich erst mal Real-Life-Prüfungen absolvieren... Informations- und Kodierungstheorie... so nah am Thema und doch dran vorbei. Denn unsere Release-Policy sieht leider keine Angabe der Hamming-Distanz (d_ij = d(a_i, a_j) = | {g el. Z | u_ig != u_jg} vor, die User interessieren sich eher für Icons, und die haben mir z.B. heute schon wieder einen Bugreport eingebracht, weil KDE jetzt keine Locolor-Icons mehr unterstützt und meine Programme dadurch unbunt aussehen. Und weil das schon der zweite zum Thema ist, werde ich das wohl fixen, auch wenn ich erst ab Ende August ganz langsam in den Freeze gehen möchte und Bugfixes davor eigentlich nicht meine Sache sind.
Josef Spillner
On Sat, Jul 21, 2001 at 09:23:10PM +0200, Josef Spillner wrote: Abend!
Keine Ahnung ob Netscape das kann. Wenn nicht, sage ich einfach mal "ich supporte keine proprietären Programme". Mit Konqueror, Mozilla, Lynx, w3m sollte es gehen. (Die Datei heißt index.php, eventuell mag NS das nicht, obwohl das ja der Apache entscheidet).
Das ist kein HTML. Punkt.
BTW: Wie dein Projekt zeigt und wie du auch sonst oft genug zum Ausdruck bringst, bist du doch immer wahnsinnig scharf auf Kompatibilität und Plattformunabhängigkeit. Wenn es aber darum geht, ein etwas ältliches non-free-programm (netscape) zu disqualifizieren, stehst du in der ersten Reihe. Opensouce-Geschwafel bringt an der Stelle gar nix. Versuchs mal mit HTML-3.2 *kopfschüttel dazu*
Ähm.... erwarte keine Spiele die dich graphisch vom Hocker reißen oder mit denen von Blizzard, selbst von vor 5 Jahren, mithalten können. Wir machen Spiele, keine Produkte :-)
Ich habe dich so verstanden, daß du vor allem ein Framework für Online-Spiele mit Updatemöglichkeiten schreiben willst. Welche Qualität die darauf basierenden Spiele dann mal haben ist erstmal Nebenschauplatz dachte ich.
(Blizzard lehnt sowohl Open Source als auch Linux an sich ab)
Damit kann ich gut leben. Leider sind deren Spiele (und die Struktur der Server) technisch an vielen Stellen unter aller Sau. Daher mein Interesse an einer "Plattform für Onlinespiele". Wenn man das gescheit aufzieht, entstehen bestimmt irgendwann wirklich brauchbare Spiel dafür - meinetwegen auch solche, bei denen die Kiste im Laden 80 Mark kostet.
Verstehe ich das jetzt richtig: Das ganze spiel soll dann in dieser Sandbox laufen? Wenn ja würde ich mal so als Schnellschuß sagen: Vergiß es.
Hm. Spiele müssen nur Daten lesen, nicht schreiben. Highscores etc. werden an den Server übergeben. Dann sollte das Konzept an sich nicht so falsch sein.
Das ist für nichttriviale mMn unrealistisch.
Java-Applets funktionieren ja auch so, nur daß es dort in der Sprache implementiert ist, und das ist aus unserer Sicht völliger Nonsens -> bitte benutzt nur Basic, das kann nichts kaputtmachen :)
Ich gewinne langsam den Eindruck, daß du dir diese Sandbox als viel zu einfach vorstellst.
Deine Onlineupdatefähigkeit wird also von der Implementierungssprache des Spiels abhängen? Schlecht.
Nein - Wirf einfach einen Blick ins CVS (http://sourceforge.net/projects/mindx -> auf CVS klicken). Nur Skriptsprachen müssen es sein, denn wie willst du Binärkode direkt ausführen?
Ach Gott. Spiele auf Skriptsprachen beschränken???? Da kann man auch gleich Java nehmen womit man wenigstens Sandbox + viel_schlaue_infrastruktur + sehr gute Plattformunabh. gratis dazubekommt. Die Einschränkung auf Skiptsprachen um halbwegs (!) platformunabhängig zu sein ist so radikal, daß sie sämtliche Spiele auf aktuellem Niveau völlig ausschließt. Damit dürfte sogar ein Großteil der Spiele auf Niveau des KC8x oder C64 nicht realisierbar sein.
Z.B. auf einer 64-bit Maschine, oder mit einer anderen libc, oder mit fest einkompilierten Pfaden - bei Perl, Python, Ruby & Co. ist man da relativ frei und kompatibel.
Ich würde den plattformabhängigen Teil der SPiele einfach in Versionen für die nötigen Systeme auf den Server legen und automatisch richtig verteilen lassen.
Wie gesagt: Das Ding auf Spiele mit Skiptsprachen zu beschränken erscheint mir wenig sinnvoll. Wennschon sowas entwerfen und bauen dann lieber gleich richtig :-) Da hat man zwar die ersten Monate keinen verwendbaren Output aber danach könnte das Ding so richtig einschlagen.
Fang nicht gleich an zu Kodieren. Mach erstmal so eine Art Spezifikation deiner Idee, {stell sie ins Netz ... schmeiss sie wieder weg ... mach eine neue}* ... baue erst eine Referenzinplementation, wenn ein paar Leute die Spec für sinnvoll halten. Du würdest ansonsten garantiert 1000 wichtige Dinge vergessen oder unschön machen. So nur 997 :-)
Spezifikation ist vorhanden (langsam fange ich an Netscape zu verteufeln), und die Referenzimplementation ist das was ich gerade mache. Naja, nächstes
Fazit: Nach dem, was ich hier bisher gelesen habe, vergeudest du deine Zeit und Fähigkeiten. (abgesehen von Erfahrung+Programmierpraxis für dich natürlich)
Schoenes WE noch, Reinhard
On Saturday 21 July 2001 23:37, Reinhard Foerster wrote:
Das ist kein HTML. Punkt.
Oh, sorry, das war wirklich ein wenig fehlformatiert durch die Include-Dateien. Ich habe das jetzt korrigiert, und auch mit dem Netscape von der Uni (den ich mir gerade ge-x-forwardet habe) funzt es (HTML 4.01). Aber er zeigt die transparente PNG-Grafik falsch an...
Josef Spillner
On Sun, Jul 22, 2001 at 12:36:48PM +0200, Josef Spillner wrote:
On Saturday 21 July 2001 23:37, Reinhard Foerster wrote:
Das ist kein HTML. Punkt.
Oh, sorry, das war wirklich ein wenig fehlformatiert durch die Include-Dateien. Ich habe das jetzt korrigiert, und auch mit dem Netscape von der Uni (den ich mir gerade ge-x-forwardet habe) funzt es (HTML 4.01). Aber er zeigt die transparente PNG-Grafik falsch an...
IE auch, scheint ein Problem der 'alten' Browser zu sein ;)
Ciao, Tobias
On Saturday 21 July 2001 23:37, Reinhard Foerster wrote:
On Sat, Jul 21, 2001 at 09:23:10PM +0200, Josef Spillner wrote: Abend!
Keine Ahnung ob Netscape das kann. Wenn nicht, sage ich einfach mal "ich supporte keine proprietären Programme". Mit Konqueror, Mozilla, Lynx, w3m sollte es gehen. (Die Datei heißt index.php, eventuell mag NS das nicht, obwohl das ja der Apache entscheidet).
Das ist kein HTML. Punkt.
BTW: Wie dein Projekt zeigt und wie du auch sonst oft genug zum Ausdruck bringst, bist du doch immer wahnsinnig scharf auf Kompatibilität und Plattformunabhängigkeit. Wenn es aber darum geht, ein etwas ältliches non-free-programm (netscape) zu disqualifizieren, stehst du in der ersten Reihe. Opensouce-Geschwafel bringt an der Stelle gar nix. Versuchs mal mit HTML-3.2 *kopfschüttel dazu*
Einfaches rumflamen bringt aber auch nicht gerade viel!
Sorry, mußte mal gesagt werden...
Konrad
PS.: Q.: was ist die Gemeinsamkeit zwischen einem Eunuchen und einem Kritiker? A.: beide wissen wie's geht, können's aber nicht!
On Sat, Jul 21, 2001 at 09:23:10PM +0200, Josef Spillner wrote:
Hallo,
User interessieren sich eher für Icons, und die haben mir z.B. heute schon wieder einen Bugreport eingebracht, weil KDE jetzt keine Locolor-Icons mehr unterstützt und meine Programme dadurch unbunt aussehen.
Da hatte vor kurzem jemand ein BugFix geschrieben, der HiColor-Icons dithert, so das sie auch auf 8-Bit Graphikkarten erträglich sind.
Ciao, Tobias
On Thu, Jul 19, 2001 at 11:24:58PM +0200, Josef Spillner wrote:
gibt es eine Möglichkeit, mit einem reinen Shellskript das Kennwort eines Nutzers zu ändern oder festzulegen? Sowohl useradd als auch usermod verlangen die verschlüsselte Variante, und "crypt" existiert (aus welchem Grund auch immer) nicht als Standard-Kommandozeilentool.
chpasswd (8) - update password file in batch
... wenn Du eine kurze Antwort suchst.
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
lug-dd@mailman.schlittermann.de