首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将mkinitcpio busybox灰变成源/etc/profile?

如何将mkinitcpio busybox灰变成源/etc/profile?
EN

Unix & Linux用户
提问于 2017-12-24 15:36:23
回答 1查看 972关注 0票数 1

Arch Linux /usr/lib/initcpio/busybox由包mkinitcpio-busybox 1.27.2-1拥有,是配置较低的功能,例如,没有设置CONFIG_FEATURE_USE_INITTAB。

在一个包含busybox的自定义initramfs中,我设法获得了执行源/etc/profile工作的ssh网络登录。另外,在VGA监视器上还可以看到一个灰壳提示。

然而,"vga“外壳并不是/etc/profile的源。问:登录壳和非登录壳的区别?让我觉得这个shell不是登录shell。该shell由/init启动:

代码语言:javascript
复制
exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'

回归:

  • exec setsid sh -c 'exec sh -i </dev/tty1 >/dev/tty1 2>&1'
  • exec setsid sh -c 'exec sh - </dev/tty1 >/dev/tty1 2>&1'
  • exec setsid sh -c 'exec -sh </dev/tty1 >/dev/tty1 2>&1'

如何使这个busybox ash shell成为源/etc/profile和/或使其成为(自动)登录shell?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-12-24 18:02:59

通常,如果使用以-开头的命令名调用shell,则shell充当登录shell。exec -sh的工作原理是在路径中有一个名为-sh的可执行文件。BusyBox ash还支持-l选项,因此您可以运行sh -l

当您登录时,login程序(或sshd,或任何正在处理登录的内容)负责使用命令名中的前导-运行用户的shell (命令名不必与可执行文件的名称相同,这只是login故意违反的一个非常常见的约定)。在这里,“无论什么是处理登录”是你的迷你脚本,所以你必须照顾它。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/412821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档