root + crontab : 權限被拒絕
我正在使用 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。所以考慮該文件的內容可疑,不要執行它。複製一份,然後從分發版本中替換它。