Unixスクリプトを介してのみアクセスできるファイルを読む

Unixスクリプトを介してのみアクセスできるファイルを読む

ファイルからパスワード/キーを取得するために必要なデフォルトのシェルスクリプトを作成しました。

デフォルトスクリプト---呼び出し---キー/パスワードファイル---デフォルトスクリプトは、追加の認証のために取得されたキーを使用します。

必要:

  1. どのユーザーもファイルの内容を直接取得できないはずです。

  2. すべてのユーザーはデフォルトのスクリプトを実行できる必要があります。

  3. スクリプトはファイルの内容にのみアクセスできる必要があります。

誰にも表示されませんが、スクリプトで設定できるパスワード/キーの他の提案は大歓迎です。

注:sudoersメソッドを試しましたが、まだ成功していません。

%usersgroup ALL=(ルート) NOPASSWD:/キー/パス

答え1

ルートとしてのみアクセスできるパスワード(chown root、chmod 600)を含むファイルを生成する必要があります。

このファイルへの一般的なアクセス権を持ち(そこで変数を取得できますか?)、rootが所有し、他のユーザーだけが読み取り/実行でき、編集できないようにスクリプトを変更する必要があります(chown root、chmod 4755)。

通常、スクリプトで suid を有効にできますが、Linux ではスクリプトの suid を無効にしました。次のステップはsudoers行を追加することです。

%usersgroup ALL=(root) NOPASSWD:/path/to/script

ユーザーはsudoを使用してスクリプトを実行する必要があります。

答え2

これが可能かどうかはわかりませんが、理論的には可能です!chmod 700 /path/to/keyBashスクリプト以外に誰も読み取れないようにするには、/path/to/keyにパスワードの暗号化されたバージョンを置き、スクリプトでそれを復号化してからパスワードを確認させることができます。もちろん、root以外のユーザーがコードをハックし、スクリプトが直接機能するように編集するのを防ぐために、root以外のユーザーへの読み取りアクセスをスクリプトで無効にする必要があるため、rootアクセス権を持つchmod 744 /path/to/script上級ユーザーは。chmodそして私達のすべての努力を回復しなさい。したがって、スクリプトは復号化を実行するためにいくつかのマシンコードを呼び出す必要があり、その後DRMを再作成するために週末を過ごしたことがわかります。これがあなたの質問に答えることを願っています。ちなみに私はDRM(EFFとデザインの欠陥ベース)に反対していますが、それを再作成するのは楽しいと思います。

関連情報