Uji izin file yang efektif untuk pengguna


24

Apakah mungkin untuk menguji izin file yang efektif untuk pengguna tertentu?

Saya biasanya melakukan ini dengan su userdan kemudian mengakses file, tetapi saya sekarang ingin menguji ini pada pengguna tanpa shell (yaitu pengguna Sistem)

Jawaban:


23

The sudoperintah dapat menjalankan apa pun sebagai pengguna tertentu dengan -upilihan. Alih-alih mengkhawatirkan kerang, coba cat(atau laksanakan, apa pun) file Anda sebagai pengguna target Anda:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

catmungkin bukan pilihan terbaik ... Anda menguji file besar atau file biner ...
Alexis Wilke

24

Saya menemukan nyaman untuk digunakan dalam skrip sesuatu seperti

 sudo -u <user> test -r <file-to-test> && ...

1
jawaban terbaik, karena Anda dapat menguji untuk dibaca (-r), dapat ditulis (-w) dan dieksekusi (-x) tanpa benar-benar memodifikasi / membuat file. man testuntuk lebih jelasnya
Thomas

12
sudo -u <user> test -r <file-to-test>; echo $?

Bagian echo $?akan menampilkan status keluar dari tes.

Hanya ingat di sini bahwa hasilnya akan 0jika operasi berhasil! Atau non-nol, misalnya 1, jika tidak.

Seperti komentar @ Thomas pada jawaban @ user72025, gunakan man testuntuk mendapatkan lebih banyak tes operasi, seperti test -xuntuk menguji kemampuan eksekusi, test -wuntuk kemampuan menulis, dll.


1
Bagi saya, ini adalah jawaban yang paling membantu. Yang oleh user72025 sudah dekat, tapi saya tidak tahu apa hasilnya. Anda sudah menjelaskannya. Terima kasih. Memilih.
inspirednz

6

Saya menemukan Anda dapat menggunakan su -s <shellname> <username>untuk memasukkan shell tertentu sebagai pengguna tertentu. Anda kemudian dapat menguji izin file seperti biasa.

Misalnya:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

Opsi yang sangat menarik.
Alex
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.