Apa yang istimewa tentang izin Linux 004?

23

Saya membaca Praktis Unix dan Keamanan Internet , ketika saya menemukan baris-baris berikut yang tidak dapat saya pahami.

Jika Anda menggunakan server arsip wu, Anda dapat mengonfigurasinya sedemikian rupa sehingga file yang diunggah diunggah dalam mode 004 , sehingga tidak dapat diunduh oleh klien lain . Ini memberikan perlindungan yang lebih baik daripada sekadar membuat direktori tidak dapat dibaca , karena mencegah orang dari mengunggah file dan kemudian memberi tahu teman mereka nama file yang tepat untuk diunduh.

Izin 004 sesuai dengan -------r--. Tidak dapatkah file diunduh jika memiliki akses baca? Juga mengapa ini dianggap lebih baik daripada hanya membuat direktori tidak dapat dibaca? Apa artinya ini?

Catatan: Ini berkaitan dengan pengguna yang tidak sah meninggalkan materi ilegal dan hak cipta di server menggunakan FTP anonim. Solusi di atas disarankan untuk mencegah hal ini bersama dengan skrip yang menghapus isi direktori setelah jangka waktu tertentu.

Aswin PJ
sumber
Secara khusus, sepertinya itu merujuk WU-FTP , dari ketenaran wuarchive.wustl.edu.
Parthian Shot
2
ini artinya UMASK 004 dan bukan izin!
Afsin Toparlak
3
@AfsinToparlak tidak, ini jelas merupakan izin positif, bukan umask. Lihat jawaban yang diterima.
o11c
"Tidak bisakah file diunduh jika memiliki akses baca" Itu tidak sepenuhnya benar. Semua orang kecuali pengguna dan grup yang memiliki file tersebut memiliki akses baca.
scai
1
Sehubungan dengan " Ini memberikan perlindungan yang lebih baik daripada hanya membuat direktori tidak dapat dibaca, karena mencegah orang dari mengunggah file dan kemudian memberi tahu teman mereka nama file yang tepat untuk diunduh. " ... trik sebelumnya adalah membuat area unggahan seperti 333( atau d-wx-wx-wx) yang memungkinkan orang (pengguna FTP) membuat file, tetapi karena tidak ada izin baca [pada direktori], mereka tidak dapat membuat daftar file dalam direktori upload. Namun, jika Anda tahu namanya, Anda bisa membaca / mengunduh file.
TripeHound

Jawaban:

33

Izin 004 (------ r--) berarti bahwa file hanya dapat dibaca oleh proses yang tidak berjalan sebagai pengguna yang sama atau sebagai grup yang sama dengan server FTP. Ini agak tidak biasa: biasanya pengguna memiliki lebih banyak hak daripada grup, dan grup memiliki lebih banyak hak daripada yang lain. Biasanya pengguna dapat mengubah izin, jadi tidak ada gunanya memberikan izin yang lebih ketat kepada pengguna. Masuk akal di sini karena server FTP (mungkin) tidak memiliki perintah untuk mengubah izin, sehingga file akan mempertahankan izin mereka sampai ada yang mengubahnya.

Karena pengguna yang menjalankan server FTP tidak dapat membaca file, orang tidak akan dapat mengunduh file. Itu membuatnya tidak mungkin menggunakan server FTP untuk berbagi file.

Agaknya beberapa proses berjalan sebagai pengguna dan grup yang berbeda membaca file di beberapa titik, memverifikasi bahwa itu sesuai dengan beberapa kebijakan, menyalin data jika ya, dan menghapus file yang diunggah.

Akan lebih masuk akal bagi saya untuk memberikan izin file 040 (hanya dapat dibaca oleh grup) dan meminta proses konsumen dijalankan sebagai grup yang sama dengan server FTP, tetapi pengguna yang berbeda.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
@Cthulhu: Proses server FTP juga milik "semua". Tetapi izin UNIX tidak dicari. Hanya satu triplet hak yang dipertimbangkan, dan ini merupakan pemeriksaan lulus / gagal. (Tidak seperti Windows ACL yang telah lulus / gagal / melihat lebih jauh)
MSalters
8

Topeng izin oktal 004terkait dengan topeng izin simbolis u=,g=,o=ryang berarti bahwa (u)sersiapa yang memiliki file tidak dapat membacanya atau menulis atau menjalankannya, dan tidak ada pengguna lain yang dapat sama (g)roupdengan pengguna yang memiliki file tersebut. Hanya (o)therpengguna yang bukan pemilik, atau dalam kelompok yang sama dengan pemilik, yang dapat membaca file.

godlygeek
sumber
1
ini artinya UMASK 004 dan bukan izin!
Afsin Toparlak
4
@AfsinToparlak: tidak, ini izin eksplisit . Lihat jawaban yang diterima.
TripeHound
6

Ya, tetapi file tersebut dimiliki oleh pengguna. Jadi klien itu sendiri memiliki 0 izin (pengguna) pada file dan tidak dapat membacanya.

Anda dapat menguji ini sendiri:

echo TEST > myTestFile;
chmod 004 myTestFile;
cat myTestFile;
chmod 700 myTestFile;
cat myTestFile;

Langkah ketiga akan menimbulkan kesalahan.

Lemon Jodka
sumber
Jadi, ketika file diunggah hanya pengguna mendapat izin baca untuk file dan yang lainnya mendapat 000? Apakah saya benar? Bisakah Anda memperluas jawaban Anda?
Aswin PJ
1
Saya menemukan buku dan bab ini tentang mengamankan direktori publik yang dapat ditulisi untuk klien ftp anonim. Setiap klien anonim membuka file sebagai uid yang sama dengan klien anonim lainnya, sehingga file yang dibuat dapat dibuat oleh anonim tetapi tidak dapat dibaca oleh anonim. Ini dapat dibaca oleh uid lain di sistem.
Jodka Lemon
@hope: setiap digit dalam string oktal izin mewakili 4 bit: set-id, baca, tulis, dan exec, dalam urutan itu. Jadi, 7 berarti membaca, menulis, dan mengeksekusi bit sudah diatur. Digit pertama adalah izin pemilik, dll. Jadi tidak masuk akal untuk mengatakan bahwa orang lain mendapatkannya 000. Lainnya mendapat keadilan 0. Jawaban Gilles adalah penjelasan terbaik tentang seperti apa pengaturan izin 004sebenarnya.
Peter Cordes
Langkah ketiga adalah menulis, bukan membaca.
Stop Harming Monica
@OrangeDog Anda benar. Saya memperbaikinya.
Jodka Lemon
-1

Tampaknya lebih mungkin bahwa itu berarti ada izin yang ditutup oleh 004, yaitu, pengguna lain tidak dapat membaca file. Ini akan berfungsi untuk melindungi file dari pengguna lain di sistem (sampai tingkat tertentu).

Nathan Ringo
sumber
Tidak, seperti yang telah dijelaskan orang lain, server ftp menetapkan izin 004sehingga pengguna yang mengunggahnya dan pengguna ftp lainnya (setidaknya yang anonim) tidak dapat mengakses file hingga diperiksa, (ketika akan diizinkan kembali dan mungkin dipindahkan / diganti namanya menjadi tempat yang sesuai). Tempat-tempat seperti WU Archive sering (mis) digunakan di masa lalu yang suram dan jauh sebagai situs berbagi file jika hal-hal seperti ini tidak dilakukan.
TripeHound