首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >似乎不能在NixOS下工作

似乎不能在NixOS下工作
EN

Stack Overflow用户
提问于 2019-03-15 21:51:43
回答 1查看 1.4K关注 0票数 3

标题(尽管是令人难堪的)说明了一切。一些背景首先:

我正在使用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)
  • 我想,也许我应该把它安装成根?
  • 所以,su,然后重复安装
  • 现在,当我尝试sudo ...时,我看到了sudo: /nix/var/nix/profiles/default/bin/sudo must be owned by uid 0 and have the setuid bit set (与以前一样,有不同的路径)。
  • 作为最后的手段,试试锤子,并赞扬NixOS阻止了我:
代码语言:javascript
复制
[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是.缺少一些东西。sudo应该在NixOS 3中工作的一些根本不同的方式。在如何使用Nix方面,我缺少了一些非常基本的东西(很可能!)

一些细节:

代码语言:javascript
复制
[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

编辑:工作的最后一组步骤:

  1. 正如答案中所建议的,首先启用sudo:
代码语言:javascript
复制
security.sudo.enable =  true;
  1. /etc/nixos/configuration.nix中添加sudoers部分
代码语言:javascript
复制
  # Allow members of the "wheel" group to sudo:
  security.sudo.configFile = ''
    %wheel ALL=(ALL) ALL
  '';
  1. 加入wheel
代码语言:javascript
复制
usermod -a -G wheel agam
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-16 00:32:50

sudo上安装NixOS的方法是向configuration.nix中添加

代码语言:javascript
复制
security.sudo.enable = true;

Nix本身根本无法创建像sudo这样的setuid二进制文件。否则,它不可能是“安全和政策自由”-没有多用户支持。nix/nix-*工具旨在执行安全的存储操作,并且不允许特权的提升。

为了支持像sudo这样的setuid二进制文件,NixOS在/run/wrappers存储之外维护一个setuid目录。这是可能的,因为NixOS是以根权限启动/切换/激活的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55191125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档