crontabで次のスクリプトを実行しています。
@reboot sh /home/root1/ssh.sh
このファイルには、ssh.sh
次の内容のみが含まれています。
sudo systemctl start ssh.service
ただし、デバイスが起動してもSSHサービスは実行されません。
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; disabled; vendor preset:>
Active: inactive (dead)
Docs: man:sshd(8)
man:sshd_config(5)
lines 1-5/5 (END)
出力は次のとおりですcat /var/log/cron.log
。
Dec 9 09:40:34 ubuntu cron[843]: (CRON) INFO (pidfile fd = 3)
Dec 9 09:40:34 ubuntu cron[843]: (CRON) INFO (Running @reboot jobs)
Dec 9 09:40:34 ubuntu CRON[915]: (root1) CMD (sh /home/root1/ssh.sh)
Dec 9 09:41:04 ubuntu systemd-timesyncd[709]: Initial synchronization to time server 91.189.89.198:123 (ntp.ubuntu.com).
Dec 9 09:44:56 ubuntu crontab[3018]: (root1) LIST (root1)
以下で出力を見つけますsudo -l
。
root1@ubuntu:~$ sudo -l
Matching Defaults entries for root1 on ubuntu: <br/>
env_reset, mail_badpass,<br/> secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin <br/>
User root1 may run the following commands on ubuntu:<br/>
(ALL : ALL) NOPASSWD: /home/root1/ssh.sh <br/>
(ALL : ALL) ALL
sudoers で "root1 ALL=(ALL:ALL) NOPASSWD:ALL" を使用すると、crontab は再起動時にシェルスクリプトを実行します。
ただし、「root1(ALL:ALL)NOPASSWD:/home/root1/ssh.sh」を使用すると、再起動時にシェルスクリプトが機能せず、手動で実行してもパスワードの入力を求められます。
ベストアンサー1
それを設定ルートのクローンタブユーザーcrontabの代わりに:
$ sudo crontab -e
エディタが開いたら、コマンドを追加します。コマンドを@reboot
入力しないでください。sudo
crontab
メモ: crontab
一部を使用している限り、rootでジョブを実行するための特別なセキュリティリスクはありません。常識。ここで最も重要なのは、実行中のスクリプトへの書き込みアクセスをrootユーザーに制限する必要があることです。これにより、「一般」ユーザーがroot権限で実行されるスクリプトを変更するのを防ぎます。