Bagaimana saya dapat mengatur file agar dapat dieksekusi hanya untuk pengguna lain tetapi tidak dapat dibaca / ditulisi, alasannya saya mengeksekusi sesuatu dengan nama pengguna saya tetapi saya tidak ingin memberikan kata sandi. Saya mencoba :
chmod 777 testfile
chmod a=x
chmod ugo+x
Saya masih mendapatkan izin yang ditolak saat mengeksekusi sebagai pengguna lain.
linux
security
permissions
executable
cmmrade
sumber
sumber
Jawaban:
Anda perlu membaca dan menjalankan izin pada skrip untuk dapat menjalankannya. Jika Anda tidak dapat membaca konten skrip, Anda juga tidak dapat menjalankannya.
sumber
Ada setengah kebenaran dari pernyataan sebelumnya. Anda dapat mengatur skrip sehingga tidak dapat dibaca oleh pengguna, tetapi masih dapat dieksekusi. Prosesnya sedikit berlarut-larut, tetapi bisa dilakukan dengan membuat pengecualian di / etc / sudoer sehingga pengguna dapat menjalankan skrip sebagai diri Anda sementara waktu tanpa diminta kata sandi. Contoh di bawah ini:
Beberapa skrip yang ingin saya bagikan dengan pengguna:
Buat skrip shell yang memanggil 'somescript.pl' dan simpan di / bin /:
LANGKAH OPSIONAL Buat symlink ke somescript.sh di / bin /:
Pastikan skrip shell dapat dibaca / dieksekusi untuk pengguna (tidak ada akses tulis):
Buat pengecualian di / etc / sudoer dengan menambahkan baris ini:
BUKTI DALAM Puding:
Metode ini harus lebih baik daripada mencoba untuk mengaburkan dengan
Filter::Crypto
atauPAR::Filter::Crypto
atauAcme::Bleach
yang dapat dibalik direkayasa oleh pengguna ditentukan. Hal yang sama berlaku untuk kompilasi skrip Anda ke biner. Beri tahu saya jika Anda menemukan sesuatu yang salah dengan metode ini. Untuk pengguna yang lebih mahir, Anda mungkin ingin menghapus bagian User_Alias sepenuhnya dan mengganti SCRIPTUSER dengan '% groupname'. Dengan cara ini Anda dapat mengelola pengguna skrip Anda denganusermod
perintah.sumber
Jika Anda membiarkan pengguna lain menjalankan program, maka mereka dapat mengetahui semua yang dilakukan program, apakah file program dapat dibaca atau tidak. Yang perlu mereka lakukan hanyalah menunjuk debugger (atau program seperti debugger seperti
strace
). File biner yang dapat dijalankan dapat dijalankan jika file itu dapat dieksekusi dan tidak dapat dibaca (skrip tidak bisa, karena penerjemah harus dapat membaca skrip), tetapi ini tidak memberi Anda keamanan apa pun.Jika Anda ingin orang lain dapat menjalankan program Anda sebagai kotak hitam, tanpa membiarkan mereka melihat apa yang sedang dilakukan oleh program, Anda perlu memberikan hak istimewa pada skrip Anda: buat setuid untuk pengguna Anda. Hanya root yang dapat menggunakan alat debugging pada program setuid. Perhatikan bahwa menulis program setuid aman tidak mudah, dan sebagian besar bahasa tidak cocok; lihat Izinkan setuid pada skrip shell untuk penjelasan lebih lanjut. Jika Anda akan menulis program setuid, saya sangat merekomendasikan Perl, yang memiliki mode (mode taint) yang secara eksplisit dimaksudkan untuk membuat skrip setuid aman.
sumber
Anda dapat mengatur izin file dengan perintah chmod. Baik pengguna root dan pemilik file dapat mengatur izin file. chmod memiliki dua mode, simbolik dan numerik.
Pertama, Anda memutuskan apakah Anda menetapkan izin untuk pengguna (u), grup (g), orang lain (o), atau ketiganya (a). Kemudian, Anda menambahkan izin (+), menghapusnya (-), atau menghapus izin sebelumnya dan menambahkan yang baru (=). Selanjutnya, Anda memutuskan apakah Anda mengatur izin baca (r), izin menulis (w), atau mengeksekusi izin (x). Terakhir, Anda akan memberi tahu chmod izin file mana yang ingin Anda ubah.
Berikut ini beberapa contohnya.
Hapus semua izin tetapi tambahkan izin baca untuk semua orang:
Setelah perintah, izin file akan menjadi -r - r - r--
Tambahkan izin eksekusi untuk grup:
Sekarang, izin file adalah -r - r-xr--
Tambahkan kedua tulis dan jalankan izin untuk pemilik file. Perhatikan bagaimana Anda dapat menetapkan lebih dari satu izin sekaligus:
Setelah ini, izin file akan menjadi -rwxr-xr--
Hapus izin eksekusi dari pemilik dan grup file. Perhatikan, sekali lagi, bagaimana Anda dapat mengatur keduanya sekaligus:
Sekarang, izinnya adalah -rw-r - r--
Ini adalah referensi cepat untuk mengatur izin file dalam mode simbolis:
sumber
chmod
. Ini tidak menjawab pertanyaan.