非 root 用户可以看到 root 的 nix-env 是否正常?

Is it normal that root's nix-env is visible from non-root user?

当我通过 sudo nix-env -i <pkg> 以 root 身份安装包时,非 root 用户是否应该看到该包?

由于这不是像 nixos-rebuild 那样的系统范围安装,是否应该只对 root 可见该包?

从 root 和非 root 的空环境开始

[wizzup@ ~] $ nix-env -q
[wizzup@ ~] $ sudo nix-env -q

通过 sudo

安装 buku
[wizzup@ ~] $ sudo nix-env -i buku
installing ‘buku-2.9’
building path(s) ‘/nix/store/a77imw0grmx4f7659ff07p5j5kxnnjw2-user-environment’
created 2 symlinks in user environment

在非 root 用户环境中没有 buku

[wizzup@ ~] $ nix-env -q

根环境中有buku

[wizzup@ ~] $ sudo nix-env -q
buku-2.9

但是即使它不在他的环境中,非 root 用户也可以使用它

[wizzup@ ~] $ buku --version
2.9

验证它是root env

$ sudo -i

[root@earth:~]# nix-env -q
buku-2.9

这很正常,这是NixOS的设计选择,考虑到root安装的包是管理员希望所有用户都拥有的包。