ファイルシステム(www-dataなど)のアクセス許可を定義するものがあることを知っています。しかし、理由を理解できません この質問は正常に回答されました 「ビデオ」グループにユーザーを追加することによって。
それでは、質問は主に、Ubuntuで事前に構築されたすべてのグループが何をするのかということです。より合理的には、非常に多くの「特別な」グループが存在するため、それらをどのように、またはいつ使用する必要がありますか?
一部のグループは、ファイルまたはディレクトリへのアクセスを許可します。たとえば、www-data
はWebファイルへのアクセスを許可し、adm
グループは/var/log
のファイルを読み取ります。これは簡単な使用法です。
ただし、特定のデバイスへのアクセスを許可するグループもあります。たとえば、dialout
グループは、/dev
のファイルを介したシリアルポートへのアクセスを許可します。
$ find /dev -group dialout -exec ls -ld {} \;
crw-rw---- 1 root dialout 4, 64 Jan 19 12:51 /dev/ttyS0
crw-rw---- 1 root dialout 4, 67 Jan 19 12:51 /dev/ttyS3
crw-rw---- 1 root dialout 4, 66 Jan 19 12:51 /dev/ttyS2
crw-rw---- 1 root dialout 4, 65 Jan 19 12:51 /dev/ttyS1
したがって、dialout
グループのメンバーであれば、デバイスファイルecho "Hello world" > /dev/ttyS0
を読み書きしてシリアルポートを使用できます。 video
グループは、ビデオハードウェアへのアクセスを許可します。
各グループの説明については、ファイルを読んでください:/usr/share/doc/base-passwd/users-and-groups.html
最初のコメントに関する編集:
実際、通常、ユーザーの観点からハードウェアリソースに「アクセス」するためにこれらのグループに所属する必要はありません。一般的な方法は、最も制限の厳しいグループのメンバーであるデーモン/サーバーを管理し、デーモン/サーバーへのアクセスを許可することです。
あなたの場合、video
グループのメンバーであると、Xサーバーを介さずにグラフィックハードウェアに直接アクセスできます。通常、デスクトップ/ラップトップコンピューターでは、グラフィックハードウェア(glxinfo | grep "direct rendering"
)に直接アクセスできると便利です。
補足説明として、直接レンダリングを行っているが、video
グループ(id | grep --color video
)のメンバーではない場合、/dev
ファイル(find /dev/ -group video -exec getfacl {} \; | grep $USERNAME
)のaclによってハードウェアアクセスが許可されました。
一般に、グループ分離の概念はこれに関連しています。
http://en.wikipedia.org/wiki/Principle_of_least_privilege
セキュリティの悪夢である単一の共通レベルの高い特権(例:Sudo/root)であることに気付くまで、これらのグループをすべて持つのはばかげているように見えます。
投稿に示されているほとんどのグループは、OSのさまざまな部分が最小限の特権で共通の機能にアクセスできるように存在しています。ユーザーはこれについてあまり心配する必要はありません。一部の管理タスク中に、一部の機能にアクセスするために特権を上げる必要があります。これは通常、短時間のタスクでSudoを使用し、反復タスクの特定のグループに自分を追加することによって行われます。