L'utente x non può usare questo programma (crontab)


9

Ubuntu 14.04

Non capisco il comportamento che sto riscontrando con l'impostazione di crontab per un account di servizio (senza accesso) (denominato curator).

Quando ho effettuato l'accesso come root, questo è quello che ottengo:

# crontab -u curator -l
The user curator cannot use this program (crontab)

Ma, quando passo all'account dell'utente, funziona bene:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

C'è un /etc/cron.allowfile vuoto e nessun /etc/cron.denyfile sul sistema. Secondo man crontab:

Se esiste il file /etc/cron.allow, è necessario essere elencati (un utente per riga) al fine di poter utilizzare questo comando. Se il file /etc/cron.allow non esiste ma esiste il file /etc/cron.deny, non è necessario essere elencati nel file /etc/cron.deny per utilizzare questo comando.

Capisco l'errore quando eseguo il primo comando, ma perché mi consente di eseguire crontabquando passo esplicitamente all'account dell'utente?

Aggiungendo l'utente a /etc/cron.allowentrambi i comandi funzionano correttamente.


1
Dice solo che non esiste crontab. Cosa succederà se provi a crearne uno tramite crontab -e(come curatore dell'utente)?
Fiximan,

1
Impossibile riprodurre questo problema sull'immagine del vagabondo trusty64; con un cron.allowfile vuoto , sia il root crontab -u vagrant -lche crontab -lcome vagrantrisultato in un are not allowed to use this programmessaggio (che è diverso dal messaggio che citi).
thrig

Risposte:


11

Ho controllato le fonti di crontab e ho scoperto che se l'utente non è in grado di aprire /etc/cron.allow(per esempio dopo chmod 0 /etc/cron.allow), crontab pensa che l'utente sia autorizzato a usarlo (come se cron.allownon esistesse).

Ma root può leggere qualsiasi file, quindi il codice di controllo crontab funziona come previsto. Quindi ti consiglio di controllare prima i permessi /etc/cron.allow, e forse i log di controllo SELinux / AppArmor.


Questo sembra essere - ho verificato che chmod -r /etc/cron.alloweffettivamente causa il comportamento descritto sul mio sistema Ubuntu 14.04
steeldriver

Spot on! Le mie /etc/cron.allowautorizzazioni sono state 600, dopo averlo modificato in 644entrambi roote curatorho visto il not allowed to use this program (crontab)messaggio. Quindi, dopo aver aggiunto curatorad /etc/cron.allowentrambi, è possibile utilizzare il crontab del curatore.
Adam Michalik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.