Di bawah ini menunjukkan file,, /tmp/testfile
milik pengguna1 dengan grup diubah ke roda yang juga termasuk pengguna2 . File tersebut memiliki rw
izin untuk grup. Jadi bukankah seharusnya ada anggota grup yang dapat menghapusnya? Contoh output di bawah ini menunjukkan bahwa user2 tidak dapat menghapus file. Mengapa?
[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$ rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
linux
permissions
file-permissions
pengguna347765
sumber
sumber
tmp
dan memperbaiki situasi lengketJawaban:
Pertama, Anda melihat izin yang salah. Saat Anda memindahkan / mengganti nama / menghapus file, Anda hanya memodifikasi direktori induk - izin file itu sendiri tidak dicentang. Anda hanya menghapus entri dari daftar file direktori. Karena itu Anda harus memeriksa izin direktori induk (dalam hal ini
/tmp
).Kedua,
/tmp
spesial. Pada hampir semua sistem, ini dapat ditulis oleh siapa saja (ugo=rwx
), jadi pada pandangan pertama, sepertinya siapa saja dapat mengganti nama atau menghapus file apa pun di dalamnya. Ini tentu saja akan membuatnya mudah (well, bahkan lebih mudah) untuk membuat masalah bagi pengguna lain, oleh karena itu/tmp
selalu memiliki set mode "sticky" alias "pembatasan penghapusan" (o+t
). Dengan mode ini disetel, hanya pemilik file yang dapat memindahkan atau menghapus file di direktori itu, terlepas dari izin apa pun.(Pada GNU coreutils,
chmod(1)
halaman manual memiliki bagian tentang "bendera penghapusan terbatas atau bit lengket" .)sumber
chmod o-t /tmp
dan kemudian mencoba kembali untuk menghapus file, tetapi masih mengeluh sama.