Saya telah dianiaya sudo
.
Saya telah membuat direktori sementara yang sangat singkat yang ingin saya bagikan antara beberapa pengguna selama beberapa jam ... dan saya menamakan direktori ini /some/path/tmp
Sayangnya saya telah meluncurkan sudo chown 777 -R /tmp
bukan sudo chown 777 -R tmp
, jadi /tmp
file saya sekarang sepenuhnya publik.
Saya menggunakan common /tmp
cukup sering (setiap hari, hampir setiap jam) secara pribadi untuk file kehidupan singkat, skrip, banyak skrip.
Apakah ini menjadi masalah keamanan sekarang setelah sepenuhnya ditetapkan untuk umum? Haruskah saya mengubahnya kembali ke pengaturan yang lebih aman, atau seperti pengaturan standar umum untuk distro Debian atau Ubuntu - (Saya tidak tahu yang mana)? Untuk apa izin yang benar /tmp
?
sumber
chown
atauchmod
?chmod
. chown (seperti ch - own), adalah tentang kepemilikan file, di mana pengguna memiliki file. chmod (seperti ch - modifify) lebih banyak tentang siapa yang dapat mengeksekusi, atau menulis di dalam, atau membaca isi file.chown 777
yang mengatur kepemilikan file kepada pengguna dengan ID 777. Namun, semua jawaban, termasuk yang diterima, bekerja denganchmod
. Karena semuanya mengatur izin ke nilai yang sama untuk semua pengguna (pemilik, grup, yang lain), sebagian besar efek kepemilikan file menjadi tidak relevan. Namun, perintah yang benar untuk memperbaiki hasilsudo chown 777 -R /tmp
seharusnyasudo chown root -R /tmp
.Jawaban:
Pengaturan normal untuk
/tmp
adalah 1777, yangls
ditampilkan sebagaidrwxrwxrwt
. Yaitu: terbuka lebar, kecuali bahwa hanya pemilik file yang dapat menghapusnya (itulah artit
bit tambahan ini untuk direktori).Masalah dengan
/tmp
mode 777 adalah bahwa pengguna lain dapat menghapus file yang Anda buat dan mengganti konten pilihan mereka.Jika Anda
/tmp
adalah sistem file tmpfs, reboot akan mengembalikan semuanya. Kalau tidak, jalankanchmod 1777 /tmp
.Selain itu, banyak file yang
/tmp
perlu pribadi. Namun, setidaknya satu direktori secara kritis harus dapat dibaca oleh dunia:,/tmp/.X11-unix
dan mungkin beberapa direktori lain yang serupa (/tmp/.XIM-unix
, dll.). Perintah berikut sebagian besar harus mengatur hal-hal yang benar:Yaitu membuat semua file dan direktori pribadi (menghapus semua izin untuk grup dan lainnya), tetapi membuat soket X11 dapat diakses oleh semua. Kontrol akses pada soket ini diberlakukan oleh server, bukan oleh izin file. Mungkin ada soket lain yang perlu tersedia untuk umum. Jalankan
find /tmp -type s -user 0
untuk menemukan soket yang dimiliki root yang mungkin perlu Anda akses-dunia. Mungkin ada soket yang dimiliki oleh pengguna sistem lain juga (misalnya untuk berkomunikasi dengan bus sistem); jelajahi denganfind /tmp -type s ! -user $UID
(di mana$UID
ID pengguna Anda).sumber
go-rwx
: tidak ada izin untuk grup dan lainnya. Ini mengatur izin untukrwx------
(kecuali bahwa file yang dibuat sejakchmod
akhir dapat berakhir dengan izin yang lebih sedikit, misalnyarw-------
). Dengan kata lain, file hanya dapat diakses oleh pemiliknya./tmp/.[!.]*
adalah untuk memasukkan file dot, yang biasanya ada di/tmp
./tmp
dan/var/tmp
seharusnya membaca, menulis, dan melaksanakan hak untuk semua; tetapi Anda biasanya juga akan menambahkan bit-sticky (o+t
), untuk mencegah pengguna menghapus file / direktori milik pengguna lain. Jadichmod a=rwx,o+t /tmp
harusnya bekerja.Adapun mengubah izin secara rekursif ... Selama pemilik / grup tetap seperti itu untuk file dan direktori, itu seharusnya tidak menjadi masalah. Tetapi Anda mungkin dapat mengubah izin dari segala sesuatu yang ada di bawah
/tmp
(bukan / tmp itu sendiri) untuk memastikan privasi pengguna, dengan menghapusrx
hak orang lain dan mungkin grup.Temukan adalah cara yang baik untuk melakukan ini. Sebagai root, lakukan:
sumber
/tmp/.X11-unix/*
dunia juga dapat dibaca, atau Anda tidak akan dapat memulai aplikasi X lagi.chmod a=rwX,o+t /tmp -R
harus melakukanfind
keajaiban.Dari mesin CentOS 5.9.
sumber