标题(虽然很尴尬)说明了一切。首先介绍一些背景:
我在 Vultr 上使用自定义 ISO 运行 NixOS。
尝试的时间范围:
which sudo
显示没有 sudosudo
使用安装nix-env -i sudo
- 然后,当我尝试时
sudo ...
,我看到sudo: /home/agam/.nix-profile/bin/sudo must be owned by uid 0 and have the setuid bit set
sudo su
由于同样的原因,没有奏效- 好的,我卸载了它(
nix-env --uninstall sudo
) - 我觉得嗯,也许我应该以 root 身份安装它?
- 然后
su
重复安装 - 现在,当我尝试时
sudo ...
,我看到sudo: /nix/var/nix/profiles/default/bin/sudo must be owned by uid 0 and have the setuid bit set
(与以前相同的错误,但路径不同) - 作为最后的手段,尝试用锤子,感谢 NixOS 阻止了我:
[root@nixos:/home/agam]# chmod 4755 /nix/var/nix/profiles/default/bin/sudo
chmod: changing permissions of '/nix/var/nix/profiles/default/bin/sudo': Read-only file system
关于这里发生的事有什么线索吗?
我在这里看到的一些可能的选项是:1. Vultr 提供的自定义 ISO...缺少一些东西 2. 一些sudo
应该在 NixOS 3 中工作的根本不同的方法。我缺少一些关于如何使用 Nix 的最基本的东西(最有可能!)
一些细节:
[agam@nixos:~]$ nixos-version
18.09.1534.d45a0d7a4f5 (Jellyfish)
[agam@nixos:~]$ which sudo
/nix/var/nix/profiles/default/bin/sudo
[agam@nixos:~]$ nix-channel --list
nixos https://nixos.org/channels/nixos-18.09
(笔记:最初发布在 StackOverflow,建议在这里提问!)
答案1
由于 NixOS 是完全声明式配置的,因此只有一个地方可以打开和关闭 sudo:您的 NixOS 配置(可能位于/etc/nixos/configuration.nix
)。
选项security.sudo.enable
默认情况下应该是true
,但也许你导入了一个模块,它会覆盖默认值?将其true
显式设置为应该会对此有所启发。