Pengguna x tidak dapat menggunakan program ini (crontab)

9

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.allowfile kosong dan tidak ada /etc/cron.denyfile 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 crontabketika saya secara eksplisit beralih ke akun pengguna?

Menambahkan pengguna untuk /etc/cron.allowmembuat kedua perintah berfungsi dengan baik.

Adam Michalik
sumber
1
Itu hanya mengatakan bahwa tidak ada crontab. Apa yang akan terjadi jika Anda mencoba membuatnya via crontab -e(sebagai kurator pengguna)?
Fiximan
1
Tidak dapat mereproduksi masalah ini pada gambar gelandangan trusty64; dengan cron.allowfile kosong , keduanya root crontab -u vagrant -ldan crontab -lsebagai vagranthasilnya dalam sebuah are not allowed to use this programpesan (yang berbeda dari pesan yang Anda kutip).
thrig

Jawaban:

11

Saya memeriksa sumber-sumber crontab dan menemukan bahwa jika pengguna tidak dapat membuka /etc/cron.allow(misalnya setelah chmod 0 /etc/cron.allow), crontab berpikir bahwa pengguna diizinkan untuk menggunakannya (seolah-olah cron.allowtidak 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.

Michael Zarubin
sumber
Ini sepertinya - saya telah memverifikasi bahwa chmod -r /etc/cron.allowmemang menyebabkan perilaku yang dijelaskan pada sistem Ubuntu 14.04 saya
steeldriver
Temukan! /etc/cron.allowIzin saya adalah 600, setelah mengubahnya ke 644keduanya rootdan curatormelihat not allowed to use this program (crontab)pesan. Kemudian, setelah menambahkan curatoruntuk /etc/cron.allowkedua bisa menggunakan crontab kurator.
Adam Michalik