Saya melihat dua opsi yang terus-menerus disarankan di web ketika seseorang menjelaskan cara me-mount tmpfs atau ramfs. Seringkali juga dengan noexec tapi saya secara khusus tertarik pada nodev dan nosuid. Saya pada dasarnya benci hanya mengulangi secara membabi buta apa yang disarankan seseorang, tanpa pemahaman yang nyata. Dan karena saya hanya melihat petunjuk copy / paste di internet mengenai hal ini, saya bertanya di sini.
Ini dari dokumentasi:
nodev - Jangan menafsirkan blok perangkat khusus pada sistem file.
nosuid - Memblokir operasi bit suid, dan sgid.
Tapi saya ingin penjelasan praktis apa yang bisa terjadi jika saya meninggalkan keduanya. Katakanlah saya telah mengonfigurasi tmpfs atau ramfs (tanpa dua set opsi yang disebutkan ini) yang dapat diakses (baca + tulis) oleh pengguna (non-root) tertentu pada sistem. Apa yang dapat dilakukan pengguna untuk merusak sistem? Tidak termasuk kasus mengkonsumsi semua memori sistem yang tersedia dalam kasus ramfs
Jawaban:
Anda tidak harus mengikuti ini secara membabi buta sebagai aturan yang sulit. Tetapi alasan untuk situasi yang lebih berfokus pada keamanan adalah sebagai berikut.
Opsi mount nodev menentukan bahwa sistem file tidak dapat berisi perangkat khusus: Ini adalah tindakan pencegahan keamanan. Anda tidak ingin sistem file yang dapat diakses pengguna dunia seperti ini memiliki potensi untuk pembuatan perangkat karakter atau akses ke perangkat keras perangkat acak.
Opsi mount nosuid menentukan bahwa sistem file tidak dapat berisi file set userid. Mencegah binari setuid pada filesystem yang dapat ditulis oleh dunia masuk akal karena ada risiko eskalasi root atau kesedihan lainnya di sana.
Untuk apa nilainya, saya tidak sering menggunakan parameter ini ... hanya pada sistem yang menghadap publik di mana ada pertimbangan kepatuhan lainnya.
sumber
nosuid
bukankah setuid bit diabaikan? (bukannyaThe nosuid mount option specifies that the filesystem cannot contain set userid files
)