グループの権限をどのように決定しますか?

グループの権限をどのように決定しますか?

を呼び出すと、sudoパスワードの入力を求められ、設定ファイルを確認して、/etc/sudoersユーザーにコマンドを実行するためのアクセスが許可されていることを確認します。特定のユーザーまたはグループが特定のコマンドを実行できるようにする構成ファイル/etc/sudoerssudoたとえば、以下では、ユーザーがjohn端末で power off コマンドを実行できるようにします。

john ALL= /sbin/poweroff

明らかにrootユーザーは何でもできます:

root    ALL=(ALL) ALL

sudoルートは何でもできるので、私たちはしばしばこのプログラムを使っていくつかのシステムレベルのコマンドを実行するためにroot(パスワードプロンプトを使う)として権限を高めたいと思います。正しいユーザーパスワードを入力すると、コマンドを実行できます。ただし、まずこのユーザーをrootに昇格させる方法が必要です。したがって、目的は/etc/group

sudo:x:27:myuser

/etc/groupユーザーが属するグループを定義するテキストファイルです。ファイルシステム権限は、ユーザー、グループ、その他に分けられます。グループを使用すると、ディスク、プリンタ、その他の周辺機器へのアクセスなどの追加機能を体系的に委任できます。

すべて読んだときこの記事デーモンの使い方に関して、gammu-smsd次の行を見つけました。

SMSを送信するたびに管理者パスワードを入力したくないので、最初にすべきことはダイヤルアウトグループに自分自身を追加することです。このグループのすべてのメンバーは、Ubuntuシステムでモデムに似たデバイスを使用する権限を持っています。

ダイヤルアウトグループにこれらの権限を付与するのはどこで定義されていますか?私の/etc/sudoersファイルを見ると、ダイヤルアウトへの言及はありません。

$ sudo cat /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

グループに関して重要な要素が欠けているようです。

答え1

グループにさまざまなアクセス権を与えるUnixアプローチは非常に原始的です。これは、主に問題のデバイスに書き込み(および読み取り可能)タイプの権限のみを付与することです。たとえば、ダイヤルアウトの場合:

faheem@orwell:/dev$ ls -lah | grep dialout 
crw-rw---T 1 root dialout 4, 64 Jul 22 22:45 ttyS0 
crw-rw---T 1 root dialout 4, 65 Jul 22 22:45 ttyS1 
crw-rw---T 1 root dialout 4, 66 Jul 22 22:45 ttyS2 
crw-rw---T 1 root dialout 4, 67 Jul 22 22:45 ttyS3

したがって、ダイヤルアウトグループには、問題のデバイス(この場合はシリアルポート)に対する書き込みおよび読み取り権限があります。

答え2

現在、ユーザーが特定のグループに属していることを確認するプログラムを作成してみてください。その場合はアプリケーションを実行し、そうでない場合は管理者パスワードの入力を求められます。

これは、sudoersファイルとは何の関係もありませんが、ソフトウェアコードレベルで実行されるチェックです。

関連情報