Mount cifs Network Drive: tulis izin dan chown


99

Saya memiliki akses ke drive jaringan cifs. Ketika saya memasangnya di bawah mesin OSX saya, saya bisa membaca dan menulis dari dan ke sana.

Saat saya memasang drive di ubuntu, menggunakan:

sudo mount -t cifs -o username=${USER},password=${PASSWORD} //server-address/folder /mount/path/on/ubuntu

Saya tidak dapat menulis ke drive jaringan, tetapi saya dapat membacanya. Saya telah memeriksa izin dan pemilik folder mount, mereka terlihat seperti:

4.0K drwxr-xr-x  4 root root    0 Nov 12  2010 Mounted_folder

Saya tidak dapat mengubah pemilik, karena saya mendapatkan kesalahan:

chown: changing ownership of `/Volumes/Mounted_folder': Not a directory

Ketika saya turun lebih dalam ke drive jaringan, dan mengubah kepemilikan di sana, saya mendapatkan kesalahan bahwa saya tidak memiliki izin untuk mengubah pemilik folder.

Apa yang harus saya lakukan untuk mengaktifkan izin menulis?


Apakah sistem file tercantum di / etc / fstab? Jika demikian, opsi apa yang dimiliki entri?
Jenny D

3
Anda juga dapat menggunakan nopermopsi mount yang dinyatakan serupa dalam jawaban saya untuk pertanyaan ini: unix.stackexchange.com/a/375523/16287 . Ini akan memberi semua pengguna akses baca dan tulis ke mount CIFS.
Daniel

Jawaban:


137

Anda memasang share CIFS sebagai root (karena Anda menggunakan sudo), jadi Anda tidak dapat menulis sebagai pengguna normal. Jika Distribusi Linux dan kernelnya cukup baru sehingga Anda dapat me-mount berbagi jaringan sebagai pengguna normal (tetapi di bawah folder yang dimiliki pengguna), Anda akan memiliki kredensial yang tepat untuk menulis file (misalnya me-mount folder bersama di suatu tempat di bawah Anda direktori home, seperti misalnya $HOME/netshare/. Jelas, Anda harus membuat folder sebelum memasangnya).

Alternatifnya adalah menentukan ID pengguna dan grup yang harus digunakan oleh share jaringan yang dipasang, ini akan memungkinkan pengguna tertentu dan kelompok potensial untuk menulis ke share. Tambahkan opsi berikut ke mount Anda : uid=<user>,gid=<group>dan ganti masing <user>- <group>masing dengan pengguna Anda sendiri dan grup default, yang dapat Anda temukan secara otomatis dengan idperintah.

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g) //server-address/folder /mount/path/on/ubuntu

Jika server mengirim informasi kepemilikan, Anda mungkin perlu menambahkan forceuiddan forcegidopsi.

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu

itu berhasil untuk saya! Tetapi kita harus menambahkan bahwa jika folder bersama di PC dengan domain login Anda harus menambahkan opsi domain. Sesuatu seperti ini: sudo mount -t cifs -o username=${USER},password=${PASSWORD},dom=${DOMAIN}, uid=<user>,gid=<group> //server-address/folder /mount/path/on/ubuntuFaktanya domain bisa masuk dalam opsi "nama pengguna", tetapi ingat bahwa Anda harus menggunakan /alih-alih `, like nama pengguna = DOMAIN / user.name`.
João Portela

Ya itu benar. :-) Seseorang mungkin perlu menentukan domain atau kelompok kerja (untuk versi Windows yang lebih lama) melalui opsi "domain =" atau melalui nama pengguna, itu poin yang bagus. Dan kadang-kadang bahkan perlu untuk menentukan skema enkripsi atau versi CIFS yang akan digunakan. Tetapi semua ini bukan bagian dari pertanyaan ini, jadi saya mengesampingkannya. :-)
Huygens

2
Inilah yang saya butuhkan. Saya memiliki entri di / etc / fstab untuk memasang drive jaringan secara otomatis saat startup. Saya tidak bisa menulis ke mount jadi saya menambahkan, uid = <myUserID> untuk baris yang terlihat seperti ini://192.168.1.7/public /colmustang cifs username=<uname>,password=<upassword>,uid=<myUserID> 0 0
James

5
@ 71GA usernameadalah login jarak jauh yang digunakan untuk otentikasi. Ini uidadalah ID pengguna lokal yang ingin Anda nap semua file / folder. Jadi nama pengguna dipisahkan dari uid, nama pengguna adalah login pengguna jarak jauh sedangkan uid adalah id pengguna lokal Anda. Perhatikan bahwa ini bisa menjadi hal yang sama jika server Anda adalah Samba dan Anda menggunakan LDAP atau akun terpusat lainnya pada klien dan server :-).
Huygens

1
@Tak pertanyaan bagus. Lihat jawaban yang diedit.
Gilles

20

Saya menguji perintah berikut dengan sukses:

sudo mount -t cifs -o username=[username],password=[password],uid=1001,gid=1001 //172.16.148.2/dfsgob01 /home/ususario/Documentos/benz-win

20
Gunakan "id -u <user>" dan "id -g <user> untuk mendapatkan masing-masing uid dan gid.
nvd

3
Perhatikan bahwa Anda dapat menggunakan nama pengguna secara langsung seperti yang didokumentasikan diman mount.cifs
jstricker

2
Untuk menghindari penulisan kata sandi di samping perintah, cukup hapus opsi kata sandi selama panggilan - prompt akan memintanya sehingga dapat diketik tanpa terlihat.
conceptdeluxe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.