chmod für SMB mount

matzh

Mitglied
Thread Starter
Dabei seit
03.07.2005
Beiträge
22
Reaktionspunkte
0
Ich nutze ein WD mybook world als externes Netzwerklaufwerk unter Mac OSX 10.5.5, Intel
Wenn ich mit einem Share verbinde (normal, über GUI oder mit CMD-K), erscheint er z.B. unter /Volumes/MEDIEN (im Terminal) und hat dort die Permissions "drwx------"
Owner und GID ist mein normaler Login, also nicht root:admin oder so.

Ich brauche nun aber drwxr-xr-x, da ich die Dateien auf dem NAS Server über den Apache-Webserver, der auf dem Mac läuft, bereitstellen oder zumindest browsen möchte.

Ein "chmod 755 /Volumes/MEDIEN" bewirkt nun aber überhaupt nichts (egal ob sudo-ed oder nicht). :confused:
Auch keine Fehlermeldung. Die Permissions bleiben einfach so, wie sie sind.

Ich habe ssh Zugriff auf das WD mybook world. Im Webinterface habe ich die Permissions für den Share auch korrekt gesetzt und im ssh sehe ich sie als "drwsr-sr-x" (habe sie mal zwischendurch auf drwxr-xr-x geändert, nützt aber auch nichts).

Irgendwelche Ideen? Vielleicht ein ACL Problem? Einstellungen im Automount-Framework?
 
Hier ist die smb.conf meines Servers (WD Mybook World)
Code:
[global]
server string=Speicher
workgroup=WORKGROUP
interfaces=192.xxx.xxx.xxx/24 127.0.0.1/8 
security=user
smb passwd file=/var/private/smbpasswd
private dir=/var/private
guest account=www-data
dns proxy=No
lock directory=/var/locks
pid directory=/var/locks
use sendfile=Yes
map to guest = Bad User
create mask = 755
map hidden = Yes
veto files = /shares/internal/.senvidData/ /shares/internal/lost+found/
max log size = 1

[dummy-2]
include=/var/oxsemi/shares.inc

[dummy-3]
include=/var/oxsemi/senvid.inc
Der shares.inc:
Code:
[PUBLIC]
path=/shares/internal/PUBLIC
force user=www-data
valid users=MHOELLING www-data
guest ok=Yes
write list=MHOELLING
read list=www-data

[BACKUP]
path=/shares/internal/BACKUP
force user=www-data
valid users=MHOELLING www-data
write list=MHOELLING

[MEDIEN]
path=/shares/internal/MEDIEN
force user=www-data
valid users=MHOELLING www-data
write list=MHOELLING
guest ok=Yes
read list=www-data
MHOELLING ist der Accountname, mit dem ich mich mit dem Server verbinde. (Er existiert nur auf dem Server, nicht auf dem Client)
Public und Medien sind für Lesezugriff durch "alle" konfiguriert, backup nicht. Von daher scheint es zumindest für meinen laienhaften Blick sinnvoll ;)
www-data erscheint auf dem Server als Owner der Shares.

ls -la /shares/internal:
drwsr-sr-x 7 www-data www-data 4096 Oct 11 17:28 .
drwsr-sr-x 4 root root 4096 Jan 18 2008 ..
drwsrwsr-x 4 root root 4096 Oct 22 18:44 .senvidData
drws--S--- 3 www-data www-data 4096 Oct 14 21:23 BACKUP
drwsr-sr-x 4 www-data www-data 4096 Oct 15 22:13 MEDIEN
drwsrwsrwx 2 www-data www-data 4096 Oct 13 19:09 PUBLIC
drwsrwsr-x 2 www-data www-data 16384 Mar 13 2002 lost+found

ls -la /Volumes (auf dem Client)
drwxrwxrwt@ 5 root admin 170 25 Okt 18:10 .
drwxrwxr-t 39 root admin 1394 16 Sep 20:54 ..
drwx------ 1 hoellinm hoellinm 16384 16 Okt 00:13 MEDIEN
drwxrwxrwx 1 hoellinm hoellinm 16384 22 Okt 21:00 MS WINDOWS
lrwxr-xr-x 1 root admin 1 22 Okt 21:00 Macintosh HD -> /

(Mit dem PUBLIC kann ich mich übrigens auch nicht verbinden, auch wenn hier noch go+w gesetzt ist).

Falls es etwas zur Sache tut: hier noch die smb.conf auf dem Client (Mac OS X 10.5.5., Intel):
Code:
[global]
    debug pid = yes
    log level = 1
    server string = Mac OS X

    printcap name = cups
    printing = cups

    encrypt passwords = yes
    use spnego = yes

    passdb backend = odsam

    idmap domains = default
    idmap config default: default = yes
    idmap config default: backend = odsam
    idmap alloc backend = odsam
    idmap negative cache time = 5

    map to guest = Bad User
    guest account = nobody

    unix charset = UTF-8-MAC
   display charset = UTF-8-MAC
    dos charset = 437

    vfs objects = darwinacl,darwin_streams

    ; Don't become a master browser unless absolutely necessary.
    os level = 2
    domain master = no

    ; For performance reasons, set the transmit buffer size
    ; to the maximum and enable sendfile support.
    max xmit = 131072
    use sendfile = yes

    ; The darwin_streams module gives us named streams support.
    stream support = yes
    ea support = yes

    ; Enable locking coherency with AFP.
    darwin_streams:brlm = yes

    ; Core files are invariably disabled system-wide, but attempting to
    ; dump core will trigger a crash report, so we still want to try.
    enable core files = yes

    ; Configure usershares for use by the synchronize-shares tool.
    usershare max shares = 1000
    usershare path = /var/samba/shares
    usershare owner only = no
    usershare allow guests = yes
    usershare allow full config = yes

    ; Filter inaccessible shares from the browse list.
    com.apple:filter shares by access = yes

    ; Check in with PAM to enforce SACL access policy.
    obey pam restrictions = yes

    ; Make sure that we resolve unqualified names as NetBIOS before DNS.
    name resolve order = lmhosts wins bcast host

    ; Pull in system-wide preference settings. These are managed by
    ; synchronize-preferences tool.
    include = /var/db/smb.conf
Danach kommen noch die [Printer] und im /var/db/smb.conf scheint die Definition für die Nutzung des Macs als Server zu stehen.

Kann damit jemand was anfangen und mir weiterhelfen? Wäre Klasse.
 
Noch ein Nachtrag:
ein manueller mount mit
Code:
mount_smbfs -d 755 -f 644 //user:passwort@share
funktioniert und die entsprechenden POSIX-Rechte erscheinen bei ls -l
Jedoch scheinen diese Rechte ignoriert zu werden.
Wenn ich den mount_smbfs als root ausführe, kann ich mit meinem normalen user das Verzeichnis nicht durchsuchen, sondern ebenfalls nur als root.
Natürlich kann ich alles machen, wenn ich den Share als mein normaler User statt mit sudo verbinde, jedoch müssen die Rechte als "others" funktionieren, sonst klappt das mit dem Webserver nicht.
 
Gelöst (bzw. Problem umgangen)

Ich bin zum Schluss gekommen, dass es wohl nicht sinnvoll ist, wenn ein User einen SMB Share verbindet, und ein zweiter User darauf zugreift, zumindest wenn Client und Host unterschiedliche Benutzerbasen haben.
Meine Webapplikation erstellt nun ein Verzeichnis (an einem Ort, wo sie es darf) und mounted dann den Share mit
/sbin/mount_smbfs -N //speicher.local/MEDIEN /pfad/zum/erstellten/verzeichnis/

So funktioniert's

Danke auf jeden Fall für die Hinweise.
 
Zurück
Oben Unten