Saya menulis aplikasi kompilasi reguler yang perlu membuat file khusus dan menulis cookie ajaib ke dalamnya. Saya tidak bisa menulis file langsung dari aplikasi, model keamanan sistem mengharuskan saya untuk meluncurkan alat bantu dengan hak istimewa untuk melakukan trik. Saya dapat menyediakan sejumlah argumen ke alat bantu. Sekarang saya ingin memilih beberapa perintah sistem yang sangat sederhana yang akan berfungsi sebagai alat bantu dan membuat file untuk saya. Sesuatu seperti ini:
/bin/sh -c "/bin/echo -n 'magic' > /some/where/file"
Sederhana touchtidak memotongnya karena saya perlu menulis cookie ke dalam file, sederhana echotanpa pembungkus shell tidak berfungsi karena perlu pengalihan untuk menulis file. Saya tidak merasa nyaman memanggil shell dengan root privilege untuk melakukan tugas sepele seperti itu. Apakah ada beberapa perintah sistem yang sangat sederhana dan terbatas yang dapat saya panggil untuk menulis file untuk saya?
tee. Terima kasih!
/bin/sh -c 'echo magic > /path/to/magic/file'tidak berhasil? Itu akan menjadi file yang dapat dieksekusi dan dua argumen. Anda perlu membuat argumen terakhir sebagai string (dengan sprintf atau yang setara). Apakah ada alasan mengapa ini tidak berhasil untuk Anda? Dari pertanyaan Anda, itu terdengar seperti doCommandAsRoot () tidak mengambil input untuk streaming ke perintah, benar? Kalau tidak, Anda bisa mengganti argumen terakhir dengan'cat > /path/to/magic/file'dan meneruskan data alih-alih membangun string.