Bagaimana cara menghapus ACL dari direktori dan kembali ke kontrol akses yang biasa?

29

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 foobaradalah 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'?

Taiki Bessho
sumber
getfaclmenunjukkan bukan ACL. Namun lsmenunjukkan a +. Anda yakin melihat file yang sama setiap kali? (ini biasanya alasan bagi saya)
ctrl-alt-delor
@ Richard ya, pasti file yang sama.
Taiki Bessho

Jawaban:

28

Masalah kami diselesaikan dengan menggunakan:

setfacl -bn foobar

Intinya adalah kita juga harus menghapus aclMask dari direktori dengan opsi -n ... Halaman manual setfaclmengatakan sebagai berikut:

 -n      Do not recalculate the permissions associated with the ACL mask
         entry.  This option is not applicable to NFSv4 ACLs.

Kami tidak yakin mengapa opsi ini berhasil, tetapi ternyata ...


Jika Anda mendapat d?????????izin setelah solusi di atas, coba chmod -R a+rXseperti dua komentar di bawah ini.

Taiki Bessho
sumber
Ini membuat file-file saya: d?????????aneh
JREAM
1
Pembaruan: Ini mengatasinya chmod -R a+rXibu kota X
JREAM
@ JREAM Sistem Linux apa yang Anda gunakan?
Taiki Bessho
Saya mendapatkan d ?????? hal dengan Ubuntu 16. Memperbaiki dengan chmod di atas. Aneh.
TonyG
3

Aneh ... tidak dapat mereproduksi:

ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

Sayangnya saya tidak memiliki akses ke BSD untuk menguji sekarang.


Sistem Informasi:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:   jessie
undang-undang
sumber
Memang, saya tidak dapat mereproduksi di server Ubuntu 16.04.1 ...
Taiki Bessho
Akhirnya, saya bisa menghapus tanda tambah oleh setfacl -bn foobartetapi saya tidak tahu mengapa nopsi ini berhasil.
Taiki Bessho