Apakah risiko keamanan menjalankan pekerjaan crontab saya sebagai root?

8

Saya memiliki beberapa pekerjaan cron yang sedang saya jalankan - kebanyakan hal-hal terkait cadangan.

Saya harus membuat cadangan macet seperti / etc / apache2 / sites / available etc, yang memerlukan akses root.

Saya punya beberapa pertanyaan:

Saat berjalan di server tanpa kepala:

  1. Pengguna mana yang menjalankan skrip (dengan asumsi saya tidak menentukan pengguna dalam entri pekerjaan cron)?
  2. Apakah boleh menjalankan skrip cadangan sebagai root - atau apakah itu menimbulkan pertanyaan keamanan?

BTW, server saya menjalankan Ubuntu 10.0.4 LTS

pengguna35402
sumber

Jawaban:

15

Jika Anda telah mengamankan akses ke skrip dengan cukup dan melakukan tindakan pencegahan yang masuk akal, menjalankan sesuatu dari root crontab biasanya bukan risiko keamanan.

Tetapi jangan menjalankan skrip sebagai root yang dapat diedit atau ditimpa oleh pengguna non root. Ini berlaku untuk pekerjaan yang dijalankan dari cron dan juga secara interaktif.

Jika script itu termasuk file lain yang sama berlaku untuk mereka juga.

Jika ragu selalu gunakan prinsip privilege paling tidak. Jika Anda masih ragu, Anda selalu dapat mengajukan pertanyaan khusus di forum dan di IRC.


Selalu ada (hampir) cara untuk menjalankan sesuatu sebagai pengguna non root. Jika semuanya gagal menggunakan sudo untuk membatasi pengguna untuk perintah tertentu juga membatasi potensi untuk melakukan kerusakan.

Jadi dengan contoh yang Anda berikan untuk mencadangkan / etc / apache2 / sites-available, file itu secara default dapat dibaca oleh siapa saja, sehingga menyiratkan itu adalah akses ke tujuan yang hanya dapat ditulis oleh root.

Anda dapat memperbaikinya dengan

  • buat grup yang disebut backupadmin (misalnya)
  • atur grup pada direktori tujuan ke admin cadangan
  • tambahkan pengguna yang disebut backupuser (misalnya)
  • tambahkan pengguna cadangan pengguna ke admin cadangan grup.
  • membuat direktori dapat ditulisi oleh grup admin cadangan
  • jalankan pekerjaan cron dari crontab backupuser.
Richard Holloway
sumber
+1 untuk petunjuk langkah demi langkah yang bermanfaat. Jawaban Anda sangat membantu. Saya berniat untuk menempuh jalan ini, tetapi karena ini adalah pertama kalinya saya melakukannya, meyakinkan untuk melihat bahwa itu direkomendasikan di sini (dan beberapa orang tampaknya setuju dengan rekomendasi Anda).
user35402
BTW, jika saya membuat grup pengguna dan pengguna seperti yang Anda sarankan, akankah saya dapat mengakses / etc / apache / sites-available dan folder lain yang (cukup benar), terbatas pada akses root saja ?. Bagaimana saya mengatasi masalah itu?
user35402
3

Tergantung apa yang dilakukan skrip. Jika mereka mendukung hal-hal maka mungkin mereka baik-baik saja menjadi root - jika pengguna jahat menimpa skrip ini, Anda mungkin punya masalah lebih besar.

Jika mereka melakukan hal-hal bodoh seperti mengeksekusi file yang ditemukan di direktori, atau apa pun yang dapat dipengaruhi oleh konten direktori web, maka Anda mungkin perlu mencari alternatif.

James L.
sumber
2

Jutaan pekerjaan cron di seluruh dunia dijalankan sebagai root setiap hari (atau periode apa pun yang akan dijalankan).

Yang penting adalah bahwa izin yang tepat ditetapkan. Jika Anda menjalankan sesuatu yang dapat ditulis oleh semua orang, maka pengguna atau proses jahat dapat mengubah apa yang dilakukannya.

Pekerjaan Cron dijalankan oleh pemilik crontab, secara umum. /var/spool/cron/crontabs/usernameMisalnya, crontab pengguna . Cronjobs yang ada di /etc/crontab, /etc/cron.d/atau /etc/cron.hourly(harian, mingguan, bulanan) akan dijalankan oleh root. Sangat penting bahwa kepemilikan dan izin juga benar untuk file-file crontab ini.

Dijeda sampai pemberitahuan lebih lanjut.
sumber