コマンド `crontab -e`の「パーミッションが拒否されました」の原因は何ですか?


19

役立つと思われる出力を次に示します。

nick@home-sv-1:~$ crontab -e
/var/spool/cron/crontabs/nick: Permission denied

nick@home-sv-1:~$ echo $EDITOR
emacs

nick@home-sv-1:~$ ls /var/spool/cron/crontabs
ls: cannot open directory /var/spool/cron/crontabs: Permission denied

nick@home-sv-1:~$ sudo ls -al /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab 4096 2009-10-25 20:45 .
drwxr-xr-x 3 root root    4096 2009-05-18 01:19 ..
-rw------- 1 root root     612 2009-10-25 01:20 root

問題:

Crontabにはsetguidがなく、crontabグループに属していません。

home-sv-1:~# ls -al /usr/bin/crontab
-rwxr-xr-x 1 root root 32048 2009-08-30 03:34 /usr/bin/crontab

解決:

ルートとして...

home-sv-1:~# chown root.crontab /usr/bin/crontab
home-sv-1:~# chmod g+s /usr/bin/crontab

home-sv-1:~# ls -al /usr/bin/crontab
-rwxr-sr-x 1 root crontab 32048 2009-08-30 03:34 /usr/bin/crontab

回答:


10

/usr/bin/crontab持っているsetgid権限セットを?

-rwxr-sr-x 1ルートcrontab 32K 2008-09-28 14:07 / usr / bin / crontab *

そうでない場合はchmod g+s(それが必要な場合はそのchown に)


編集:これはVixie Cron(ほとんどのディストリビューションで使用)にのみ適用されることに注意してください。他のデーモン(などdcron)は異なる許可(setuid)を使用する場合があります。


15

また、/ var / spool / cron / crontabsで許可をチェックアウトする価値があります。

ls -al /var/spool/cron/crontabs 

私の場合、これを行うと、実際にcrontabに割り当てられたユーザーが「whoopsie」であることがわかりました。これは、ユーザーの設定に何らかのエラーがあったことを意味します。

実行しています...

chown <username> /var/spool/cron/crontabs/<username>

これを完全に修正しました:)


1
これでうまくいきましたが、問題はユーザーが実際の/ var / spool / cron / crontabsディレクトリにアクセスできないため、<username>ファイルを作成できなかったことです。それもチェックする価値があります。
マルコ14年

2

/etc/cron.allowおよび/etc/cron.denyファイルを確認します。これらのファイルが存在する場合は、ユーザー名が/etc/cron.allowにあることを確認してください。


1
これは、別のエラーメッセージが表示されるでしょう- 「あなた($ USER)は、このプログラム(crontabファイル)を使用することが許可されていません」
grawity

1

同じ問題がありました。このようにして解決しました。

sudo crontab -u yourUser -e

それがあなたのお役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.