Bagaimana cara me-mount share CIFS melalui FSTAB dan memberikan RW penuh kepada Tamu

33

Saya ingin membuat folder Publik yang memiliki akses RW penuh. Masalah dengan konfigurasi saya adalah bahwa pengguna Windows tidak memiliki masalah sebagai tamu (mereka dapat RW dan Hapus), klien Ubuntu saya tidak dapat melakukan hal yang sama. Kami hanya bisa menulis dan membaca, tetapi tidak membuat atau menghapus.

Ini adalah smb.conf saya dari server saya:

[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

Entri FSTAB berikut tidak menghasilkan akses R / W penuh ke share.

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

Ini juga tidak berhasil

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

Menggunakan lokasi berikut di Nemo / Nautilus tanpa Berbagi yang dipasang tidak berfungsi:

smb://192.168.0.5/storage/

Informasi tambahan. Saya hanya memperhatikan bahwa jika saya menyalin file ke share setelah pemasangan, klien Ubuntu saya segera menjadikan "tidak ada" menjadi pemilik, dan grup "tidak ada grup" telah membaca dan menulis, dan semua orang hanya sebagai baca-saja.

masukkan deskripsi gambar di sini

Apa yang saya lakukan salah?

Kendor
sumber
Jadi, biarkan saya melihat: Anda dapat me-mount share dari klien Ubuntu Anda (sebagai root saya anggap diberikan entri fstab Anda), Anda kemudian dapat membaca dan menulis, tetapi Anda tidak dapat menghapus atau membuat? Bagaimana bisa Anda menyalin (untuk menyalin, membuat file adalah suatu keharusan)?
Januari

Jawaban:

56

Ternyata saya perlu menambahkan UID (klien) lokal ke jalur mount di FSTAB untuk membuatnya bekerja. Saya tiba di ini melalui kekuatan kasar:

//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
sumber
3
Masalah umum, dan tidak ada jawaban sama sekali ... Luar biasa!
dan3
Ohhh, apa yang saya butuhkan ... terima kasih banyak - mencari ini selama berjam-jam!
pkdkk
1
Gotcha lain: Pastikan cifs-utilssudah diinstal (bagi saya itu tidak diinstal di bawah 16,04 setelah menginstal samba pkg "utama"). Jika Anda belum menginstalnya, Anda akan mendapatkan kesalahan 'bad fs / bad option'.
bshea
Setelah saya menginstal yang saya gunakan perms dalam jawaban lain dan menambahkan: //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 untuk /etc/fstabkemudian sudo mount -a. Tampaknya untuk me-mount / menulis baik-baik saja sekarang.
bshea
Bagi saya, versi yang sedikit lebih sederhana (tanpa uid) berfungsi untuk me-mount dengan benar R / W untuk semua pengguna bagian publik dari mesin linux lain://server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
woohoo
6

CIFS pada umumnya tidak memiliki konsep pengguna dan grup, jadi pemasangan share cif akan secara default menampilkan pengguna dan grup sebagai 'tidak ada':

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

Karena Anda bukan 'bukan siapa-siapa', Linux tidak akan membiarkan Anda menulis apa pun yang tidak memiliki izin 0777 kecuali jika Anda menggunakan sudo. Untuk memperbaikinya, tambahkan uid = mylogin, gid = mygroup ke fstab dan itu akan membuat share tampak seolah-olah itu adalah direktori Anda sendiri:

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

Anda sekarang memiliki kontrol penuh tanpa perlu sudo.

Ini tidak benar-benar mengubah apa pun di server, karena server tidak menegakkan apa pun. Ia memberi tahu Linux untuk berpura-pura bahwa Anda adalah pemilik dan memberi Anda akses tidak terbatas.

maharvey67
sumber
1
Ya jika menggunakan tamu / tidak ada / dll. Pastikan folder induk memiliki baca / tulis / eksekusi penuh. Saya menggunakan perm ini pada beberapa jaringan internal - jadi ini bukan masalah keamanan. Diputuskan
bshea
Tetapi bertentangan dengan posting Anda - saya bisa menggunakan 'tidak ada' userid (untuk pemasangan) ketika memiliki opsi yang benar untuk pemasangan. Lihat komentar saya yang lain ..
bshea
Ini adalah solusi yang jauh lebih baik daripada mengatur izin yang luas untuk semua orang di file yang dipasang. Dan itu berhasil.
j08lue
5

Anda hampir sampai. Buka FSTAB dengan menggunakan:

sudo nano /etc/fstab

Di baris terakhir (atau di baris terakhir) tempat:

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

*** (ini semua satu garis panjang)

Ctrl- Xuntuk menutup, Yuntuk menyimpan dan Enter untuk menyegel kesepakatan.

Sekarang reboot dengan:

sudo reboot

Dan Anda harus memiliki kontrol penuh atas pembagian jaringan di perangkat Linux Anda!

AndyShap
sumber
1
Anda mungkin ingin mengganti kata sandi itu dengan contoh kata sandi.
Spotlight
9
Seseorang tidak perlu reboot untuk me-mount fstabentri. Hanya mount <DEVICE>atau mount <MOUNTPOINT>atau bahkan mount -amelakukan pekerjaan dengan baik.
David Foerster
1

Saya punya masalah ini dan itu karena pengguna share tidak memilikinya. Saya memperbaikinya dengan "sudo chown {username}: {username} / {share} / {path}" setelah itu saya bisa memindahkan dan menghapus file.

Andrew Cleveland
sumber