Saya ingin sepenuhnya menonaktifkan layanan SMBA saya dan menggantinya dengan layanan WebDav.
Semua pencarian google sejauh ini telah mengarahkan saya untuk menggunakan Apache / Webdav. Ini dekat dengan apa yang saya butuhkan tetapi sejauh yang saya baca itu membutuhkan Apache untuk memiliki akses ke file pengguna saya dan lebih buruk lagi; jika itu menciptakan file, file baru akan dimiliki oleh Apache (bukan pengguna). Perhatikan bahwa memiliki file dengan kepemilikan dan izin Unix yang benar adalah persyaratan karena beberapa pengguna memiliki akses SSH langsung.
Jadi saya cukup sederhana mencari cara untuk membuat Apache / Webdav bekerja "dengan benar" dengan multi-pengguna (yaitu mengubah pengguna unix menjadi pengguna yang masuk sebelum mencoba melayani file ) atau mencari alternatif lengkap untuk Apache / Webdav.
Sejauh ini pencarian belum menghasilkan apa-apa.
AssignUserIDExpr
akan menerima pengguna yang login. Sejak saat ituAssignUserID
sepertinya tidak muncul sebelum pengguna mengotentikasi.Jawaban:
Jika Anda memiliki nama pengguna dan / atau uid, Anda dapat melakukannya dengan nginx + lua + luarocks ljsyscall
Pada sistem debian, dikonfigurasi sebagai:
Dan nginx mengkonfigurasi cara berikut:
Ini akan menjalankan setfsuid pada setiap permintaan yang dilayani oleh pekerja nginx. Sayangnya, tampaknya Anda harus menjalankan nginx sebagai root agar ini berfungsi saat ini. Saya percaya ini mungkin untuk bekerja dengan pengguna yang berbeda asalkan proses dimulai sebagai root, turun ke pengguna yang berbeda, dengan CAP_SETUID diawetkan (lihat dokumentasi untuk
capsh
), danuser
arahan tidak ada dalam file konfigurasi nginx.Anda mungkin juga perlu mengatur ID grup, secara potensial.
Lihat "Pengaruh perubahan ID pengguna pada kemampuan" di http://man7.org/linux/man-pages/man7/capabilities.7.html
sumber
Ini mungkin layak dibaca: Input lain: beberapa folder pengguna dan satu folder bersama http://hexeract.wordpress.com/2011/02/25/configure-a-webdav-enabled-webserver-for-multiple-user-folders -dan-satu-shared-folder /
sumber
Saya menggunakan ini sebagai panduan untuk mengatur webdav: http://bernaerts.dyndns.org/linux/75-debian/62-debian-webdav-share
ya, Apache adalah grup (www-data di bawah Debian) tetapi Anda dapat menambahkan pengguna ke grup itu, jadi saya menambahkan satu pengguna. Tidak menguji mengapa Anda tidak dapat menambahkan pengguna lain .... Server webdav menggunakan pada prinsipnya pengaturan ini berjalan sekarang selama 3 tahun di tempat saya dan anak-anak saya (jadi 2 server identik untuk pekerjaan anak saya). Debian 6 adalah sejak beberapa bulan versi LTS (hingga Februari-2016).
Dibandingkan dengan Bernaerts, saya mengadaptasi file Apache: / etc / apache2 / sites-available / default pada bagian konfigurasi ini.
Jadi file saya tidak lagi di bawah www tetapi di / data / webdav1 (melalui alias webdav1 agar tetap pendek) Untuk setiap hard disk saya telah membuat bagian seperti itu dan webdav1 menjadi webdav2 untuk hard disk ke-2 di bagian itu. Kita dapat membangun di max 10 hard disk di server ini, jadi 10 dari bagian ini di file konfigurasi. Saya menambahkan pengguna ke www-data, davfs2 dan davfs, sehingga pengguna dapat mengakses folder webdav. Jadi pengguna harus login dan akan diminta nama pengguna dan kata sandi. Dalam fstab semua disk data webdav terdaftar sehingga proses mount secara otomatis. Bagian fstab itu:
sumber
Sudahkah Anda mencoba OwnCloud ? Masih hanya mengujinya sendiri, tetapi sepertinya memenuhi persyaratan Anda: webdav bekerja di luar kotak.
sumber
Setelah lama mencari saya tidak bisa menemukannya. Ada banyak server multi-pengguna tetapi saya tidak dapat menemukan server yang dijalankan sebagai pengguna sistem.
Jadi saya menulis sendiri. Ini hanya diuji sejauh saya bisa mengujinya sendiri. Tetapi untuk apa nilainya, kode sumbernya ada di sini:
https://github.com/couling/WebDAV-Daemon
sumber
Hy,
Saya mencari hal yang sama dan akhirnya saya mengumpulkan solusi menggunakan apache2. Saya mencoba solusi node menggunakan npm webdav-server dan menemukan tidak semua bekerja dengan baik kemudian menggunakan modul apache. Kemudian saya mencoba npm dav-server berdasarkan jsDAV yang bisa melakukan lebih baik dan bisa menjadi solusi, tetapi karena saya harus berurusan dengan koneksi 3g yang buruk, saya lebih suka apache dan mencari tahu tentang beberapa contoh skrip.
Jadi di sini saya berbagi pengalaman saya.
http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-inances
Saya menjalankan instance per pengguna webdav ... tidak terlalu skalabel, tetapi untuk bekerja dalam tim kecil itu cukup bagus.
Ganti myUser dengan pengguna Anda.
Di Ubuntu 14.04
Jadi saya menjalankan proses apache sebagai pengguna myUser didefinisikan di / etc / apache2-myUser / envars
Edit ports.conf
Saya tidak bisa mendapatkan PAM auth di ubuntu 14.04 agar bekerja sehingga perlu mengelabui dengan auth dasar karena saya kemudian membungkusnya dalam https dengan nginx
Kemudian /etc/apache2-myUser/sites-available/000-default.conf
kemudian proxy nginx memiliki trik dengan header Tujuan lewat ikon folder memungkinkan webdav downgrade dengan baik di browser
Tidak ada kewajiban untuk menggunakan nginx sebagai proksi, apache dapat melakukan https dengan sangat baik, tetapi ketika saya bertemu dengan masalah Tujuan proksi saya merasa perlu menyebutkannya.
sumber
Saya juga mencari solusi serupa.
Solusi 1: Lingkungan desktop Anda (Gnome, KDE) mungkin memiliki widget untuk membuka folder tertentu dengan WebDAV. Ini akan berjalan selama lingkungan desktop Anda berjalan dan bukan solusi daemon.
Solusi 2: Tidak ada yang menghentikan Anda dari menjalankan Apache di bawah pengguna Anda sendiri yang mengikat port yang tidak terjangkau di atas 1024. Cukup tulis file konfigurasi atau salin yang dibundel dalam distribusi Anda ke $ HOME / etc / httpd Anda (hanya sebuah contoh), tambahkan DAV- config terkait dan jalankan sebagai pengguna non-root Anda sendiri seperti:
$ httpd -f $ HOME / etc / httpd
Berjalan saat pengguna Anda memastikan Apache akan membuat file seperti Anda.
sumber