Comment monter un partage CIFS via FSTAB et donner un RW complet à un invité

33

Je veux créer un dossier public avec un accès complet à RW. Le problème avec ma configuration est que les utilisateurs Windows n'ont pas de problèmes d'invités (ils peuvent RW et Delete), mon client Ubuntu ne peut pas faire la même chose. Nous pouvons seulement écrire et lire, mais pas créer ou supprimer.

Voici le smb.conf de mon serveur:

[global]
    workgroup = WORKGROUP
    netbios name = FILESERVER
    server string = TurnKey FileServer

    os level = 20
    security = user
    map to guest = Bad Password
    passdb backend = tdbsam
    null passwords = yes

    admin users = root
    encrypt passwords = true
    obey pam restrictions = yes
    pam password change = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

    add user script = /usr/sbin/useradd -m '%u' -g users -G users
    delete user script = /usr/sbin/userdel -r '%u'
    add group script = /usr/sbin/groupadd '%g'
    delete group script = /usr/sbin/groupdel '%g'
    add user to group script = /usr/sbin/usermod -G '%g' '%u'

    guest account = nobody

    syslog = 0
    log file = /var/log/samba/samba.log
    max log size = 1000

    wins support = yes
    dns proxy = no

    socket options = TCP_NODELAY
    panic action = /usr/share/samba/panic-action %d


[homes]
    comment = Home Directory
    browseable = no
    read only = no
    valid users = %S

[storage]
    create mask = 0777
    directory mask = 0777
    browseable = yes
    comment = Public Share
    writeable = yes
    public = yes
    path = /srv/storage

L'entrée FSTAB suivante ne donne pas un accès total en lecture / écriture au partage.

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0

Cela ne fonctionne pas non plus

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

L'utilisation de l'emplacement suivant dans Nemo / Nautilus sans le partage en cours de montage fonctionne:

smb://192.168.0.5/storage/

Informaitons supplémentaires. Je viens de remarquer que si je copie un fichier sur le partage après le montage, mon client Ubuntu fait immédiatement de "personne" le propriétaire et le groupe "aucun groupe" a lu et écrit, avec tout le monde en lecture seule.

entrez la description de l'image ici

Qu'est-ce que je fais mal?

Kendor
la source
Alors, laissez-moi voir: vous pouvez monter le partage à partir de votre client Ubuntu (en tant que root, je suppose, compte tenu de vos entrées fstab), vous pouvez ensuite lire et écrire, mais vous ne pouvez pas supprimer ou créer? Comment se fait-il que vous puissiez copier (pour copier, créer un fichier est un must)?
Janvier

Réponses:

56

Il s'avère que j'ai besoin d'ajouter un UID local (client) à la ligne de montage dans FSTAB pour que cela fonctionne. Je suis arrivé à ceci par la force brute pure:

//192.168.0.5/storage /media/myname/TK-Public/ cifs guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
Kendor
la source
3
Un problème commun, et pas de réponse du tout ... Incroyable!
dan3
Ohhh, juste ce dont j'avais besoin ... merci beaucoup - chercher ça pendant des heures!
pkdkk
1
Un autre problème: assurez cifs-utils- vous qu’il est installé (pour moi, il n’a pas été installé sous 16.04 après l’installation du paquetage "principal" de samba). Si vous ne l'avez pas installé, vous obtiendrez une erreur «mauvaise option / mauvaise option».
bshea
Après l'installation, j'ai utilisé des permanentes dans une autre réponse et ajouté: //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 jusque- /etc/fstabsudo mount -a. Semble monter / écrire bien maintenant.
bshea
Pour moi, une version légèrement plus simple (sans uid) fonctionnait pour monter correctement R / W pour tous les utilisateurs d'un partage public à partir d'une autre machine Linux://server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
woohoo
6

CIFS n’ayant généralement aucun concept d’utilisateur et de groupe, le montage d’un partage cifs affichera par défaut utilisateur et groupe comme «personne»:

drwxdrwxdrwx. 3 nobody nobody 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 nobody nobody 0 Sep 29 09:00 ..

Puisque vous n'êtes pas "personne", Linux ne vous laissera pas écrire sur quelque chose qui n'a pas l'autorisation 0777 à moins que vous n'utilisiez sudo. Pour résoudre ce problème, ajoutez uid = mylogin, gid = mygroup à fstab et le partage apparaîtra comme s'il s'agissait de votre propre répertoire:

drwxdrwxdrwx. 3 mylogin mygroup 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 mylogin mygroup 0 Sep 29 09:00 ..

Vous avez maintenant le plein contrôle sans avoir besoin de sudo.

Cela ne change rien en fait sur le serveur, puisque ce dernier ne fait rien. C'est dire à Linux de prétendre que vous en êtes le propriétaire et de vous donner un accès illimité.

maharvey67
la source
1
Oui si vous utilisez guest / personne / etc. Assurez-vous que les dossiers parents ont une lecture / écriture / exécution complète. J'utilise cette perm sur certains partages réseau internes - ce n'est donc pas un problème de sécurité. Vote voté
bshea
Mais contrairement à votre post, j'ai pu utiliser l'ID utilisateur "personne" (pour le montage) lorsque les options de montage étaient correctes. Voir mes autres commentaires ..
bshea
C'est une solution bien meilleure que la définition d'autorisations étendues pour tous les utilisateurs des fichiers montés. Et il fonctionne.
j08lue
5

Tu es presque là. Ouvrez FSTAB en utilisant:

sudo nano /etc/fstab

Dans la dernière ligne (ou sur la dernière ligne), placez:

//192.168.0.5/storage /media/myname/TK-Public/ cifs username=YOURUSERNAME,password=YOURPASSWORD,iocharset=utf8,file_mode=0777,dir_mode=0777

*** (c'est tout une longue ligne)

Ctrl- Xfermer, Yenregistrer et entrer pour sceller l'accord.

Maintenant redémarrez par:

sudo reboot

Et vous devriez avoir le plein contrôle du partage réseau sur votre appareil Linux!

AndyShap
la source
1
Vous voudrez peut-être remplacer ce mot de passe par un exemple de mot de passe.
Spotlight
9
Il n'est pas nécessaire de redémarrer pour monter les fstabentrées. Juste mount <DEVICE>ou mount <MOUNTPOINT>ou même mount -afaire le travail très bien.
David Foerster
1

J'ai eu ce problème et c'est parce que l'utilisateur du partage ne le possédait pas. Je l'ai corrigé avec "sudo chown {username}: {username} / {share} / {path}" après avoir pu déplacer et supprimer des fichiers.

Andrew Cleveland
la source