特定のセキュリティ対策の設定

特定のセキュリティ対策の設定

Oracle 8システムに特定のセキュリティ対策を設定する必要があります。

Unix グループに一部のユーザーが追加されます。

これらのユーザーはsudoers / wheelグループにはならず、グループに管理者権限を付与してはいけません。

このグループに属する場合、そのユーザーは特定のスクリプトを実行できますが、変更することはできません。

これらのスクリプトは、そのユーザーが実行するときに特定のファイルを読み取って変更できる必要がありますが、ユーザーは他の方法でこれらのファイルにアクセスしたり読み取ったりすることはできません。

この配列が機能するには、Unixファイルの権限/フォルダ構造/グループメンバーシップをどのように設定する必要がありますか?

ベストアンサー1

ユーザーは新しいグループに簡単に追加できます。スクリプト(実行ファイルとは異なり)はsetgid / setuid権限を使用して権限を割り当てることができないため、グループは選択したsudoersスクリプトセットを実行するときにユーザーに権限を付与するためにファイルにエントリを必要とします。 (この権限はアクセスする必要はなく、実際にはできませんroot。)

初期点。私たちはこのグループと呼び、ユーザーと一緒にopsいます。彼らは私たちが生成する必要があるユーザー権限でスクリプトを実行できるはずです。ユーザーとグループに同じ名前を使用することを好むかもしれませんが、ここではどちらがどちらであるかを明確に区別しました。alicebob/opt/scriptsprivops

まず、ターゲットユーザー、メンバーシップグループを作成し、ここにユーザーを追加します。

useradd privops
groupadd ops
usermod -a -G ops alice
usermod -a -G ops bob

次に、次のようにvisudoファイルに新しい行を追加しますsudoers(または自分で作成することをお勧めしますvisudo /etc/sudoers.d/ops)。

%ops ALL=(privops) NOPASSWD: /opt/scripts/*

この時点で、AliceとBobはユーザーとしてsudoこのディレクトリからスクリプトを実行できます。ディレクトリ内のスクリプトは、グループメンバーのみが実行できることを確認してください。/opt/scriptsprivopsops

chown root:ops /opt/scripts/*
chmod ug=rx,o= /opt/scripts/*

制限付きアクセスファイルがそのユーザーアカウントの所有であり、privopsそのユーザーアカウントでのみ読み書きできることを確認する必要があります。

chown privops:ops /opt/privdata/*
chmod u=rw,go= /opt/privdata/*

使用例(最初のパス):

# As alice
sudo -u privops /opt/scripts/myscript arg1 arg2…

スクリプトの使いやすさを高めるには、スクリプトを自分で呼び出すようにしてください(sudoまだターゲットユーザーではない場合)。

#!/bin/sh
if [ "$(id -nu)" != 'privops' ]
then
    exec sudo -u privops "$0" "$@"
    exit 1
fi

# original code continues from here…

その後、AliceとBobはこれらのコマンドを使用して自分のコンピュータに追加することもできます。$PATH

/opt/scripts/myscript arg1 arg2…

# Or
export PATH="$PATH:/opt/scripts"
myscript arg1 arg2…

/opt/scriptsこれは、スクリプトが特別な注意を払って作成され、呼び出し元が侵入する機会がないようにスクリプトに権限を追加するためです。この種の解決策は慣れていないようで、専門家のアドバイスを求めることをお勧めします。

おすすめ記事