Sudo

Revision as of 12:14, 8 October 2025 by Ardenet (talk | contribs) (Created page with "== 用法 == 为示例用户 <code>myuser</code> 启用 sudo。<syntaxhighlight lang="nix"> users.users.myuser.extraGroups = [ "wheel" ]; </syntaxhighlight>")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sudo 允許系統管理員委託權限,授予某些用戶(或用戶組)以 root 或其他用戶身份運行命令的能力,同時提供命令及其參數的審計跟蹤。

用法

為示例用戶 myuser 啟用 sudo。

users.users.myuser.extraGroups = [ "wheel" ];

通過簡單的配置,將允許屬於 wheel 組的所有用戶以超級用戶身份且無需提供該用戶的密碼使用 sudo 執行 extraRules 中指定的命令。

security.sudo = {
  enable = true;
  extraRules = [{
    commands = [
      {
        command = "${pkgs.systemd}/bin/systemctl suspend";
        options = [ "NOPASSWD" ];
      }
      {
        command = "${pkgs.systemd}/bin/reboot";
        options = [ "NOPASSWD" ];
      }
      {
        command = "${pkgs.systemd}/bin/poweroff";
        options = [ "NOPASSWD" ];
      }
    ];
    groups = [ "wheel" ];
  }];
  extraConfig = with pkgs; ''
    Defaults:picloud secure_path="${lib.makeBinPath [
      systemd
    ]}:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"
  '';
};