cronジョブの実行時のアクセス許可は何ですか?


15

cronジョブはどのような特権で実行されますか?

そのことはよくわからない。それを経由して追加したユーザーと同じ権限がありますcrontab -eか?


「crontab -eを介して追加したユーザーと同じ権限を持っていますか?」はい。または技術的には、crontabが入っているユーザー。-
ケビン

回答:


18

次のようにシステムcrontabエントリでユーザーを指定できます。

# For details see man 4 crontabs

# Example of job definition:
.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name  command to be executed

6番目の引数にはユーザー名を指定できます。さらに、スクリプトを/etc/cron.dディレクトリに配置できます。スクリプトは、上記のcrontabエントリと同じ形式を取ります。例:

# /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root

## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamav' as soon as possible
0  */3 * * * root /usr/share/clamav/freshclam-sleep

これらのディレクトリにスクリプトを置くことができますが、それらはルートとして実行されることを意図しています:

  • cron.daily
  • cron.hourly
  • cron.weekly
  • cron.monthly

最後に、特定のユーザーとしてこのコマンドを実行することにより、ユーザーベースのcrontabエントリを作成できます。

$ crontab -e

これらのエントリは、このディレクトリのユーザーと同じ名前のファイルに保存されます/var/spool/cron/

$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun  6 06:43 saml

4

はい、ただし、システムのcrontab(/ etc / crontabを編集)に手動で追加されたジョブは、別のユーザーを指定しない限り、絶対アクセス許可(つまり、rootとして実行)で実行されます。


非rootユーザーをどのように指定しますか?
ジム

1
crontab -eを通常のユーザーとして通常使用するだけで、そのユーザーとして実行されます。:)
ハネフムバラク

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