再起動後、システムファイルの権限設定をリセットできません。起動時に権限を希望の方法でリセットするbashスクリプトを実行するようにsystemdサービスとrc-localサービスを設定しています。
systemdおよびrc-localサービスを正常に設定しました/etc/rc.local
。
私のスクリプトrc.local
は次のとおりです。
#! /bin/bash
cd /dev/
sudo chmod a+rw vmnet0
sudo chmod a+rw vmnet1
再起動後もこの事実を発見しましたが、/dev/vmnet0
まだ/dev/vmnet1
間違った権限がありました。実行したときとファイルが見えないと文句を言うことがsystemctl status rc-local
わかりました。返される具体的な情報は次のとおりです。chmod
/dev/vmnet0
/dev/vmnet1
pam_unix(sudo:session) session opened for user root by (did=0)
chmod: cannot access 'vmnet0': no such file or directory
pam_unix(sudo:session) session closed for user root
root : TTY=unknown ; PWD=/dev ; USER=root ; COMMAND=/usr/bin/chmod a+rw vmnet1
pam_unix(sudo:session): session opened for user root by (uid=0)
chmod: cannot access 'vmnet1': No such file or directory
pam_unix(sudo:session): session closed for user root
rc-local.service:c Control process existed, code=exited, status=1/FAILURE
rc-local.service: Failed with result 'exit-code'.
Failed to start /etc/rc.local Compatibility.
/dev/vmnet0
ルートとして実行されているスクリプトがファイルを表示できない理由を把握しようとして頭を傷つけます/dev/vmnet1
。どんなアイデアがありますか?
答え1
1.) rc-local.service などのシステム単位では sudo を使用する必要はなく、すべてのコマンドはすでに root として実行されます。実際、合理的な理由がない限り、システムサービスでsudoを使用しないでください。
2.)rc-local.serviceは、これらのデバイスファイルを生成するドライバサービスがロードされる前(または少なくとも同時に)実行される可能性が高いです。ソートの問題です。新しいシステムサービスユニットを作成して起動することをお勧めしますAfter=vmware-networks.service
(ドライバをロードするVMwareサービスの名前であると仮定)。