Cron

root + crontab : 權限被拒絕

  • October 27, 2014

我正在使用 Debian 6,所有更新檔都已修補,但是當我嘗試以 root 身份訪問 crontab 時,我只是獲得了一個權限被拒絕:

root@server:~# crontab -e
-bash: /usr/bin/crontab: Permission denied

請注意,這不是作為使用者,而是作為root

如果 root 無法訪問 crontab,我什至不知道如何解決這個問題。

有任何想法嗎?


編輯:答案是正確的

a)是的,有惡作劇(至少這是我的懷疑)

b)我對 crontab 的權限很糟糕:

root@server:~# ls -lha /usr/bin/crontab
---------- 1 root crontab 30K Dec 19  2010 /usr/bin/crontab

所以嘗試 chmod 答案:

root@server:~# chmod 2755 /usr/bin/crontab
chmod: changing permissions of '/usr/bin/crontab': Operation not permitted`

並重新安裝軟體包:

root@server:~# apt-get install --reinstall cron
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 93.2 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ftp.debian.org/debian/ squeeze/main cron i386 3.0pl1-116 [93.2 kB]
Fetched 93.2 kB in 0s (164 kB/s)
(Reading database ... 86601 files and directories currently installed.)
Preparing to replace cron 3.0pl1-116 (using .../cron_3.0pl1-116_i386.deb) ...
Stopping periodic command scheduler: cron.
Unpacking replacement cron ...
dpkg: error processing /var/cache/apt/archives/cron_3.0pl1-116_i386.deb (--unpack):
unable to make backup link of `./usr/bin/crontab' before installing new version: Operation not permitted configured to not write apport reports
chown: changing ownership of `root': Operation not permitted
chmod: changing permissions of `root': Operation not permitted
Starting periodic command scheduler: cron.
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/cron_3.0pl1-116_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

這是否需要現在完全重新安裝系統才能恢復並執行?

編輯:這不是一個重複的問題-我懷疑伺服器受到了破壞,但我不會在沒有證據的情況下將實時伺服器展平並重建它。

我最初的問題是關於作為 root 使用者被拒絕的權限,因為我確信這是不可能的,我可以向你保證,我確實首先搜尋了這個問題。

多虧了這裡的樂於助人的人,我現在對權限有了更多的了解,如果這發生在其他人身上,他們也將能夠縮小發生的範圍。

好的,您已經找到了部分答案,在 /usr/bin/crontab 上找到了權限。

現在 chmod 說它不能修改這些權限。嘗試lsattr /usr/bin/crontab檢查文件屬性是否被弄亂,chattr -i /usr/bin/crontab如果確實是問題,則修復它。

如果這是犯規,那麼我的猜測是有人試圖阻止您在 crontab 數據文件中查找和修復某些內容。這些通常在 /var/spool/cron/crontabs/ 中。如果有更多權限或文件屬性阻止您的路徑,我不會感到驚訝,但是您想進入並聰明地審核這些文件。您可能還想查找文件屬性設置奇怪的其他文件(特別是不可變位)。

我確信系統有可能再次啟動並執行,但很難說這樣做會涉及多少,這取決於製造了多少惡作劇。您也可能永遠不會知道您是否真的消除了所有的惡作劇。完全重新安裝或恢復備份可能是個好主意。

我注意到,在我手頭最新的(比如現在,使用 LTS)debian 6 系統上,我的 /usr/bin/crontab 是 35k,而不是 30k。所以考慮該文件的內容可疑,不要執行它。複製一份,然後從分發版本中替換它。

引用自:https://serverfault.com/questions/639332