PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriffsrechte für USB-Festplatte



bony
16.03.06, 22:23
Hallo,

Fogendes:
SuSE 10.0
Festplatte an USB mit NTFS-Dateisystem
fstab-Eintrag:
/dev/sda1 /media/Medien ntfs noauto,ro,users,umask=0002,nls=utf8 0 0

Problem:
Der erste User, der auf die Festplatte zugreift, "reißt" die Zugriffsrechte an sich. Andere User können dann nicht mehr auf die Platte zugreifen.

Was muss ich tun, damit alle User Leserechte bekommen?

Hintergrund:
Mit --rbind binde ich zwei Verzeichnisse von der externen Festplatte ins FTP-Verzeichnis.
FTP-Zugriff ist dann nicht möglich, weil die Rechte fehlen.
Wenn ich dann die USB-Festplatte umounte, dann wieder neu mounte und wenn dann der erste Zugriff über FTP erfolgt, ist alles in Butter - wenn ich Glück habe.
Das muss aber doch irgendwie auch einfacher gehen. :rolleyes:

Christoph

Tomek
16.03.06, 22:25
man umask
Und bitte Forumsuche benutzen.

kreol
16.03.06, 22:33
Sieht eigentlich nicht so aus, als läge es an den fstab-Einstellungen. Du kannst ja noch mit uid und gid experimentieren, siehe 'man mount'. Aber mit umask 0002 sollten eigentlich alle Benutzer Leserecht haben. Was sagt denn ein 'ls -l' auf der Platte?


Kreol

MiGo
16.03.06, 23:00
Wie genau mountest du es (Befehl)?

bony
16.03.06, 23:14
Danke für die fixen Antworten. Suche habe ich natürlich schon genutzt, bin damit aber leider nicht weitergekommen.

ls -l direkt nach Neustart:

dr-x------ 1 root root 4096 Feb 27 15:32 .
drwxr-xr-x 6 root root 152 Mar 16 23:53 ..
dr-x------ 1 root root 0 Dec 22 19:21 DVD
dr-x------ 1 root root 0 Feb 1 2005 RECYCLER
dr-x------ 1 root root 4096 Dec 30 2004 System Volume Information
dr-x------ 1 root root 0 Jan 30 2005 WUTemp
-r-------- 1 root root 0 Apr 29 2005 _NIM4711.TMP
dr-x------ 1 root root 0 Nov 2 16:33 covers
dr-x------ 1 root root 4096 Mar 16 20:02 mp3
dr-x------ 1 root root 0 Feb 25 12:47 upload
dr-x------ 1 root root 8192 Dec 28 18:19 vcd

ls -l nach umount /dev/sda1 und dann mount /dev/sda1

dr-xr-xr-x 1 root ftpgroup 4096 Feb 27 15:32 .
drwxr-xr-x 6 root root 152 Mar 16 23:53 ..
dr-xr-xr-x 1 root ftpgroup 0 Dec 22 19:21 DVD
dr-xr-xr-x 1 root ftpgroup 0 Feb 1 2005 RECYCLER
dr-xr-xr-x 1 root ftpgroup 4096 Dec 30 2004 System Volume Information
dr-xr-xr-x 1 root ftpgroup 0 Jan 30 2005 WUTemp
-r-xr-xr-x 1 root ftpgroup 0 Apr 29 2005 _NIM4711.TMP
dr-xr-xr-x 1 root ftpgroup 0 Nov 2 16:33 covers
dr-xr-xr-x 1 root ftpgroup 4096 Mar 16 20:02 mp3
dr-xr-xr-x 1 root ftpgroup 0 Feb 25 12:47 upload
dr-xr-xr-x 1 root ftpgroup 8192 Dec 28 18:19 vcd

Damit ginge es also. Allerdings wundere ich mich über die Verzeichnisrechte 555. Müste das mit umask=0002 nicht etwas anders aussehen?


Wie genau mountest du es (Befehl)?
Nach Systemstart würde ich eigentlich gerne nur
mount --rbind /media/Medien/mp3 /home/ftpusers/mp3
mount --rbind /media/Medien/vcd /home/ftpusers/vcd
machen.

Momentan kommt eben noch dazu
umount /dev/sda1
mount /dev/sda1

kreol
16.03.06, 23:22
Damit ginge es also. Allerdings wundere ich mich über die Verzeichnisrechte 555. Müste das mit umask=0002 nicht etwas anders aussehen?Theoretisch ja (775), aber du mountest die ntfs-Partition durchaus folgerichtig Read-only. Also kann das write-flag nicht gesetzt sein.


Kreol

bony
16.03.06, 23:37
Ah ja, klaro.

Ich habe jetzt auch mal mit uid und gid "experimentiert". Direkt nach dem Systemstart gehören die Verzeichnisse "root" mit den Rechten 500. Wenn ich dann /dev/sda1 umounte und wieder mounte, sind Eigentümer und Rechte wie in der fstab festgelegt. Bekommt da beim Systemstart, bzw. ersten einstöpseln, irgend etwas anderes den Vorzug?

kreol
16.03.06, 23:42
Könnte was mit subfs, udev, hotplug etc. zu tun haben, je nachdem. Das ist aber nicht gerade mein Fachgebiet... Vllt. kann jemand anders was mit Deiner vollständigen fstab anfangen. Zumindest könnte ich sie mal mit meiner abgleichen...
Wird die Platte direkt nach dem Einstecken eingebunden? Das wäre schon seltsam, wg. 'noauto'...


Kreol

bony
16.03.06, 23:53
Ja, direkt nach dem Einstöpseln popt die SuSE-Hardware-Erkennung auf.


/dev/hda6 / reiserfs acl,user_xattr 1 1
/dev/hda5 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
/dev/cdrecorder /media/cdrecorder subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec,iocha rset=utf8 0 0
/dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec,iocha rset=utf8 0 0
/dev/fd0 /media/floppy subfs noauto,fs=floppyfss,procuid,nodev,nosuid,sync 0 0
/dev/hda1 /windows/C vfat defaults 0 0
/dev/hda2 /windows/D vfat defaults 0 0
/dev/sda1 /media/Medien ntfs noauto,ro,users,uid=1001,gid=1000,umask=0002,nls=u tf8 0 0

kreol
17.03.06, 00:16
Wie gesagt, ist nicht so mein Thema. Und meine fstab sieht praktisch identisch aus...
Habe aber mit 'mount' mal nachgesehen, wie mein SuSE 10 den USB-Stick einbindet und bin auf das Stichwort subfs gekommen. Mit google findet man z.B. dies hier (http://www.linux-web.de/thread.php?threadid=10595):
Die folgende Datei wird befummelt:
/etc/hotplug/hotplug.subfs.functions

und zwar steht ab ca. Zeile 228 (SuSE 9.3) was zum Thema subfs
if [ "$HOTPLUG_MOUNT_TYPE" = "subfs" ]; then

zwei Zeilen später dann
fsoptions=sync,noexec$iocharsetoption # XXX why noexec?

wenn diese Zeile um "umask=0000" ergänzt wird, in etwa so:
fsoptions=sync,umask=0000,noexec$iocharsetoption # XXX why noexec?

und ein
# /etc/init.d/boot.hotplug restart

gemacht wurde, sollte nach erneutem anstöpseln der Platte jeder alles dürfen.Vllt. hilft das ja. Oder google mal selbst nach 'subfs' bzw. schau vorher mit mount, wie Deine HD eingebunden wird.


Kreol

bony
17.03.06, 13:07
Danke. Das Stichwort ist wohl "udev". Werde mich nun halt mal schlau machen, wie man udev.rules schreibt.

kreol
17.03.06, 14:24
Habe mich selbst noch nicht damit beschäftigt, aber schau mal hier (http://www.reactivated.net/writing_udev_rules.html).


Kreol

bony
17.03.06, 19:04
Das mit der udev ist mir irgendwie zu hoch, das will nicht.
Folgend udevinfo:

device '/sys/block/sda/sda1' has major:minor 8:1
looking at class device '/sys/block/sda/sda1':
KERNEL=="sda1"
SUBSYSTEM=="block"
SYSFS{dev}=="8:1"
SYSFS{size}=="234484677"
SYSFS{start}=="63"
SYSFS{stat}==" 7855 7855 0 0"

follow the "device"-link to the physical device:
looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0':
BUS=="scsi"
ID=="0:0:0:0"
DRIVER=="sd"
SYSFS{device_blocked}=="0"
SYSFS{iocounterbits}=="32"
SYSFS{iodone_cnt}=="0x3db"
SYSFS{ioerr_cnt}=="0x0"
SYSFS{iorequest_cnt}=="0x3db"
SYSFS{max_sectors}=="64"
SYSFS{model}=="SV1203N "
SYSFS{queue_depth}=="1"
SYSFS{queue_type}=="none"
SYSFS{rev}=="0811"
SYSFS{scsi_level}=="3"
SYSFS{state}=="running"
SYSFS{timeout}=="30"
SYSFS{type}=="0"
SYSFS{vendor}=="SAMSUNG "

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1/1-1/1-1:1.0/host0/target0:0:0':
BUS==""
ID=="target0:0:0"
DRIVER=="unknown"

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1/1-1/1-1:1.0/host0':
BUS==""
ID=="host0"
DRIVER=="unknown"

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1/1-1/1-1:1.0':
BUS=="usb"
ID=="1-1:1.0"
DRIVER=="usb-storage"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceClass}=="08"
SYSFS{bInterfaceNumber}=="00"
SYSFS{bInterfaceProtocol}=="50"
SYSFS{bInterfaceSubClass}=="06"
SYSFS{bNumEndpoints}=="02"
SYSFS{modalias}=="usb:v05E3p0702d0002dc00dsc00dp00ic08isc06ip50"

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1/1-1':
BUS=="usb"
ID=="1-1"
DRIVER=="usb"
SYSFS{bConfigurationValue}=="1"
SYSFS{bDeviceClass}=="00"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bMaxPacketSize0}=="64"
SYSFS{bMaxPower}==" 96mA"
SYSFS{bNumConfigurations}=="1"
SYSFS{bNumInterfaces}==" 1"
SYSFS{bcdDevice}=="0002"
SYSFS{bmAttributes}=="c0"
SYSFS{configuration}==""
SYSFS{devnum}=="2"
SYSFS{idProduct}=="0702"
SYSFS{idVendor}=="05e3"
SYSFS{maxchild}=="0"
SYSFS{product}=="USB TO IDE"
SYSFS{speed}=="12"
SYSFS{version}==" 2.00"

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2/usb1':
BUS=="usb"
ID=="usb1"
DRIVER=="usb"
SYSFS{bConfigurationValue}=="1"
SYSFS{bDeviceClass}=="09"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bMaxPacketSize0}=="8"
SYSFS{bMaxPower}==" 0mA"
SYSFS{bNumConfigurations}=="1"
SYSFS{bNumInterfaces}==" 1"
SYSFS{bcdDevice}=="0206"
SYSFS{bmAttributes}=="e0"
SYSFS{configuration}==""
SYSFS{devnum}=="1"
SYSFS{idProduct}=="0000"
SYSFS{idVendor}=="0000"
SYSFS{manufacturer}=="Linux 2.6.13-15.8-default uhci_hcd"
SYSFS{maxchild}=="2"
SYSFS{product}=="UHCI Host Controller"
SYSFS{serial}=="0000:00:04.2"
SYSFS{speed}=="12"
SYSFS{version}==" 1.10"

looking at the device chain at '/sys/devices/pci0000:00/0000:00:04.2':
BUS=="pci"
ID=="0000:00:04.2"
DRIVER=="uhci_hcd"
SYSFS{class}=="0x0c0300"
SYSFS{device}=="0x3038"
SYSFS{irq}=="9"
SYSFS{local_cpus}=="1"
SYSFS{modalias}=="pci:v00001106d00003038sv00000925sd00001234bc0Csc03 i00"
SYSFS{subsystem_device}=="0x1234"
SYSFS{subsystem_vendor}=="0x0925"
SYSFS{vendor}=="0x1106"

looking at the device chain at '/sys/devices/pci0000:00':
BUS==""
ID=="pci0000:00"
DRIVER=="unknown"


Dann habe ich es einfach mal mit einer eigenen rules-Datei, 10-local.rules, mit einer Zeile versucht:

BUS=="SCSI", SYSFS{model}=="SV1203N*", NAME="%k", SYMLINK="mediast"
Dann Neustart bzw. udevstart. Da tut sich aber gar nichts, d.h. ich finde den SYMLINK nicht und es ist alles wie zuvor.
Kann mir da jemand weiterhelfen, wie das aussehen muss und wie dann auch die fstab aussehen muss, bzw. wie ich dafür sorge, dass das wie gewünscht gemountet wird?

Und noch eine weiter frage zur fstab. Kann ich darin auch einen --bind bzw. --rbind Befehl ausführen? Also

mount --rbind /media/Medien/mp3 /home/ftpusers/mp3
mount --rbind /media/Medien/vcd /home/ftpusers/vcd

/media/Medien/mp3 /home/ftpusers/mp3 none rbind 0 0
/media/Medien/vcd /home/ftpusers/vcd none rbind 0 0 funktioniert nicht.

MiGo
17.03.06, 19:50
Die udev-Zeile zu meines Platte sieht so aus:

BUS="usb", KERNEL="sd?1", SYSFS{idVendor}="05e3", NAME="usbhd"

(ich habe mich allerdings nicht mit einem Symlink aufgehalten, sondern gleich den Namen gewechselt ;))
udevinfo kann ich dir nicht dazuliefern, da es das ganze anscheinend für debian nicht gibt (oder ich zu doof bin, es zu finden).

Auch "bind" kann man in der fstab mitgeben, wie genau die Syntax ist, weiss ich nicht mehr (Ich habe das mit dem )/($%/"-bind-mount gelassen, als ich 10 GB vermeintliche Duplikate gelöscht hab :/)

bony
19.03.06, 13:29
Danke. Lag einfach nur daran, dass ich "scsi" groß geschrieben hatte.:rolleyes:

Leider werden beim Einstöpseln nicht die "Regeln" aus der fstab gelesen. Die Rechte mit MODE="0555" vorzugeben, funktioniert leider auch nicht.

Die richtigen Befehle für rbind in der fstab habe ich leider auch noch nicht gefunden.

MiGo
20.03.06, 08:09
Leider werden beim Einstöpseln nicht die "Regeln" aus der fstab gelesen. Die Rechte mit MODE="0555" vorzugeben, funktioniert leider auch nicht.Das ist normal ;) Die fstab wird nur bei "unvollständigen" Mountbefehlen verwendet ("mount /mnt/cdrom"); bei vollständigen ("mount /dev/hdd /mnt/cdrom") nicht. Die Rechte werden in /etc/udev/permissions.d/ festgelegt; wie genau das geht, müsste sich bei google finden.

Die richtigen Befehle für rbind in der fstab habe ich leider auch noch nicht gefunden.
/media/Medien/mp3 /home/ftpusers/mp3 none rbind 0 0
Was kommt als Fehlermeldung bei "mount /home/ftpusers/mp3"?