Apakah `pengguna chown: pengguna hilang + ditemukan` berbahaya?

10

Baru-baru ini saya membuat filesystem terenkripsi ( crypto_LUKS) yang berfungsi sebagai $ HOME untuk hanya satu pengguna tertentu (yaitu saya mount sebagai /home/pduck). Saya juga menambahkan entri yang sesuai /etc/security/pam_mount.conf.xmlsehingga partisi akan didekripsi dan dipasang secara otomatis ketika pengguna log in (dan unmount ketika dia log off). Bagus sekali.

Karena $ HOME adalah sistem file sendiri, pengguna memiliki lost+founddirektori yang dimiliki oleh root: root di dalamnya. Saya tahu bahwa menghapus direktori adalah ide yang buruk tetapi banyak perintah (misalnya find) mengeluh karena tidak memiliki akses. Itu mengganggu saya.

Karena penasaran, saya menghapus direktori dan membuatnya kembali dengan mklost+found(tanpa sudo). Sekarang direktori dimiliki oleh pduck: pduck. Apakah itu boleh atau apakah penting bahwa direktori tersebut dimiliki oleh root: root?

PerlDuck
sumber
Tidak semua sistem file memiliki direktori yang hilang + ditemukan. Ext4 tidak, XFS tidak, misalnya.
jornane
Bukan jawaban, tetapi Anda bisa membuat skrip atau alias untuk menemukan (lebih disukai dengan nama lain) yang dimulai dengan 2>/dev/nullyang membungkam pesan kesalahan tersebut. Jika Anda meletakkannya di awal, maka itu tidak akan mengganggu argumen apa pun yang ingin Anda sampaikan untuk ditemukan dalam setiap doa.
Joe

Jawaban:

11

Nasihat yang baik datang dengan alasan sehingga Anda bisa tahu kapan itu menjadi nasihat yang buruk.

Tujuan lost+founddimiliki oleh root adalah agar siapa pun file yang hilang itu tidak tiba-tiba terbuka untuk semua orang. Namun, dalam hal ini, seharusnya tidak ada satu file di seluruh sistem file * yang tidak dimiliki oleh pduck; oleh karena itu tidak ada kerugian untuk lost+foundtidak dimiliki oleh pduck.

* Cegah situasi eksotis seperti pduck suuntuk root dan menjalankan aplikasi X. Tetapi jika pduck dapat menggunakan sudoatau sudaripada kita berbicara tentang apa-apa karena pduck dapat langsung merusak keamanan sistem.

Joshua
sumber
6

lost+found adalah direktori sistem, dan saya menghindari gangguan pada kepemilikan dan izin direktori dan file sistem.

Ada direktori lain (dan file), yang membuat findkomplain, kecuali jika saya meningkatkan izin dari baris perintah, jadi saya sarankan Anda menggunakan

sudo find ...

dan biarkan lost+foundapa adanya {is / seharusnya}.

sudodus
sumber
2
Ya, saya pikir begitu, tetapi OTOH ada mklost+foundperintah untuk membuatnya dan membuatnya dengan kepemilikan saya . Mungkin itu hanya perintah tertulis mengerikan yang tidak memeriksa $UID!=0;-) Juga, saya tidak suka gagasan dipaksa (kurang lebih) untuk digunakan sudodalam $ HOME saya sendiri.
PerlDuck
lost+foundsudah sangat tua, saya pikir sejak awal UNIX, dan saya tidak benar-benar tahu kapan ini digunakan saat ini. Tapi saya pikir itu adalah kebijakan umum yang baik untuk menghindari gangguan pada kepemilikan dan izin direktori sistem dan file (kecuali Anda benar-benar tahu apa yang bisa terjadi di belakang layar).
sudodus
5
Tidak fsckmeletakkan file di sana ketika menemukan file "hilang"? Idenya adalah bahwa fscksudah memiliki tempat untuk meletakkan file ke dalam (bukan pertama membuat satu). Perhatikan bahwa lost+foundmenempati lebih banyak ruang (16384 bytes) daripada direktori kosong biasa (4096 bytes).
PerlDuck
Ya, setidaknya itu adalah tujuan asli (mirip dengan apa yang chkdskterjadi dengan file yang hilang di MSDOS), tapi saya jarang jika pernah melihat data di linux. Mungkin penjurnalan dapat mengembalikan file ke tempat mereka sebelumnya, jadi mereka tidak perlu pergi ke lost+found. - Omong-omong, saya memiliki lost+founddirektori /home, tetapi tidak di direktori home saya /home/sudodus, jadi tidak mengganggu saya di sana.
sudodus
1
Saya setuju. Dan di /homesaya punya yang lain l+f(tidak mengganggu saya juga) karena /homedan /home/pduckpartisi terpisah pada mesin saya. Yang terakhir dienkripsi, yang pertama tidak. Namun, ketika itu terlalu mengganggu saya, saya dapat me-mount $ HOME saya di tempat lain dan mengikatnya ke $ HOME aktual saya (seperti yang saya jelaskan di sini , misalnya) untuk sepenuhnya menghilangkan l+f$ HOME saya. /// Saya akan menghapus komentar saya dalam beberapa menit / jam untuk menghindari peringatan "diskusi panjang ... pindah ke obrolan" .
PerlDuck
4

Tidak ada yang benar-benar ajaib tentang direktori yang hilang + ditemukan. Itu hanya direktori biasa seperti yang lainnya dan hanya digunakan untuk menyimpan file / direktori yang hilang yang ditemukan selama fsck setelah sistem crash atau korupsi sistem file.

Itu dibuat selama mkfs ketika sistem file dibuat dan biasanya kosong. Satu-satunya alasan untuk izin default adalah untuk menghindari file sensitif menjadi terlihat oleh pengguna biasa jika mereka ditemukan dan dipulihkan selama fsck. Di era modern jarang melihat file tersesat dan dimasukkan ke folder itu.

Jika itu dihapus, saya percaya fsck akan membuatnya kembali jika diperlukan jika ada file yang perlu dimasukkan ke sana. Karena ini adalah sistem file untuk satu pengguna dan datanya sendiri tanpa perlu menjaga data tetap tersembunyi dari pengamatan, saya tidak melihat alasan bahwa izin tidak dapat diubah menjadi, katakanlah, 755 untuk mencegah ditemukannya komplain atau perubahan itu. kepemilikan. Mungkin saja fsck dapat mengatur ulang izinnya selama proses pemulihan, tetapi itu adalah kejadian yang jarang terjadi pada sistem file modern kecuali ada kegagalan perangkat keras yang serius.

Adapun hanya menghapusnya, saya percaya semua paranoia di sekitar itu didasarkan pada fakta bahwa yang terbaik untuk memiliki fsck lakukan sesedikit mungkin untuk memulihkan data, tetapi saya tidak berpikir itu benar-benar penting dalam praktik.

penguin359
sumber