小编tob*_*ora的帖子

在 Nixos 上运行非 nixos 可执行文件的不同方法

在 NixOs 上运行非 nixos 可执行文件有哪些不同的方法?我也想看看手动方法。

executable nixos

29
推荐指数
1
解决办法
6436
查看次数

如何在 nix 中打包我的软件或为 nixpkgs 编写我自己的包派生

如何编写一个简单的推导来打包 nix 程序以及如何创建 PR 将其包含在 nixpkgs 中?

(我写这篇文章是因为我找不到简单的解释)

packaging nixos nix

16
推荐指数
1
解决办法
1万
查看次数

从非 nixos 操作系统将不同的 configuration.nix 文件运行到虚拟机中

在令人惊叹的nixos 中,可以启动一个轻量级容器,该容器将运行一个configuration.nix文件与主机配置不同的系统,首先使用以下命令进行编译:

$ nixos-rebuild build-vm -I nixos-config=./configuration.nix
Run Code Online (Sandbox Code Playgroud)

并通过以下方式运行:

$ ./result/bin/run-*-vm
Run Code Online (Sandbox Code Playgroud)

但是,第一个命令无法在未安装 nixos 的操作系统上运行,例如 debian + nixpkgs,因为nixos-rebuild不存在。

我如何仍然build-vm在非 nixos 系统中使用?

virtual-machine container nixos

6
推荐指数
1
解决办法
671
查看次数

网络管理器用户端调度程序脚本

此答案提供了在 NetworkManager 建立连接时运行脚本的解决方案。但是,我想以非 root 用户身份运行我的脚本(自动连接到某些特殊类型的热点),因为它很脏,而且我敢打赌不可能在内部进行代码注入。你知道一种~/.config/NetworkManager/dispatcher.d/存在吗?

谢谢!

networkmanager

5
推荐指数
1
解决办法
1008
查看次数

Luks,ssh 解锁,奇怪的行为,无效的authorized_keys 文件

我不知道为什么,但我无法在我的 debian 稳定版上按照这些说明进行操作。安装 dropbear 和 busybox 后,我尝试运行initramfs -u. 我在这里收到一个奇怪的警告:

# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.0-4-amd64
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
Run Code Online (Sandbox Code Playgroud)

然后,我尝试查看文件/etc/initramfs-tools/root/.ssh/id_rsa,但rootinitramfs 文件夹中没有文件夹。我也试着跑

dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
Run Code Online (Sandbox Code Playgroud)

但是没有文件夹/etc/initramfs-tools/etc/,所以这个命令也失败了。当然,我可以创建这些文件夹,但恐怕这种奇怪的行为并非来自更深层次的错误。如果有帮助,这里是 initramfs 文件夹的内容:

me@server:/etc/initramfs-tools# ls
conf.d  hooks  initramfs.conf  modules  scripts  update-initramfs.conf
Run Code Online (Sandbox Code Playgroud)

谢谢!

ssh debian initramfs dropbear

5
推荐指数
1
解决办法
9400
查看次数

如何显示命令并避免代码注入

我在玩wget,我基本上做了一个脚本来下载一个页面,在这个页面上grep一些信息,然后wget根据这些信息另一个页面。所以基本上,我的代码看起来像

defautltCommand="wget -v"
formValue=$(cat myfileA.html | get_field_value )
command="${defaultCommand} --post-data=\"myfield=${formValue}\""
echo "Command 3: ${command}"
echo "${command}" | bash
Run Code Online (Sandbox Code Playgroud)

但是,这个解决方案有几个问题,主要是如果html文件有一些邪恶的值(比如" google.com; <evil command>; ls "),那么它可能会进行代码注入。而且因为我的脚本应该作为 NetworkManager 脚本以 root 身份运行......我想确保注入代码是不可能的。但是,我喜欢编写将要使用的命令的想法,在发生错误时进行调试非常有用。

你有什么好的方法可以确保我无法获得任何代码注入?或者也许你有更好的方法来进行?我的第一个想法是像这样替换所有引用:... | sed 's/"/\\/g"',但我不确定我是否捕获了所有可能的注入代码的方法。

谢谢!

bash shell-script quoting

2
推荐指数
1
解决办法
1073
查看次数

文件更改时“拆分”的硬链接

是否有可能(在经典的 ext4 和/或任何其他文件系统中)创建两个指向相同内容的文件,这样如果一个文件被修改,内容就会被复制并且两个文件变得不同?节省硬盘空间非常实用。

上下文:我在自己的云服务器上分享了一些沉重的视频,这些视频可以被很多人修改,因此有些人可能会修改/删除这些文件......我真的想确保我有一个备份这些文件,因此我现在需要维护两个目录,一个普通的 nextcloud 一个,一个“备份”目录,它(至少)是存储它所需的大小的两倍。

我正在考虑在 nextcloud 目录之上创建一个 git repo,当添加新视频时,它使备份过程变得更加容易(只是git add .),但git仍然是 blob 和工作目录之间的两倍空间。

理想情况下,可以与 git 结合使用的解决方案会很棒(即,它允许我创建视频更改的历史记录、提交、签出......而不会增加磁盘空间。

此外,我很想为各种文件系统提供解决方案(特别是如果您对不实现快照的文件系统有技巧的话)。请注意,LVM 快照并不是真正的解决方案,因为我不想备份我的完整卷,只想备份一些特定的文件/文件夹。

谢谢!

filesystems backup hard-link symlink

2
推荐指数
1
解决办法
336
查看次数