自動ログインを使用してプログラムを実行すると、bashで実行しているようには機能しません。

自動ログインを使用してプログラムを実行すると、bashで実行しているようには機能しません。

cephを自動的にインストールするプログラムを作成しました。プログラムを手動で実行すると正常に動作しますが、getty(以下のconf)を使用して自動的にログインし、このように/etc/profile "./myapp"の最後の行でプログラムを実行すると、次の承認を受けます。エラー。

** ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.XSlAG1: (13) Permission denied

プログラム実行時に問題が発生するceph-disk activate

私の問題は何ですか?

/etc/systemd/system/getty\@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --skip-login --login-options "-f root" %I 38400 linux

答え1

man 1 login説明する:

-f は、
2 番目のログイン確認をスキップするために使用されます。これは特にrootでは動作せず、Linuxでも正しく動作しないようです。

あなたがやっていることは--login-options "-f root"明らかにうまくいきません。

だから私がルートシェルでなければならないと思ったのはルートシェルではありません。 /etc/profileに追加することでwhoami確認できます。

答え2

sudoで実行すると問題が解決しました。 "/usr/bin/sudo /root/myapp" 自動的にログインするとルートになりますが、まだ分からないことがあります。

私の問題は何を解決しましたか?ありがとうございます。

関連情報