"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mount --bind und chmod

schizo 04.05.2007 - 14:26 3095 25
Posts

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Hallo!
Ich hab einen ftp rennen, bei dem mehrere User unterschiedliche Home directorys haben sollen, in denen sie teilweise auf die selben directorys zugreifen können, doch mit unterschiedlichen rechten.
Deswegen weise ich den Usern durch eine Datei, welche das directory mapping mittels mount --bind realisiert, zu.
Soweit, so gut. Ich habe nun die gewünschten Verzeichnisse bei den Usern. Allerdings sollen diese ja unterschiedliche rechte haben.
Nun kommt auch mein Problem:
schreibe ich die chmod Befehle in die selbe Datei passiert genau nichts, gebe ich den Befehl 1:1 in die Console ein werden die Rechte übernommen.

Hat irgendjemand eine Idee, worans liegen könnte, bzw weiß jemand, wie ich das Problem umgehen kann?
mfg

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Wenn du unterschiedliche Rechte vergeben willst solltest zu dir die zugriffsrechte etwas genauer anschauen, du hast "owner""group""else" und kannst damit nach belieben zugriffsrechte verteilen.

ich versteh alerdings nicht, wieso du mount --bind verwendest, wenns ein softlink genauso tut. Und ja wenn du dem zielverzeichnis andere zugriffsrechte gibst werden die übernommen, das hat beim softlink allerdings eh keinen sinn, weil es ziemlich sinnfrei wäre über einen softlink auf ein verzeichnis mehr zugriffsrechte zu haben als ohne. -> sicherheitslücke -> softlinks haben keine zugriffsrechte

bin mir nicht sicher wie das beim bind ist sollte aber ähnlich sein

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12069
Ich muss gestehen, ich verstehe weder den ersten, noch den zweiten Post in diesem Thread :D

Willst du dein Anliegen vielleicht nochmals alternativ formulieren, Schizo?

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Also, um auszuholen:
Ich hab nen ftp rennen, in dem user in nem chroot jail stecken. Darum kann ich keine Softlinks verwenden, sondern muss eben mount --bind verwenden.
Damit ich die Befehle nach dem Booten nicht neu eingeben muss hab ich mir ein file geschrieben, in welchem die ganzen Befehle automatisch abgearbeitet werden
(umount -zum reinigen, bzw synchronisieren da ich mehrere instanzen rennen hab, mount, und dann eben noch chroot)

Das Problem ist:
chroot -R 777 /dir - in der console funktioniert
chroot -R 777 /dir - in dem file geht nicht, diverse Befehle, die davor drin stehen werden aber abgearbeitet

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Meinst du vielleicht chmod?

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von schizo
Damit ich die Befehle nach dem Booten nicht neu eingeben muss hab ich mir ein file geschrieben, in welchem die ganzen Befehle automatisch abgearbeitet werden
(umount -zum reinigen, bzw synchronisieren da ich mehrere instanzen rennen hab, mount, und dann eben noch chroot)
man fstab ? :D

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Zitat von Marcellus
Meinst du vielleicht chmod?

ja... hab mich vorhin anscheinend verschrieben

chmod, chroot würd ja keinen Sinn ergeben

Zitat von gue
man fstab ? :D

mount --bind wird von fstab nicht unterstützt, und gleich nach dem booten kann ich die Rechte nicht vergeben, da es sich um loop-devices handelt.

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von schizo
mount --bind wird von fstab nicht unterstützt, und gleich nach dem booten kann ich die Rechte nicht vergeben, da es sich um loop-devices handelt.
man fstab?

Auszug aus meiner fstab:
Code:
/mnt/sda5	/home/gue/Home	auto	rw,bind,exec,auto,user	0	0

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
auszug aus "man fstab"

Zitat
It is formatted as a comma separated list of options. It contains at
least the type of mount plus any additional options

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Zitat von gue
man fstab?

Auszug aus meiner fstab:
Code:
/mnt/sda5	/home/gue/Home	auto	rw,bind,exec,auto,user	0	0

Ich kann den Befehl nicht in die fstab schreiben, weil sich das directory, dass ich mounten möchte ein Passwortverschlüsseltes loop device ist und ich es daher erst im nachhinnein mounte.

edit: hm... hab bisl crap bzgl. fstab geschrieben. Ändert aber nichts daran, dass ich den Befehl nicht in die fstab schreiben kann (Grund siehe oben).
Es geht mir im übrigen nicht um mount --bind, sondern eher um die Rechtevergabe, die nur übernommen wird, wenn ich sie direkt in die console schreibe, in dem file aber genau nichts bewirkt (root rechte vorhanden)
Bearbeitet von schizo am 06.05.2007, 15:01

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Wird das file ausgeführt?
Hast du vllt vergessen in der erzen zeile
"#! /bin/bash" hinzuschreiben? Ist das script ausführbar? Hast du irgendwelche aliases in dem script verwendet, die nicht global verfügbar sind?
Wenn du in diesem script mit echo in ein file was rausschreibst ist es dann da?
Was passiert wenn du nach dem booten das file von hand ausführst?

Btw wenn du eine verschlüsselte platte hast und du mountest das ding automatisch bringt dir die verschlüsselung eh nichts, wenn das passwort eh in dem file steht. Du verschwendest damit nur cpu laufzeit.

EDIT:Und dmcrypt mit luks kann man mit cryptsetup mounten, du musst nur das passwort eingeben.

Ich hab auch sowas, um das passwort nicht auf der festplatte zu speichern log ich mich mit ssh ein und führe das script aus:

Code: PHP
#!/bin/sh
/bin/cryptsetup luksOpen /dev/md0 data && mount /home/marcellus

dann geb ich das passwort ein, das device wird gemountet und alle sind glücklich :)
Bearbeitet von Marcellus am 06.05.2007, 15:23

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Zitat von Marcellus
Wird das file ausgeführt?
Ja
Zitat
Hast du vllt vergessen in der erzen zeile
"#! /bin/bash" hinzuschreiben?
Ja, habs geändert, bringt aber nichts. Die Verzeichnisse werden alle gemountet, Rechte aber nicht verteilt.
Zitat
Ist das script ausführbar?
Ja
Zitat
Hast du irgendwelche aliases in dem script verwendet, die nicht global verfügbar sind?
Nein
Zitat
Wenn du in diesem script mit echo in ein file was rausschreibst ist es dann da?
Ja
Zitat
Was passiert wenn du nach dem booten das file von hand ausführst?
Ich hab das script bis jetzt nur von Hand ausgeführt.

Zitat
Btw wenn du eine verschlüsselte platte hast und du mountest das ding automatisch bringt dir die verschlüsselung eh nichts, wenn das passwort eh in dem file steht. Du verschwendest damit nur cpu laufzeit.
Das ist mir bewusst, das PWD steht in keinem file und wird jedes mal per Hand eingegeben.

Zitat
EDIT:Und dmcrypt mit luks kann man mit cryptsetup mounten, du musst nur das passwort eingeben.


Ich hab AES-loop verwendet. Ich muss das PWD jedesmal eingeben, wenn ich ein verschlüsseltes device mounten möchte. Ist zwar etwas Mehraufwand, aber ich mag mir die Arbeit nicht antun, jetzt alle devices mit dmcrypt zu codiern.

Zitat
Ich hab auch sowas, um das passwort nicht auf der festplatte zu speichern log ich mich mit ssh ein und führe das script aus:

Code: PHP
#!/bin/sh
/bin/cryptsetup luksOpen /dev/md0 data && mount /home/marcellus

dann geb ich das passwort ein, das device wird gemountet und alle sind glücklich :)

Ich machs etwas umständlicher:
Ich log mich per ssh ein, speicher das pwd (auf nem Windows Rechner) per strg + c, dann muss ichs auch nur einmal eingeben, lediglich die mountpunkte muss ich ändern.
Ich hoffe, dass dieser Vorgang hier keine allzugroße Sicherheitslücke darstellt.

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Zitat von schizo
Ich machs etwas umständlicher:
Ich log mich per ssh ein, speicher das pwd (auf nem Windows Rechner) per strg + c, dann muss ichs auch nur einmal eingeben, lediglich die mountpunkte muss ich ändern.
Ich hoffe, dass dieser Vorgang hier keine allzugroße Sicherheitslücke darstellt.

Windows ssh? Was? ich blick da nicht ganz durch, am einfachsten wirds sein, wenn du einfach das script postest, dann geht die diagnose auch um einiges einfacher. Aber was ich mir vorstellen könnte ist, dass das script nicht im interactive modus ausgeführt wird und das ganze zeug vonwegen passwortabfrage einfach deswegen nicht geht.

schizo

Produkt der Gesellschaft
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 2542
Zitat von Marcellus
Windows ssh? Was? ich blick da nicht ganz durch, am einfachsten wirds sein, wenn du einfach das script postest, dann geht die diagnose auch um einiges einfacher. Aber was ich mir vorstellen könnte ist, dass das script nicht im interactive modus ausgeführt wird und das ganze zeug vonwegen passwortabfrage einfach deswegen nicht geht.

ok, ich glaub, ich hab jetzt alle verwirrt, denn mit loop devices hat das ganze lediglich soviel zu tun, als dass ich diesen später mittels mount --bind einen weiteren mountpoint zuweise.

am besten, ich schildere nochmal mein Problem:

es beschränkt sich darauf, dass ich die Rechte von directorys, welche über mount --bind gemountet werden ändern mag.
Gebe ich chmod -R ugo in der console ein werden die Rechte übernommen
wird der Befehl in ein file geschrieben ändert sich nichts.
Warum ist dies so, wie kann ich das Problem beheben?

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
und wenn du die befehle 1:1 in die shell eingibst gehen sie? Genauso? Wenn du dich vertippt hast wär das blöd. Du kannst auch probieren das script statt auszuführen zu sourcen. "source file" dann werden die befehle in der aktuellen shell ausgeführt. Ich tipp aber nachwievor auf einen tippfehler oä.

Oder hast du das ding überhaupt rw gemountet? Hast dus mit noexec gemountet? Was spuckt mount aus, wenn dus gemountet hast?

Und ja das script wäre immer noch interessant
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz