Linux
 Computer >> コンピューター >  >> システム >> Linux

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上

2026 年 4 月 4 日、午前 10:00 EDT に公開

Yadullah Abidi は、デリー大学でコンピューター サイエンスを卒業し、チェンナイのアジア ジャーナリズム大学でジャーナリズムの大学院の学位を取得しています。 Windows および Linux システム、プログラミング、PC ハードウェア、サイバーセキュリティ、マルウェア分析、ゲームに関して 10 年以上の経験を持つ彼は、深い技術知識と強力な編集本能を組み合わせています。

Yadullah は現在、スタッフ ライターとして MakeUseOf に執筆し、サイバーセキュリティ、ゲーム、消費者向けテクノロジーをカバーしています。彼は以前、Candid.Technology で副編集長として、また The Mac Observer でニュース編集者として働いており、そこで猛威を振るうサイバー攻撃から最新の Apple テクノロジーまであらゆるものをレポートしていました。

Yadullah はジャーナリズムの仕事に加えて、JavaScript/TypeScript、Next.js、MERN スタック、Python、C/C++、AI/ML の経験を持つフルスタック開発者です。マルウェアの分析、ハードウェアのレビュー、GitHub でのツールの構築など、彼は実践的な開発者の視点をテクノロジー ジャーナリズムにもたらしています。

Sudo は、地球上のほぼすべての Linux ユーザーにとって記憶に残るコマンドです。昇格した特権で何かを実行する必要があるときは、sudo が自動的に起動します。しかし、sudo は古いものであり、あなたが無視している可能性のある Linux ターミナルで特権を昇格するより良い方法があります。

「デイリードライバー」OS から切り替えるとワークフローが即座に改善されるのと同じように、Linux で sudo から doas に切り替えると、ターミナルのワークフローも同様に改善されます。切り替えを行ったところ、許可ルールがようやく意味をなすようになりました。

Sudo は強力ですが、あまりにも厄介です

ほとんどの人がほとんど理解できない複雑すぎるルール

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上

須藤はどこにでもいます。 Ubuntu、Fedora、Arch、そしてこれまで聞いたことのあるほぼすべての主要な Linux ディストリビューションが同梱されています。ほとんどの Linux ユーザーにとって、これは、ユーザー アカウントにコマンドを実行する権限がないときにコマンドの前に使用するプレフィックスであり、それだけです。これは、ほとんどのシステム問題を解決する Linux ターミナル コマンドの 1 つです。

ただし、問題は sudo の複雑さです。 sudo ソース コードは C で約 160,000 行あります。設定ファイルとサポート ファイルを含めると、その数は 223,000 行を超えます。特定のコマンドを root として実行することが主な仕事であるツールの場合、特権プロセスを実行するコードの量は膨大になります。

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上 クレジット:Yadullah Abidi / MakeUseOf

より大きなコードベースは、脅威アクターにより大きな攻撃対象領域を与えます。そして、ご存知ない方のために付け加えておきますが、sudo は過去に危機一髪の状況にありました。たとえば、sudo のヒープベースのバッファ オーバーフローの脆弱性である CVE-2021-3156 は、root への完全な権限昇格を許可していましたが、10 年近くコードベース内で検出されずに放置されていました。

セキュリティ以外に目を向けると、sudo を使用した構成も必ずしも優れているとは言えません。カスタム /etc/sudoers を作成しようとしたことがある場合 ルールをゼロから作成すると、おそらくその構文に頭を悩ませたことがあるでしょう。人間が正確に判読できるものでもありません。ユーザーが root として任意のコマンドを実行できるようにするなど、単純なコマンドは次のように記述します。

username ALL=(ALL:ALL) ALL

この構文を初めて扱う人にとっては、非常に複雑になる可能性があります。これは、シンプルさを考慮せずに数十年に渡って機能を決定してきた構成フォーマットからの一線です。

Doas は徹底的にシンプルにしています

ジョブは 1 つ、構文は最小限で、頭の体操は不要

Doas は、OpenBSD プロジェクトが sudo が大きすぎてシステム ベースに同梱できないと判断した後、OpenBSD 用に作成されました。これは、sudo の肥大化を引き継ぐことなく、基本的に同じ仕事を行うためにゼロから構築されました。

結果として、C の約 500 行のソース コードを含むプログラムが作成され、インストール時にディスク上で必要となるのは数キロバイトだけです。コードが少ないということは、攻撃対象領域が小さくなり、潜在的なバグが少なくなり、人間が適切な時間内にバイナリを監査できることを意味します。

構成構文も同じ最小限の哲学に従っています。 sudo の文法と格闘させる代わりに、doas は平易な英語を使用します。 doas 設定のほとんどを声に出して読んで、その意味を正確に理解することができます。たとえば、前述の sudoers 設定に相当する doas は次のとおりです。

permit username as root

それだけです。読みやすく理解しやすいコマンドにランダムな記号や特殊文字を組み込む必要はありません。

切り替えには数時間ではなく数分かかります

頭を悩ませることなく sudo を置き換える簡単なセットアップ

doas は OpenBSD ネイティブ ツールですが、OpenDoas ポートを使用して Linux 上で使用できます。 Debian および Ubuntu では、デフォルトのパッケージ マネージャーを使用してインストールすることもできます。

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上
apt install doas

そして、このアプローチは他のディストリビューションでも機能します。 Arch では pacman を、Fedora では dns を使用して、1 つのコマンドで doas をインストールできます。 (sudo とは異なり) インストール時に自動的に作成されないため、/etc/doas.conf に構成ファイルを作成する必要があります。信じられないかもしれませんが、これはバグではありません。これは、何を許可するのかについてより慎重になるよう強制する機能です。設定自体は単純な行です:

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上
permit persist yourusername as root

これは、シングルユーザー システムの最小限の構成です。ユーザーの数や特定の使用例に応じて変更することもできます。

構成ファイルを作成したら、そのアクセス許可を適切にロックダウンします。所有権を root:root に設定し、アクセス許可を 0400 に設定すると、ファイルは root だけが読み取り可能になります。これは doas の実行前でも必要です。 doas -C /etc/doas.conf を実行して構成ファイルを検証すれば、準備完了です。

doas は OpenBSD 用に設計されているため、XAUTHORITY や LC_ALL などの Linux 固有の環境変数を自動的に保存しません。 X でグラフィカル プログラムを実行したい場合、またはロケール設定を維持したい場合は、これでつまずく可能性があります。ありがたいことに、修正は設定ファイル内の 1 行の追加で済みます。

setenv { DISPLAY XAUTHORITY LANG LC_ALL }

doas は GUI やロケール設定を壊さないことに注意してください。何が信頼されるべきかを想定することを拒否しているだけです。これは、経験豊富な Linux ユーザーでも犯す可能性のある間違いです。root は X セッションを参照できなくなり、コマンドが突然言語を切り替えたり、テキストを別の方法で並べ替えたり、動作が一貫性を失ったりする可能性があるためです。

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上

オープンドア

OS Linux

開発者 テッド・アンナングスト

価格モデル 無料、オープンソース

OpenDoas は、doas 権限昇格ツールの軽量でポータブルな実装です。

ワークフローが軽くなったように感じます

摩擦が少なく、驚きも少なく、同じコントロールが可能

私の日常的な使い方では、doas を使用する方がより意図的であると感じます。設定ファイルは現在読み取り可能です。つまり、実際に設定ファイルに戻ってさらに変更し、コンピューターの制御を好みに合わせて微調整することができます。これは sudoers では決して起こらなかったことです。

sudo から doas へ:Linux 権限の簡素化によるセキュリティ向上 関連

Linux ユーザーとして知っておくべき 5 つのプログラム

Linux は単なるバックアップ OS ではなく、これらのプログラムがそれを証明しています。

すべてのルールは平易な言葉で書かれた意識的な決定であるため、意図しないアクセス許可を誤って付与する可能性が低くなります。シングルユーザー デスクトップ環境を実行している人にとって、doas は、そもそも意図されていない複雑さを一切排除して、sudo が提供するすべてを提供します。

スイッチは誰にでも使えるわけではありません。大規模なマルチユーザーサーバー環境や、明らかに sudo のより細かい制御に依存するセットアップでは、おそらく sudo が使用され続けるでしょう。しかし、個人の Linux マシンの場合、Arch、Mint、Ubuntu などを使用しているかどうかに関係なく、doas は sudo よりも優れた、よりシンプルでクリーンな権限管理方法を提供します。


  1. GNOMEで自動ワークスペースを無効にする方法

    ディストリビューションが最新バージョンのGNOME3を使用してリリースを展開するにつれ、ますます多くのユーザーがGNOMEに戻ってきて、GNOMEプロジェクトが最初にリリースしてから大幅に改善されていることに気づいています。パフォーマンスが向上し、カスタマイズと統合に関する機能がより多くなり、ラフエッジほど多くはありません。ただし、ユーザーに感謝する可能性のある主要なGNOME-ismがまだいくつかあります。優れた例は、ワークスペースの管理方法です。GNOMEはワークスペースを動的に作成および破棄しますが、多くのユーザーは、ウィンドウが追加されても変更されない仮想ワークスペースの数を設定するこ

  2. Linuxでスティッキービットを使用して共有ディレクトリ上のファイルを管理する方法

    Linuxは当初から、マルチユーザー環境をサポートするように調整されていました。稼働中のシステムに多くのユーザーとグループがある場合、同じグループのユーザー間で共有されるディレクトリに遭遇することは非常に一般的であり、ディレクトリ内のファイルの共有から問題が発生します。この記事では、スティッキービットを使用して共有ディレクトリのファイルアクセス許可を微調整する方法について説明します。 説明のために、john1、john2、john3の3人のユーザーがいるシステムがあり、すべてが共通グループ「johns」のメンバーです 「john1」が「johns」グループのすべてのユーザー間で共有されるこ