ACLs, scp (und bananen :-) in LMN7

hallo zusammen,

zitate unseres diensleisters zu den themen

  1. aendern von rechten eins projektvrezeichnisses, damit nicht alle schueler mein hochgeladenes verz. loeschen koennen (laeuft ja mittlerweile ueber ACLs):

„für die Anpassung der ACLs gibt es keine „schnelle Lösung“ und diese können auch nicht über die Schulkonsole verwaltet werden. Die Berechtigungen der Netzlaufwerke haben sich zwischen der Linuxmuster 6 und der Version 7 geändert, weil der technische Aufbau ein komplett anderer ist. Gerne können wir versuchen die ACLs nach Ihren wünschen anzupassen und können Ihnen hinzu gerne ein Angebot zukommen lassen.“

  1. nachdem ich per scp etwas als user xyz auf einen rechner kopiere, verschwinden alle shares/drucker des users xyz auf diesem rechner (man muss sich wieder ab- und anmelden):

"Der Verhalten, welches Sie unter Punkt 2 beschreiben ist eigentlich auch „normal“. Da Sie sich per SSH am PC mit dem Benutzer anmelden, führt er dort dieselben Scripte aus wie bei der Desktop Anmeldung und überschreibt damit die Daten aus der Desktop-Sitzung.

was meinen die experten hier dazu … das klingt fuer mich ganz stark nach bananensoftware …

Hallo,

was meinen die experten hier dazu … das klingt fuer mich ganz stark nach
bananensoftware …

den Satz verstehe ich nicht.
Was ist Bananensoftware?
die lmn?
Weil sie beim Kunden reift?

Meiner Meinung nach hat der Dienstleister schon recht:

  1. die Rechtegeschichten der Netzverzeichnisse haben sich sehr deutlich
    geändert von der lmn6 zur lmn7: das geht nicht anders, wenn man von
    samba3 zu samba4 wechselt.

  2. die Rechte an zu passen ist durchaus möglich: die lmn wird halt mit
    dem ausgeliefert, was wir für richtig halten und/oder für den am
    weitesten verbreiteten Usecase.
    Will man die Rechte anpassen, dann muss man sich mit GPOs auseinandersetzen.
    Dass der Dienstleister da vorher ein Angebot machen will halte ich für
    Fair: dann habt auch ihr einen Überblick über das was da auf euch zu kommt.
    Sollte bei einfachem Anpassen der Rechte eigentlich nicht viel sein …
    Natürlich kannst du dich auch selbst in GPOs einlesen und das selber
    machen, aber Vorsicht: das ist ein weites Feld.

  3. das scp Ding hab ich nicht verstanden.
    Wer hat da von wo nach wo etwas mit scp kopiert? Und was ist dann passiert?
    Generell: die Shares und homes im Netz sind ein Bereich der mit samba
    abgedeckt wird. Es ist keine gute Idee wenn man da „auf anderem Wege“
    (z.B. scp) Dateien hinbewegt.
    Man sollte das nicht so machen.

LG

Holger

hi,

nach dem von dir gesagten: dann wohl zum teil die LMN7, denn ein use case wie:

ich mache in einem projektverzeichnis ein von mir erstelltes verzeichnis schreibgeschuetzt (so dass mir irgendwelche schueler vor lauter rumgeklicke es nicht aus versehen sonst wohin verschieben) duerfte keine raketenwissenschaft sein … und es kann auch nicht sein, dass ich dafuer einen diestleister brauche …

(lmn6: chmod og-w, mehr brauche ich nicht!

  1. wenn nach dem benutzen von scp, hier nochmal im detail:

ich mache von meinem rechner

scp -r dir xyz@10.0.147.1:/tmp

und dann der benutzer xyz, der auf 10.0.147.1 eingeloggt ist, auf 10.0.147.1 seine samba shares verliert, dann ist es aus meiner sicht falsch konfiguriert. denn ich greife ja nicht mal auf die shares zu, sondern nur auf /tmp!

warum scp: wenn ich mit dem nextcloudclient verzeichnisse spiegele, dann werden z.b. dot verzeichnisse nur als verzeichnis ohne inhalt kopiert (sehr aergerlich wenn man z.b. mit vscode arbeiten moechte). vllt. ist es eine einstellungssache, aber ich hab’s halt noch nicht gefunden, und scp hat mich bisher noch nie im stich gelassen.

  1. was aber momentan am allerschlimmsten ist:
    wenn ich auf ein samba share (media/xyz H: …)
    ein node_modules verzeichnis kopiere (kommt ganz oft bei type/javascript projekten vor), dann geht es nicht (kopiervorgang nimmt kein ende, das verz. zeigt groessen im GB bereich an, auch wenn es urspruenglich nur < 100 MB ist)

auch

npm install

geht nicht. da frage ich micht schon, ob das ganze REIF fuer den einsatz ist.

bin hier auch gerne fuer loesungsvorschlaege bereit, denn zu dem allen kommt der dienstleister nicht aus dem quark und ich muss schon seit 2 monaten mit einem zerschossenen system zu arbeiten versuchen (daher auch der frust).

da swar in lmn6 einfacher und es hat auch 1 mensch gereicht, es sauber zu installieren und zu warten … (jetzt schafft es eine firma nicht richtig, ohne in eine ticket orgie zu verfallen)

Hallo Artur,

nach dem von dir gesagten: dann wohl zum teil die LMN7,

… wenn du meinst.
Ich kann mcih nciht erinnern, dass schonmal jemand hier diese Meinung
geäußert hätte.

Welceh lmn hast du den? 7? 7.1?

denn ein use
case wie:

ich mache in einem projektverzeichnis ein von mir erstelltes verzeichnis
schreibgeschuetzt (so dass mir irgendwelche schueler vor lauter
rumgeklicke es nicht aus versehen sonst wohin verschieben) duerfte keine
raketenwissenschaft sein … und es kann auch nicht sein, dass ich dafuer
einen diestleister brauche …

(lmn6: chmod og-w, mehr brauche ich nicht!

ja, die lmn7 ist komplexer: aber so ist das leider, wenn man samba4
verwendet.
samba 3 war einfacher: wobei auch damals schon acls über dem
sabadateisystem lag, was dein chmod Befehl nicht beachtet (oder wurde
der vom client aus abgesetzt). Da hätte es also auch knallen können.
An samba 3 bekommt man aber aktuelle Betriebsysteme nicht mehr so leicht
dran.

  1. wenn nach dem benutzen von scp, hier nochmal im detail:

ich mache von meinem rechner

scp -r dir xyz@10.0.147.1 mailto:xyz@10.0.147.1:/tmp

und dann der benutzer xyz, der auf 10.0.147.1 eingeloggt ist, auf
10.0.147.1 seine samba shares verliert, dann ist es aus meiner sicht
falsch konfiguriert. denn ich greife ja nicht mal auf die shares zu,
sondern nur auf /tmp!

warum scp: wenn ich mit dem nextcloudclient verzeichnisse spiegele, dann
werden z.b. dot verzeichnisse nur als verzeichnis ohne inhalt kopiert
(sehr aergerlich wenn man z.b. mit vscode arbeiten moechte). vllt. ist
es eine einstellungssache, aber ich hab’s halt noch nicht gefunden, und
scp hat mich bisher noch nie im stich gelassen.

… das ist tatsächlich seltsam.
10.0.147.1 ist alos der Client?
Auf den schiebst du mit scp von irgend wo her eine Datei (oder mehrere)
ins /tmp Verzeichnis?
Passiert das Verlieren der Netzlaufwerke auch, wenn du di Dateien in ein
anderes Verzeichnis bewegst?

  1. was aber momentan am allerschlimmsten ist:
    wenn ich auf ein samba share (media/xyz H: …)
    ein node_modules verzeichnis kopiere (kommt ganz oft bei
    type/javascript projekten vor), dann geht es nicht (kopiervorgang
    nimmt kein ende, das verz. zeigt groessen im GB bereich an, auch
    wenn es urspruenglich nur < 100 MB ist)

was ist den ein „node_modules verzeichnis“?
Wie ist das aufgebaut?

LG

Holger

Hallo Artur,

was hast Du denn für linuxmuster7-linuxclient Pakete (oder wie die heißen) installiert? Sind die aktuell?
Ich gehe öfters mit ssh auf einen Client, ohne dass er seine Netzwerklaufwerke verliert… Ok, ob ich es als der Nutzer, der dort angemeldet ist, schonmal priobiert habe, weiß ich nicht.

Im Nextcloud-Einstellungen - Fenster kann man auf das Zahnrad (Allgemein) clicken, dort „Ignorierte Dateien bearbeiten“ anklicken, ganz oben gibt es ne Checkbox für synchronisiere versteckte DAteien…

Grüße
Max

ich will mich hier nicht ueber begriffe streiten, aber wenn etwas MUSTERloesung heisst, dann sollten einfache MUSTER use cases wie das aendern von schreibrechten fuer jeden benutzer leicht machbar sein. unsere genaue version weiss ich gerade nicht, kann ich nach den ferien nachliefern.

das mit scp kann ich auch erst wieder nach den ferien ausprobieren, aber ich glaube es ist egal in welches verzeichnis ich es kopiere. knackpunkt ist die anmeldung, welche die samba shares (und drucker etc.) raushaut.

wg. node modules

istalliere node/npm von nodejs.org

und erstelle eine package.json auf einem share verz., z.b. mit dem folgenden inhalt

{
„name“: „canvas“,
„version“: „1.0.0“,
„scripts“: {
„start“: „vite“,
„dev“: „vite dev“,
„build“: „vite build“,
„serve“: „vite preview“,
„lint“: „eslint ./src --ext .ts“,
„format“: „prettier --write "./"",
„format:check“: "prettier --check "./
"“,
„predeploy“: „npm run build“,
„deploy“: „gh-pages -d dist“
},
„devDependencies“: {
@typescript-eslint/eslint-plugin“: „5.33.0“,
@typescript-eslint/parser“: „5.33.0“,
„autoprefixer“: „10.4.8“,
„eslint“: „8.21.0“,
„eslint-import-resolver-typescript“: „3.4.1“,
„eslint-plugin-import“: „2.26.0“,
„eslint-plugin-node“: „11.1.0“,
„gh-pages“: „4.0.0“,
„postcss“: „8.4.16“,
„prettier“: „2.7.1“,
„tailwindcss“: „3.1.8“,
„typescript“: „4.7.4“,
„vite“: „^4.1.1“,
„vite-plugin-singlefile“: „^0.13.3“
}
}

lasse dann im gleichen verz.

npm install

laufen: es sollte ein node_modules verz. mit ca 160MB entstehen.

mache ich es direkt under /home/xyz → kein problem

auf einem samba share wird das verz. immer groesser (>8GB) und ist auch korrumpiert …

Hallo Artur,
ich hatte das ganz früher (LMN 6) mal, das man, wenn man in der Console Order von Share zu Share kopiert hatte, genau das eintrat: Müllproduktion.
Bei der 7 ist mir das bisher noch nicht passiert. Ich würd wirklich erstmal nach dem linuxmuster-linuxclient-Paket schauen.
LG
Max

Hallo, lieber Freund des Obstes …

Du hast Dich - wenn ich das richtig verstehe - auf ein SAMBA-Share mit ssh eingeloggt. Dass Du dann dort als user xyz deswegen ausgeloggt wirst, wäre ein Phänomen, von dem ich noch nie gehört habe…hm…vielleicht eher ein Seiteneffeklt von etwas, was Du noch nicht beschrieben hast…
Ich mach mal einen Versuch:
Es ist nicht zu empfehlen, ein gemountetes Share als gleicher Benutzer mit Rechten zu betreten, die diejenigen des SAMBA-Shares „unterlaufen“. Da die LM7 mit SAMBA (vermutlich) Windows-ACLs definiert, könnte dies den Betrieb stören ! In Welch filigranes Netz Du da geraten bist, zeigt Dir vielleicht diese Seite:
https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs
Meine Empfehlung:
Gehe nicht per ssh auf Deinen Client, sondern nimm auf der Kommandozeile das tool smbclient, das genau für solche Anwendungsfälle konzipiert wurde.

Mit freundlichen Grüßen
Christoph G.

lieber (nicht)versteher
nein, du verstehst es falsch
mfg

Huh, netter Ton, wenn man hier Unterstützung erwartet. Oder erwartest Du die evtl. gar nicht?

6 „Gefällt mir“

Moin

Das hat Dein Dienstleister eigentlich sehr exakt erklärt. Wenn Du Dich per ssh am Client anmeldest, kannst Du sehen, wie die Musterlösungsskripte laufen, die Drucker und Shares einhängen. Wenn Du Dich aus der ssh-ausloggst, laufen die Abmeldeskripte, die wieder aufräumen, also u.a. die Shares ausklinken und nicht lokale Drucker entfernen . Und wenn Du Dich an einem Rechner, an dem xyz per Desktop (gdm) angemledet ist per ssh als xzy an- und wieder abmeldest (was scp tut) dann sind nach dem Abmelden die Shares und Drucker abgebaut - auch für den Desktop User.

Um da auf Deine Worte zu verweisen - einem angemeldeten Desktop-User mit SEINEN Accountdaten per scp Dateien auf den Rechner zu schieben sehe ich persönlich nicht als MUSTER-Usecase an. Das kann ja sowies schon nur funktionieren, wenn die Schüler Ihre Passwörter nicht selbst gesetzt haben und das ist das ERSTE was wir unsere SuS machen lassen.

Für das Verteilen von Dateien sind in der Musterlösung die Tauschverzeichnisse vorgesehen oder das „An User verteilen“ Feature in der Webui. Mit scp zu verteilen ist m.E. mehr ein Hack, den ich aber durchaus auch verwende - allerdings ohne passwort und unter der verwendung von key-authentication und nicht, um schülern was zu „geben“ sondern um ad-hoc an der einstellung/installation des clients was zu drehen oder eine lokale datenbank einzuspielen oder so

  • bei mir hat dafür der root Account des Clients einen ssh-key
  • zum verteilen werde ich als lehrer erstmal root (lehrer sollten sudoer sein…)
  • dann kopiere ich mit scp eine datei an einen beliebigen rechner in ein beliebiges verzeichnis. weil root kein domänenuser ist, laufen dabei keine an-/abmeldeskripte, weil root einen ssh key (auf quell- und zielrechner) braucht es dabei keine passworteingabe
  • wenn die datei userlesbar sein muss, setze ich per ssh noch die rechte auf 755

Gruß
Sascha

3 „Gefällt mir“

Hallo zusammen,

hier die Infos:
WELCOME TO LINUXMUSTER.NET 7.1 - prerelease
-Base…: 9.1.2-0
-Linbo…: 9.4.9-0
-WebUI…: 1.0.170
-Sophomorix…: 9.81.17-1

vergesst bitte (vorerst) das mit ssh, ist nur ein nebenschauplatz

  1. Hauptproblem: ich kann ein node_modules verzeichnis nicht auf ein share kopieren (oder mit „npm i“ installieren). siehe beschreibung oben, beim installieren braucht man lediglich eine package.json datei (mit z.b. dem inhalt oben, aber es sollte fast jede beliebige tun) und nat. node/npm von nodejs.org.
    ich vermute, dass es an verzeichnissen mit @ im namen liegt:

drwxrwxr-x 4 xyz xyz 4096 Jan 9 15:26 ‚@types‘/
drwxrwxr-x 5 xyz xyz 4096 Jan 9 15:26 typescript/
drwxrwxr-x 10 xyz xyz 4096 Jan 9 15:26 ‚@typescript-eslint‘/

  1. Nebenproblem: ich kann auf einem share fuer ein projekt ein verzeichnis nicht schreibgeschuetzt machen (das meinte ich mit MUSTER use case)

vg

artur

hi artur,
ich würde eher davon abraten, auf egal welchem share ein npm install durchzuführen.
du hast ja selbst schon festgestellt, dass das schreiben/kopieren von vielen kleinen dateien aus einen sambashare endlos langsam ist. das ist ein „feature“ von samba, weil jeder dateizugriff einen overhead hat und sehr viele kleine dateien dadurch viel länger brauchen als eine große datei derselben größe.
ich kenne jetzt das größere bild nicht, aber wenn ich mit meinen schülern was mit node machen würde, würde ich ihnen zuallererst beibringen, auf der lokalen platte zu arbeiten und am ende das projekt gezippt auf den server zu legen und beim nächsten unterricht wieder auf die lokale platte zu entpacken. das dürfte das arbeiten mit den node-modulen, die ja bei jedem compile/transpile gelesen werden müssen, deutlich beschleunigen.
du könntest dann ggf. den npm install vorher bei dir durchlaufen lassen, das verzeichnis node_modules zippen und das archive über einen share bereitstellen, dann braucht nicht jeder schüler einzeln den ganze kleinkram ziehen.
aber ob das das ist, was du willst, weiß ich natürlich nicht - was ist denn eigentlich der übergeordnete anwendungsfall sprich was hast du mit deinen schülern vor ?

gruß
sascha

1 „Gefällt mir“

hi sascha,

das problem ist, dass schon das kopieren eines node_modules verzeichnisses auf ein share laufwerk scheitert. solche „features“ hat ansonsten nur b…e :slight_smile:

ansonsten machen wir es genau so (und ziehen jede stunde 130 MB pro schueler aus dem netz :-(, aber es kann eigenlich im jahr 2023 nicht sein, dass man solche verrenkungen machen mu(e)ss(te).

wir programmieren im LK mit typescript (statt java), kann ich waermstens empfehlen. werde wahrsch. auf deno statt node umsteigen, aber node ist (noch) gelaeufiger und damit fuer die schueler leichter zu hause zu installieren.

vg

artur

hi artur,
dann scheint es ja darum zu gehen, dass jeder schüler einen bestimmten satz an node-bibliothekn regelmässig braucht. der usecase hier ist also, dass diese bibliotheken im linux-client vorgehalten sein sollten, am besten system-wide, denn es ist unnötig, dass die jeder schüler nochmal extra in seinem (lokalen) heimatverzeichnis als kopie hat.
wäre das also meine schule, würde ich in einem frisch syncronisierten linuximage ein
sudo npm -g install …
für die benötigten bibliotheken machen und dann das image hochschreiben.

würde ich dann im unterricht spontan zusätzliche bibliotheken brauchen, könnte man die per

sudo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@<schuelerrechner> 'npm -g install <paketname>'

vom lehrerrechner nachinstallieren.
wenn eure rechner ein vernünftiges namensschema mit nummern haben, packst du das noch in eine schleife und erschlägst direkt den ganzen raum.
vorraussetzung dabei natürlich, dass die lehreraccounts sudoer sind, aber wenn sie das nicht sind, wäre das das nächste, was ich an der linuxinstallation ändern würde.

gruß
sascha

2 „Gefällt mir“

… oder nochmal das Stichwort parallel-ssh bzw pssh genannt …

…ah !! oh !!!
…das hast du bestimmt schonmal woanders angebracht…werde ich morgen direkt mal ausprobiern

… es gibt sogar eine (relativ alte) Seite dazu im Wiki:
https://wiki.linuxmuster.net/community/anwenderwiki:scripting:pssh_parallel-ssh

Aber Du kannst auch gleich hier nachsehen:

hi zusammen,

unix (und linux und andere OSe) haben dateisysteme, damit man sie benutzt werden koennen, ohne dass man sich ueber deren eigenheiten gendanken machen muss.

der sinn uebrigens, dass jeder „npm i“ einmal pro projekt macht, ist der, dass die schueler zu hause komplett die gleiche umgebung haben sollen (der grosse vorteil von node). normalerweise wie gesagt nur einmal an anfang, und es kann echt nicht sein, dass man bei so einfachen sachen umwege gehen muss

wenn ein flieger jemals fliegen soll, dann darf der pilot nicht staendig selber die duesenjets warten :slight_smile:

mich wuerde interessieren, ob andere das selber verhalten reproduzieren koennen, damit waere klar, ob es generell an der LMN oder an unserer installation liegt …

vg

artur