CC逆引きリファレンス

コマンド / 機能

"deny": ["Bash(sudo*)"]

概要

管理者権限でのコマンド実行を禁止し、システム設定の意図しない変更を防ぎます。

設定例

// settings.json
{
  "permissions": {
    "deny": [
      // sudo の禁止
      "Bash(sudo *)",
      "Bash(sudo*)",

      // su も禁止
      "Bash(su *)",
      "Bash(su)",

      // doas(BSD系)も禁止
      "Bash(doas *)",

      // pkexec(GUI用)も禁止
      "Bash(pkexec *)"
    ]
  }
}

// 特定のコマンドのみ sudo を許可する場合
{
  "permissions": {
    "deny": ["Bash(sudo*)"],
    "allow": [
      "Bash(sudo systemctl status*)",
      "Bash(sudo docker ps*)"
    ]
  }
}

こんな時に使う

  • 管理者権限での実行を防ぎたい時
  • システム設定の変更を制限したい時

使い方

  1. 1settings.json の permissions.deny に sudo パターンを追加
  2. 2su, doas, pkexec など他の権限昇格コマンドも考慮
  3. 3特定のコマンドだけ許可したい場合は allow で明示
  4. 4allow は deny より後に評価されるので上書き可能

Tips

  • 通常の開発作業で sudo が必要になることは稀
  • Docker 操作は sudo なしで動くよう docker グループに追加
  • システム管理タスクは別途手動で行う
  • sudo が本当に必要な場合は一時的に設定を変更