在 NixOS 下似乎无法让 sudo 工作

在 NixOS 下似乎无法让 sudo 工作

标题(虽然很尴尬)说明了一切。首先介绍一些背景:

我在 Vultr 上使用自定义 ISO 运行 NixOS。

尝试的时间范围:

  • which sudo显示没有 sudo
  • sudo使用安装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显式设置为应该会对此有所启发。

相关内容