回答:
次のようにシステム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
これらのディレクトリにスクリプトを置くことができますが、それらはルートとして実行されることを意図しています:
最後に、特定のユーザーとしてこのコマンドを実行することにより、ユーザーベースのcrontabエントリを作成できます。
$ crontab -e
これらのエントリは、このディレクトリのユーザーと同じ名前のファイルに保存されます/var/spool/cron/
:
$ sudo ls -l /var/spool/cron/
-rw------- 1 saml root 0 Jun 6 06:43 saml
はい、ただし、システムのcrontab(/ etc / crontabを編集)に手動で追加されたジョブは、別のユーザーを指定しない限り、絶対アクセス許可(つまり、rootとして実行)で実行されます。
cronjob
パラメーターを指定するだけです