Problém
Neprivilegovaný uživatel nemůže upravit svůj soubor crontab pomocí příkazu „crontab -e“
$ crontab -e no crontab for oracle - using an empty one /tmp/crontab.Lm34gsJV: Permission denied $
Řešení
To se může stát hlavně kvůli špatným oprávněním v adresáři /tmp. Když se uživatel pokusí upravit crontab pomocí příkazu „crontab -e“, v adresáři /tmp se vytvoří dočasný soubor crontab, který se přepíše do skutečného souboru crontab, když uživatel uloží změny. Tuto chybu mohou způsobit také nesprávná oprávnění vlastníka skupiny (root) na /. Chcete-li problém vyřešit, zkontrolujte na serveru 2 věci.
Zkontrolujte oprávnění /tmp
1. Ujistěte se, že oprávnění adresáře /tmp jsou „drwxrwxrwt. ”
# ls -ld /tmp/ drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/
Jak můžete vidět ve výstupu výše, jedná se o nesprávná oprávnění.
2. Obnovte správná oprávnění takto:
# chmod 1777 /tmp
Adresář musí umožňovat světová oprávnění ke čtení, zápisu a spouštění. „Sticky“ bit je také nastaven tak, aby jej mohl odstranit pouze vlastník souboru; jinak by kterýkoli uživatel mohl smazat libovolný soubor v adresáři.
3. Zkuste vytvořit nový soubor v /tmp/ pro ověření:
# touch /tmp/test_file
Ověřte oprávnění SELinux
1. Můžete také zkontrolovat, zda je v systému povolen SELinux. SELinux v některých případech, pokud je nastaven nesprávně, může způsobit problém. Chcete-li ověřit, zda je povolen SELinux:
# getenforce Enforcing
2. Dovolte nám dočasně deaktivovat SELinux, abychom zkontrolovali, zda je problém vyřešen.
# setenforce 0
3. Ověřte nastavení úpravou uživatelského crontab.
# crontab -e
4. Pokud to funguje dobře, možná budete chtít povolit zpět SELinux a použít „restorecon ” pro obnovení správného oprávnění adresáře /tmp.
# setenforce 1 # restorecon -v /tmp