5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【2024年01月版】Linuxの SUID と SGID 【中年エンジニアのためのLinuxメモ】

Last updated at Posted at 2024-01-09

はじめに

SUID のやり方ってどうだったっけ?
前に SUID したスクリプトってどこいったっけ?
前に SGID した共有ディレクトリってその後どうしたっけ?
という時に、読み返すためのメモ。

SUIDSGID とは?

Linux の SUID(Set User ID)SGID(Set Group ID) は、ファイルやディレクトリに特別なアクセス許可を設定するための機能。
これらの設定は、ファイルの所有者やグループに関係なく、特定のファイルを実行する際に、ユーザーやグループの権限を一時的に変更することができる。

SUID(Set User ID)

概要

SUID が設定された実行ファイルは、ファイルの所有者の権限で実行される。

使用例

パスワードの変更

passwd コマンドは、一般ユーザーが自身のパスワードを変更できるようにするため、SUID が設定される。
このコマンドは、実行時にroot権限で動作し、システムのパスワードファイルを安全に更新する。

システム管理ツール

特定のシステム管理ツールは、root権限でのみ実行可能ですが、限定的に通常ユーザーにも使用させたい場合にSUIDが使われる。例えば、システムの設定を変更するコマンドなどがこれに該当する。

設定方法

chmod u+s ファイル名
ファイルにSUIDビットを設定できる。

セキュリティリスク

不正に利用されるとシステムのセキュリティに大きな影響を与える可能性があるため、慎重に使用する必要がある。

SGID(Set Group ID)

概要

SGID が設定された実行ファイルは、ファイルのグループの権限で実行される。

使用例

共有ディレクトリ

チームやプロジェクトごとのディレクトリに SGID を設定すると、そのディレクトリ内で作成されたファイルやサブディレクトリは、作成者個人のものではなく、チームやプロジェクトグループに属することとなる。
これにより、グループ内でのファイル共有が容易になる。

共有ファイルの編集

特定のファイルを複数のユーザーが共同で編集する必要がある場合、そのファイルに SGID を設定することで、新しいファイルやデータが元のグループに所属することとなり、アクセス管理が容易になる。

設定方法

chmod g+s ファイル名
ファイルにSGIDビットを設定できます。

セキュリティリスク

SUID と同様、不正利用されるとセキュリティに影響を与える可能性がある。

注意点

SUID / SGID はセキュリティ上のリスクを伴うため、必要な場合にのみ使用し、常にセキュリティを意識することが重要。
定期的なシステム監査を通じて、不要なSUID/SGID設定がないか確認することが推奨される。

不要な SUID / SGID がないか監査する方法

システム上のすべての SUID / SGID 設定されたファイルを探すために、find コマンドを使用できる。

SUID設定されたファイルを探す

find / -perm -4000 -exec ls -ldb {} \;

SUIDビット が設定されたすべてのファイルをルートディレクトリから探し、それらのリストを表示する。

SGID設定されたファイルを探す

find / -perm -2000 -exec ls -ldb {} \;

SGIDビット が設定されたすべてのファイルをルートディレクトリから探し、それらのリストを表示する。

さいごに

しっかり理解しておきたい

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?