はじめに
前回まで、特にファイル操作やファイルシステム関連について扱ってきました。Linuxは、「すべてのことをファイルとして扱う」という設計思想を持つため、ファイルについての理解はとても重要です。今回はそれに続き、もう一つの重要な設計思想であるマルチユーザシステムについて解説を行いたいと思います!
マルチユーザシステムとは
マルチユーザシステムとは、2人以上のユーザが同時にアプリケーションを実行できるようなシステムのことを言います。やはりコンピュータも安くはないので、1つのマシンを複数人で共有できた方がコスト的に良いわけです。しかし、マルチユーザの機能を提供しようとすると、以下のことを考慮しなければいけません。
- 他のユーザが勝手に自分のファイルへアクセスできないようにすること
- 同じコンピュータで動く他のユーザのプロセスが、自分のプロセスの動作に影響しないこと
- 各ユーザが公平にコンピュータリソースを扱えること
このような要件を満たすためにマルチユーザOSでは、ユーザの識別や認証・適切な権限付与の機能を提供する必要があります。では以降から、ユーザアカウントやそのセキュリティに関する機能について見ていきます!
ユーザアカウント
Linuxでは、各ユーザに一意な識別番号であるUIDが割り当てられます。現在ログインしているアカウントのUIDはidコマンドで出力できます。
id
#出力結果の例
#uid=1000(user1) gid=1000(user1) groups=1000(user1)
また、あるユーザがコンピュータへログインしようとする時、そのコンピュータはログイン名とパスワードを要求します。これにより、不当なユーザがコンピュータを利用することを阻止しています。パスワードの設定変更にはpasswdコマンドを利用します。
グループ
マルチユーザシステムでは、複数のユーザ間でデータ共有を可能にするため、各ユーザは1つ以上のユーザグループに必ず所属します。そして、グループに所属するメンバーの中でファイルにアクセスできる権限を付与したり、ディレクトリの操作を行える権限を付与したりすることで、複数ユーザでの共同作業を可能にしています。グループは、GIDという一意な識別番号によって管理されています。
パーミッション
linuxでは、一つ一つのファイルについてユーザが読み書きできるかを決めるアクセス権を設定します。このアクセス権のことをパーミッションと言います。このパーミッションをユーザ単位またはグループ単位で設定することにより、セキュリティの担保や運用管理性の向上につながります。
パーミッションは、以下3つのユーザクラスに対して割り当てます。
- ファイルの所有者
- ファイルの所有者の所属グループ
- それ以外のユーザ
また、割り当てを行う権限には以下のものがあります。
- ファイルの読み取り権限
- ファイルの書き込み権限
- ファイルの実行権限
これらの権限を適切に設定することで、システムのセキュリティを確保します。
パーミッションを割り当てるコマンドはchmodです。例えば以下のようなコマンドを発行します。
chmod 755 testfile
上記コマンドの「755」の部分でユーザクラスと割り当てる権限の指定をしています。(詳しくは、他の人のわかりやすい記事に任せます笑)
ここまでで、マルチユーザシステムの概要と権限の設定についてわかりました!
まとめ
今回のまとめは以下のようになります。
- マルチユーザシステムとは、2人以上のユーザが同時にアプリケーションを実行できるようなシステムのことである
- マルチユーザOSでは、ユーザの識別や認証・適切な権限付与の機能を提供する必要がある
- linuxではユーザとグループに対してパーミッションの付与を行う
