使用自动登录运行程序不像在 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
用于跳过第二次登录验证。这对于 root 来说尤其不起作用,而且在 Linux 下似乎也不能很好地工作。

你正在做的--login-options "-f root"事情显然是不应该起作用的。

所以我认为应该是 root shell 的东西并不是 root shell。您可以添加whoami到 /etc/profile 来确定。

答案2

使用 sudo 运行解决了我的问题。 “/usr/bin/sudo /root/myapp” 当我自动登录时我是 root,但有些不同我仍然不知道。

我的问题解决了什么。感谢你们。

相关内容