我试图了解 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
Run Code Online (Sandbox Code Playgroud)
我从 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 ..
+ …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个脚本来解压和重新打包 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}"
Run Code Online (Sandbox Code Playgroud)
创建的文件系统看起来不错。我已经区分了原始和自定义 ISO 的 …
FreeBSD jail 联机帮助页有关于构建 jail 分发树的说明:
D=/here/is/the/jail
cd /usr/src
mkdir -p $D
make world DESTDIR=$D
make distribution DESTDIR=$D
Run Code Online (Sandbox Code Playgroud)
是否可以使用非 root 帐户执行此操作?现在,使用普通用户帐户,我得到:
$ make world DESTDIR=/jails/base/
[Creating objdir /usr/obj/usr/src/amd64.amd64...]
mkdir: /usr/obj/usr: Permission denied
make: "/usr/src/share/mk/auto.obj.mk" line 69: could not use /usr/obj/usr/src/amd64.amd64: .OBJDIR=/usr/src
Run Code Online (Sandbox Code Playgroud)
如果我正在构建一个 jails 目录,我不明白为什么需要 root 权限。是否可以?
我在一个极简的 FreeBSD 系统上,需要使用内置的vi编辑器来编辑文件。具体来说,这不是 vim、vim-tiny 或其他替代品。它是“4BSD bug-for-bug compatible”nvi 编辑器。
它几乎按预期工作。该手册页说,控制-T和控制-d将缩进/取消缩进根据shiftwidth。Control-T 有效,但 control-D 无效。它实际上将 ^D 字符输入到文件中。
如果我确实让 vim 进入系统,control-T 和 control-D 会按预期工作,所以这不是终端误解密钥的问题。Vi 本身并不解释 control-D。
有人遇到这个吗?一个解决方案?使用 vim 不是一种选择。
我想设置一个小型服务器安装,并做了安装程序允许我做的最小的Debian 9.6 安装。
此安装包含 Python2、Python3、Perl、蓝牙、Wi-Fi、curl、wget 等内容。
我对辩论这些是否应该成为最小安装的一部分不感兴趣。
相反,Debian 基本安装的哪些部分需要使用这些?例如,在基本安装中什么需要 Python2?基本安装中需要什么 Python3?什么需要蓝牙?我如何找出这些?