一部のユーザーをグループに追加しない方法を知りたいです。特定のユーザーがグループに参加するのを防ぐ必要があります。特定のユーザー(全体ではない)に対してグループをロックしたいです。
詳細
lgroupmod -L dba ==> This prevents users from using the group password and
gpasswd -R dba ==> is restriction to a group
特定のユーザーに対してグループをロックする必要があります。いいえすべてのグループメンバーに。
答え1
作業に間違ったツールを使用しているようです。グループパスワードはほとんど使用されない機能です。各ユーザーを目的のグループに割り当てることができます。ログインすると、特別な操作を行わずにグループ権限を取得できます。
ユーザーがグループ権限を使用しようとした場合(ログの目的など)、特定のタスクを実行するようにしたい場合、または特別な状況でのみグループ権限を使用する必要があることを明確にする場合は、最も明確なアプローチは次のことです。Sudo。グループにアクセスする必要があるユーザーの場合は、次を実行してvisudo
ファイルにルールを追加しますsudoers
。
alice ALL = (:dba) ALL
sudo -g dba somecommand
代わりにユーザーに実行するように指示しますecho 'somecommand' | newgrp dba
。
ユーザーがグループにアクセスするには、共有パスワードを入力する必要がありますが、特定のユーザーだけがグループにアクセスできるようにする非常に珍しいシナリオがある場合でも、newgrp
これを特定のユーザーに制限できます。newgrp
権限を安全に昇格させるのは難しいので、自分で書くのではなく悪用してください。 Linuxはnewgrp
PAMを使用しません。おそらく基本的に誰も使用しないからですnewgrp
。したがって、ディストリビューションのバージョンのソースコードをインポートしてファイルを読み取るように修正してください/etc/gshadow.dba
。他のファイルを読み取る目的は、グループとそのパスワードをsg
含む行を代わりに追加するなど、他の方法でグループの権限を増やすことを防ぐことです。変更をコンパイルしてインストールした後、特定のユーザーだけが実行できるように権限を設定します。dba
/etc/gshadow.dba
/etc/gshadow
newgrp
/usr/local/bin/newgrp-dba
chmod u=srwx,go= /usr/local/bin/newgrp-dba
setfacl -m user:alice:x /usr/local/bin/newgrp-dba
答え2
/etc/group
またはにパスワードを追加できます/etc/gshadow
。形式は似ています/etc/passwd
が、フィールド数は異なります。ただし、2番目のフィールドにはパスワードを入力する必要があります。