Tidak dapat mengubah file HTML melalui Samba

0

Saya hosting server web Apache sederhana pada Raspberry Pi yang menjalankan Debian, yang sejauh ini hanya menyajikan konten statis dari /var/www/direktori default-nya .

Saya ingin berbagi /var/www/folder melalui Samba sehingga saya dapat dengan mudah memasang folder dari mesin Windows dan membuat pembaruan cepat langsung di server.

Dari mesin Windows (melalui share Samba), saya dapat ...

  • Baca file dari semua jenis file
  • Ganti nama, buat, atau hapus file jenis file apa pun
  • Ubah konten sebagian besar tipe file

Namun, saya tidak dapat memodifikasi .htmldan .htmfile (mungkin tipe file lain juga) dari Windows dan menerima pesan galat berikut ketika mencoba menyimpan modifikasi:

Proses tidak dapat mengakses file karena sedang digunakan oleh proses lain.

Ini terjadi terlepas dari editor mana yang saya gunakan di Windows (misalnya, Notepad, Visual Studio, dll).

Dari Windows, ini memberi saya kemampuan menarik untuk mengganti nama file yang terpengaruh (mis., Ubah dari *.htmmenjadi *.htm.edit), modifikasi konten, dan kemudian ubah nama kembali. Tetapi saya tidak dapat mengeditnya tanpa mengganti nama.

Saya masih dapat memodifikasi semua file dengan sangat baik dari Unix.

Izin pemakai dan file identik di kedua file yang terpengaruh dan tidak terpengaruh: -rwxrw-rw-

Perhatikan bahwa konten web statis lain yang telah dilayani oleh server Apache (mis., File CSS) masih dapat diedit melalui Samba dari klien Windows.

Karena tampaknya terbatas pada file terkait HTML (sejauh ini), tebakan terbaik saya yang naif adalah bahwa ada beberapa konflik antara Samba dan Apache, mungkin terkait dengan penguncian file. Saya mencoba menonaktifkan OpLocks untuk share Samba ini (saya tidak terlalu terbiasa dengan mereka, tetapi saya pernah mendengar mereka dapat mengakibatkan beberapa kesulitan penguncian) tanpa hasil.

Berikut ini adalah bagian dari smb.conffile konfigurasi Samba ( ) yang relevan dengan share Samba ini:

[www]
Comment = WWW root folder
Path = /var/www
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
valid users = pi
force user = pi
strict locking = no
oplocks = False
level2 oplocks = False

Saya hanya ingin kemampuan untuk mengedit .htmlfile dari klien Windows menggunakan share Samba. Setiap saran tentang bagaimana saya dapat memecahkan masalah atau menyelesaikan masalah ini akan sangat dihargai.

packerfan3611
sumber
Ini menyatakan: "file karena sedang digunakan oleh proses lain." Jika server Apache sedang berjalan, itu mengunci file.
DrMoishe Pippik

Jawaban:

2

Masalah saya sebenarnya adalah konflik kunci dalam Windows yang tampaknya hanya bermanifestasi pada share Samba.

Saya menemukan bahwa untuk file tertentu (termasuk file HTML), pengendali pratinjau yang digunakan oleh panel pratinjau Windows Explorer memperoleh DENY_WRITEkunci file Samba , sehingga memiliki file yang dipilih dalam Windows Explorer akan menguncinya agar tidak diedit.

Itu mengejutkan saya: untuk file HTML pada mesin Windows lokal, kunci file yang diperoleh oleh handler pratinjau tidak mencegah proses lain dari menulisnya; tetapi ketika file berada di share Samba, untuk beberapa alasan kunci file Windows diterjemahkan menjadi DENY_WRITEkunci di Samba sehingga ketika proses kedua dari mesin Windows (editor teks) mencoba untuk memodifikasi file, itu menghormati kunci Samba dan secara alami gagal.

Saya pribadi tidak memerlukan penangan pratinjau di Windows, jadi saya cukup menonaktifkannya (Pilihan Folder >> 'Lihat' Tab >> Hapus centang 'Tampilkan penangan pratinjau di panel pratinjau'). Ini lebih merupakan solusi; idealnya, kunci file handler pratinjau tidak akan diterjemahkan menjadi DENY_WRITEkunci di Samba.

packerfan3611
sumber