web-dev-qa-db-fra.com

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

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 en sorte que "personne" ne soit le propriétaire, et le groupe "aucun groupe" a lu et écrit, avec tout le monde en lecture seule.

enter image description here

Qu'est-ce que je fais mal?

30
Kendor

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
49
Kendor

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

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 contrôle total 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é.

6
maharvey67

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-X fermer, Y pour enregistrer et entrer pour sceller l'affaire.

Maintenant redémarrez par:

Sudo reboot

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

5
AndyShap

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 que je puisse déplacer et supprimer des fichiers.

1
Andrew Cleveland