Ubuntu 14.04
Saya tidak mengerti perilaku yang saya lihat dengan menyiapkan crontab untuk akun layanan (tanpa login) (bernama curator
).
Ketika saya login sebagai root, inilah yang saya dapatkan:
# crontab -u curator -l
The user curator cannot use this program (crontab)
Tapi, ketika saya beralih ke akun pengguna, itu berfungsi dengan baik:
# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator
Ada /etc/cron.allow
file kosong dan tidak ada /etc/cron.deny
file di sistem. Menurut man crontab
:
Jika file /etc/cron.allow ada, maka Anda harus terdaftar (satu pengguna per baris) untuk dapat menggunakan perintah ini. Jika file /etc/cron.allow tidak ada tetapi file /etc/cron.deny ada, maka Anda tidak boleh terdaftar dalam file /etc/cron.deny untuk menggunakan perintah ini.
Saya mengerti kesalahan ketika saya menjalankan perintah pertama, tetapi mengapa itu memungkinkan saya untuk menjalankan crontab
ketika saya secara eksplisit beralih ke akun pengguna?
Menambahkan pengguna untuk /etc/cron.allow
membuat kedua perintah berfungsi dengan baik.
crontab -e
(sebagai kurator pengguna)?cron.allow
file kosong , keduanyaroot
crontab -u vagrant -l
dancrontab -l
sebagaivagrant
hasilnya dalam sebuahare not allowed to use this program
pesan (yang berbeda dari pesan yang Anda kutip).Jawaban:
Saya memeriksa sumber-sumber crontab dan menemukan bahwa jika pengguna tidak dapat membuka
/etc/cron.allow
(misalnya setelahchmod 0 /etc/cron.allow
), crontab berpikir bahwa pengguna diizinkan untuk menggunakannya (seolah-olahcron.allow
tidak ada).Tetapi root dapat membaca file apa pun, jadi kode pengecekan crontab berfungsi seperti yang diharapkan. Jadi saya sarankan Anda untuk memeriksa izin pertama pada
/etc/cron.allow
, dan mungkin log audit SELinux / AppArmor.sumber
chmod -r /etc/cron.allow
memang menyebabkan perilaku yang dijelaskan pada sistem Ubuntu 14.04 saya/etc/cron.allow
Izin saya adalah600
, setelah mengubahnya ke644
keduanyaroot
dancurator
melihatnot allowed to use this program (crontab)
pesan. Kemudian, setelah menambahkancurator
untuk/etc/cron.allow
kedua bisa menggunakan crontab kurator.