我试图在基于 runit 的 linux 系统中运行 agetty,但我有以下问题
sh: cannot set terminal process group (136) Inappropriate ioctl for device
sh: no job control in this shell
Run Code Online (Sandbox Code Playgroud)
我对这个错误一无所知,你有什么想法吗
运行 agetty 的脚本是
#!/bin/sh
exec /sbin/agetty 38400 tty1 linux --noclear
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很好。
我想以普通(非 root)用户身份构建一个 tar 文件,其中包含一些准备好的二进制文件和这样的配置文件;
etc/binaries.conf
usr/bin/binary1
usr/bin/binary2
Run Code Online (Sandbox Code Playgroud)
这意味着要提取到/
目录下的文件系统中。
像传统的软件包 .deb、.rpm 等,但我需要“独立于包管理器”。所以可能我只会有一个 .tar 文件(也许一些 gzip、bzip、lzip 应该添加到混合中,但那是在外面)。
问题/问题
我在这里的问题是,我不希望建立这种焦油作为根用户,我想知道是否有建立这种焦油的方式常规(非root用户),然后,当.tar文件分发到机器上,真正的root
用户提取这些二进制文件,它们将作为root用户或提取二进制文件的用户拥有的文件安装?
例子
因为现在,当我以普通(非 root)用户身份创建 .tar 文件时
$ tar cf dist.tar dist/
Run Code Online (Sandbox Code Playgroud)
然后以root用户身份提取 .tar
# tar xf dist.tar -C /
Run Code Online (Sandbox Code Playgroud)
我看到二进制文件和配置文件以普通用户为所有者,而不是 root 用户。
$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 user user 30232 jun 20 19:06 /usr/bin/binary1
Run Code Online (Sandbox Code Playgroud)
我想拥有
$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 root root 30232 jun …
Run Code Online (Sandbox Code Playgroud) init-script ×1
linux ×1
ownership ×1
packaging ×1
permissions ×1
root ×1
runit ×1
tar ×1
tty ×1