我正在寻找一个小型服务器安装,并安装了安装程序允许我做的最简单的Debian 9.6 安装。
此安装包含 Python2、Python3、Perl、蓝牙、Wi-Fi、curl、wget 等。
我对争论这些是否应该成为最小安装的一部分不感兴趣。
相反,Debian 基础安装的哪些部分需要使用这些?例如,在基本安装中需要 Python2 什么?基本安装中需要 Python3 什么?什么需要蓝牙?我如何找出这些?
我正在寻找一个小型服务器安装,并安装了安装程序允许我做的最简单的Debian 9.6 安装。
此安装包含 Python2、Python3、Perl、蓝牙、Wi-Fi、curl、wget 等。
我对争论这些是否应该成为最小安装的一部分不感兴趣。
相反,Debian 基础安装的哪些部分需要使用这些?例如,在基本安装中需要 Python2 什么?基本安装中需要 Python3 什么?什么需要蓝牙?我如何找出这些?
我试图了解 FreeBSD ACL 和 Linux ACL 之间的行为差异。特别是默认 ACL 的继承机制。
我在 Debian 9.6 和 FreeBSD 12 上都使用了以下内容:
$ cat test_acl.sh
#!/bin/sh
set -xe
mkdir storage
setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
touch outside
cd storage
touch inside
cd ..
ls -ld outside storage storage/inside
getfacl -d storage
getfacl storage
getfacl outside
getfacl storage/inside
umask
我从 Debian 9.6 得到以下输出:
$ ./test_acl.sh
+ mkdir storage
+ setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
+ touch outside
+ cd storage
+ touch inside
+ cd ..
+ ls -ld outside storage storage/inside
-rw-r--r-- 1 aaa aaa 0 Dec 28 11:16 outside
drwxr-xr-x+ 2 aaa aaa 4096 Dec 28 11:16 storage
-rw-rw----+ 1 aaa aaa 0 Dec 28 11:16 storage/inside
+ getfacl -d storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::rwx
mask::rwx
other::---
+ getfacl storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---
+ getfacl outside
# file: outside
# owner: aaa
# group: aaa
user::rw-
group::r--
other::r--
+ getfacl storage/inside
# file: storage/inside
# owner: aaa
# group: aaa
user::rw-
group::rwx #effective:rw-
mask::rw-
other::---
+ umask
0022
请注意outside
和inside
文件具有不同的权限。特别是,outside
文件 has -rw-r--r--
,这是该用户的默认设置,inside
文件 has ,尊重我分配目录-rw-rw----
的默认 ACL 。storage
FreeBSD 12 上相同脚本的输出:
$ ./test_acl.sh
+ mkdir storage
+ setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage
+ touch outside
+ cd storage
+ touch inside
+ cd ..
+ ls -ld outside storage storage/inside
-rw-r--r-- 1 aaa aaa 0 Dec 28 03:16 outside
drwxr-xr-x 2 aaa aaa 512 Dec 28 03:16 storage
-rw-r-----+ 1 aaa aaa 0 Dec 28 03:16 storage/inside
+ getfacl -d storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::rwx
mask::rwx
other::---
+ getfacl storage
# file: storage
# owner: aaa
# group: aaa
user::rwx
group::r-x
other::r-x
+ getfacl outside
# file: outside
# owner: aaa
# group: aaa
user::rw-
group::r--
other::r--
+ getfacl storage/inside
# file: storage/inside
# owner: aaa
# group: aaa
user::rw-
group::rwx # effective: r--
mask::r--
other::---
+ umask
0022
(注意 Debiangetfacl
也会显示默认的 ACL,即使在-d
FreeBSD 不使用 where 时也不使用,但我认为实际的 ACL 并没有什么storage
不同。)
这里outside
和inside
文件也有不同的权限,但是inside
文件没有Debian版本的组写权限,可能是因为Debian中的掩码保留了,w
而FreeBSD中的掩码丢失了w
.
为什么 FreeBSD 失去了w
面具,但 Debian 保留了它?
我正在尝试编写一个脚本来解压缩并重新打包 FreeBSD ISO,以便我可以使用它进行安装。目标是无人值守的安装。
我已经编写了以下脚本,但它不起作用。虽然原始 ISO 将在 UEFI 模式下在 VirtualBox 中启动,但新创建的 ISO 不会。
#!/bin/sh
inst_cfg="$1"
src_iso="$2"
dst_iso="$3"
iso_mnt=$(mktemp -d /tmp/freebsd-mnt-XXXXXX)
iso_wrk=$(mktemp -d /tmp/freebsd-wrk-XXXXXX)
vol_id=$(isoinfo -d -i "${src_iso}" | sed -n -e 's/^Volume id: \(.*\)$/\1/p')
md_name=$(mdconfig -a -t vnode -f "${src_iso}")
mount -t cd9660 "/dev/${md_name}" "${iso_mnt}"
cp -a -v "${iso_mnt}/" "${iso_wrk}"
cp "${inst_cfg}" "${iso_wrk}/etc/installerconfig"
mkisofs -J -R -no-emul-boot -V "${vol_id}" -b boot/cdboot -o "${dst_iso}" "${iso_wrk}"
umount "${iso_mnt}" # cd9660
mdconfig -d -u "${md_name}"
rm -rf "${iso_mnt}"
rm -rf "${iso_wrk}"
创建的文件系统看起来不错。我已经区分了原始 ISO 和自定义 ISO 的文件,唯一的区别是installerconfig
添加的文件和boot.catalog
(我理解mkisofs
添加,但是为什么?这可能是问题吗?)
我尝试了各种选项组合mkisofs
,包括-R -U
, -L -D -R
, -J -R
,但没有任何区别。
此外,有趣的是, FreeBSD 手册有以下评论:
因此,如果 /tmp/myboot 拥有一个可引导的 FreeBSD 系统,其引导映像位于 /tmp/myboot/boot/cdboot,则此命令将生成 /tmp/bootable.iso:
mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
这不会生成在 UEFI 模式下在 VirtualBox 下启动的 ISO。
有谁知道出了什么问题?
我在极简主义的 FreeBSD 系统上,需要使用内置的vi编辑器来编辑文件。具体来说,这不是 vim、vim-tiny 或其他替代品。它是“4BSD bug-for-bug 兼容”nvi 编辑器。
它几乎按预期工作。手册页说 control-T 和 control-D 将根据shiftwidth
. Control-T 有效,但 control-D 无效。它实际上将 ^D 字符输入到文件中。
如果我确实将 vim 安装到系统上,control-T 和 control-D 会按预期工作,所以这不是终端错误解释密钥的问题。Vi 本身不解释 control-D。
有人遇到这个吗?一个解决方案?使用 vim 不是一种选择。