/tmp
direktori biasanya ditandai dengan penghapusan terbatas bendera, yang muncul sebagai surat izin t
atau T
di ls
keluaran.
Penghapusan terbatas menyiratkan beberapa hal. Dalam kasus umum, ini menyiratkan bahwa hanya pemilik file, atau pemilik /tmp
sendiri, dapat menghapus file/direktori di /tmp
.
Anda tidak dapat menghapus file tersebut, karena Anda bukan pemiliknya, yaitu root
. Coba jalankan rm
dengan sudo
yang mungkin Anda lupakan.
sudo rm /tmp/test
Lebih khusus untuk Linux saja, tanda penghapusan terbatas (pada direktori yang dapat ditulis dunia seperti /tmp
) juga mengaktifkan protected_symlinks
, protected_hardlinks
, protected_regular
, dan protected_fifos
pembatasan, yang masing-masing dalam direktori tersebut mencegah pengguna mengikuti tautan simbolis yang bukan miliknya, mencegah pengguna membuat tautan keras ke file yang bukan miliknya, mencegah pengguna membuka FIFO yang bukan milik mereka, dan mencegah pengguna membuka file yang sudah ada yang mereka tidak memilikinya ketika mereka berharap untuk membuatnya.
Ini akan mengejutkan Anda dengan kesalahan izin saat melakukan berbagai hal lebih lanjut seperti root
saat Anda melakukannya gunakan sudo
.
Lebih lanjut tentang ini pada pertanyaan seperti "Perilaku izin tautan keras berbeda antara CentOS 6 dan CentOS 7", "Tautan simbolik tidak berfungsi seperti yang diharapkan saat mengubah pengguna", dan "Izin grup untuk root tidak berfungsi di /tmp".
Masalahnya tampaknya adalah bagian lengket dari /tmp
.
$ ls -ld /tmp drwxrwxrwt⃝ 1 root root 1044 Mar 13 12:09 /tmp
https://en.wikipedia.org/wiki/Sticky_bit
Ketika sticky bit direktori disetel, sistem file memperlakukan file dalam direktori tersebut dengan cara khusus sehingga hanya pemilik file, pemilik direktori, atau pengguna root yang dapat mengganti nama atau menghapus file. Tanpa set sticky bit, setiap pengguna dengan izin tulis dan eksekusi untuk direktori dapat mengganti nama atau menghapus file yang ada, terlepas dari pemilik file. Biasanya ini disetel pada direktori /tmp untuk mencegah pengguna biasa menghapus atau memindahkan file pengguna lain.