Kami menggunakan server hosting FreeBSD 10.3, di mana kami tidak memiliki otoritas untuk menjadi pengguna super. Kami menggunakan server untuk menjalankan apache2 untuk halaman web perusahaan kami. Administrator sebelumnya dari halaman web kami muncul untuk mengatur izin ACL ke direktori, tetapi kami ingin menghapusnya. Katakanlah direktori tersebut disebut foobar
.
Sekarang hasilnya ls -al foobar
adalah sebagai berikut:
drwxrwxr-x+ 2 myuser another_user 512 Nov 20 2013 foobar
Dan izinnya adalah sebagai berikut:
[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x
Di sini kami ingin menghapus izin ACL dan tanda plus di akhir daftar izin. Karena itu, kami melakukannya
setfacl -b foobar
Itu menghilangkan izin khusus yang diatur oleh ACL, tetapi tidak menghapus tanda plus +
.
Pertanyaan kami adalah bagaimana kami bisa menghapus tanda tambah +
di daftar izin, ditunjukkan oleh 'ls -al foobar'?
sumber
getfacl
menunjukkan bukan ACL. Namunls
menunjukkan a+
. Anda yakin melihat file yang sama setiap kali? (ini biasanya alasan bagi saya)Jawaban:
Masalah kami diselesaikan dengan menggunakan:
Intinya adalah kita juga harus menghapus aclMask dari direktori dengan opsi -n ... Halaman manual
setfacl
mengatakan sebagai berikut:Kami tidak yakin mengapa opsi ini berhasil, tetapi ternyata ...
Jika Anda mendapat
d?????????
izin setelah solusi di atas, cobachmod -R a+rX
seperti dua komentar di bawah ini.sumber
d?????????
anehchmod -R a+rX
ibu kota XAneh ... tidak dapat mereproduksi:
Sayangnya saya tidak memiliki akses ke BSD untuk menguji sekarang.
Sistem Informasi:
sumber
setfacl -bn foobar
tetapi saya tidak tahu mengapan
opsi ini berhasil.