solaris 8 init 脚本要求输入用户密码

solaris 8 init 脚本要求输入用户密码

我在 Solaris 8 初始化阶段的 下有一个脚本,/etc/rc3.d其中包含su - username -c "a command",但我通过启动消息看到 su 命令要求输入用户密码。结果是启动继续进行(没有控制台向 su 提供用户密码)并且脚本失败。

Solaris 10 上的相同脚本可在启动期间执行所有操作。

奇怪的是,以 root 身份运行的脚本要求输入普通用户密码。

答案1

除非您有一些非常奇怪的自定义 PAM 模块,否则以 root 身份运行时“su”绝对不会提示输入密码。通过使用su - user -c ...破折号 (-) 而不是使用su user -c ...,您的启动脚本正在处理它们的启动“点”文件。可能是它们的点文件中的某些内容正在调用另一个文件su,或者调用的命令实际上正在执行另一个su

与此相关的是,对于许多脚本来说,添加一行文字会很有帮助exec < /dev/null。这将阻止任何尝试读取大多数内容的标准输入。su但这可能对启动脚本没有帮助,因为除非我记错了,否则 Solaris 8su将抓取终端而不是标准输入。

检查点文件。并尝试从中删除“-”,su以便不处理它们。如果您有任何设置需要在交互使用和引导脚本使用时可见,请考虑将这些设置放入所谓的环境文件中。然后,点文件和引导脚本都可以获取环境文件。环境文件中的设置可能很少更改,并且您的启动过程不太可能受到某些人篡改点文件的影响。

相关内容