Saya memiliki ujian direktori dengan 2 file di dalamnya. Saya perlu menghapus file tetapi izin ditolak. Bahkan rm -rf
perintah tidak dapat menghapus file-file ini. Saya masuk sebagai pengguna root.
Saya memiliki ujian direktori dengan 2 file di dalamnya. Saya perlu menghapus file tetapi izin ditolak. Bahkan rm -rf
perintah tidak dapat menghapus file-file ini. Saya masuk sebagai pengguna root.
Jawaban:
Dari pengguna root memeriksa atribut file
# lsattr
jika Anda perhatikan i
(tidak berubah) atau a
(hanya-tambahkan), hapus atribut tersebut:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
Alasan paling umum untuk rm
mengeluh bahwa Anda tidak memiliki izin untuk menghapus file, adalah bahwa izin pada direktori melarang Anda menghapus file. Untuk menghapus file, Anda harus menulis izin pada direktori. Izin pada file tidak relevan ( rm
tanpa -f
meminta konfirmasi sebelum menghapus file read-only, tapi itu hanya konfirmasi, bukan batasan). Pada beberapa varian Unix seperti OSX (tetapi bukan Linux), ACL pada file dapat mencegah penghapusannya; ls -l
akan ditampilkan @
di akhir bidang izin jika ada entri ACL pada file.
Akses sebagai root memintas izin, sehingga root dapat menghapus file bahkan dalam direktori read-only.
Output dari ls -l
menunjukkan a .
di akhir kolom izin. Ini menunjukkan bahwa file tersebut memiliki konteks keamanan SELinux. Tidak seperti izin dasar dan ACL, konteks keamanan SELinux pada file dapat mengontrol siapa yang diizinkan untuk menghapusnya. Lebih jauh SELinux tidak selalu dapat di bypass oleh root (dimungkinkan untuk menjalankan proses sebagai ID pengguna 0 tetapi dengan hak sesedikit yang dipilih oleh perancang kebijakan SELinux). Untuk melihat apa yang bisa dilakukan oleh konteks SELinux, jalankan ls -lZ . exam_a
.
Hal lain yang dapat mencegah file terhapus adalah jika file atau direktori yang memuatnya memiliki atribut Linux append-only atau immutable . Jalankan lsattr -d . exam_a
untuk melihat atribut Linux. Jika atribut a
atau i
aktif, Anda harus menghapusnya ( chattr -a -i . exam_a
) untuk menghapus file; hanya root yang bisa melakukannya. Root tidak dapat mem-bypass atribut ini untuk menghapus file, atribut harus dimatikan dulu.
Namun hal lain yang mencegah file terhapus adalah jika sistem file di-mount hanya-baca, tetapi Anda akan mendapatkan pesan kesalahan yang berbeda dalam kasus itu.
ls -la
, sehingga kami dapat melihat izin di.
(direktori).