ユーザー以外のスクリプトだけがファイルにアクセスできるようにすることはできますか?

ユーザー以外のスクリプトだけがファイルにアクセスできるようにすることはできますか?

システムへのアクセスが制限されたユーザーがいます(つまり、彼はsudoerではありません)。単発

私(システム管理者)が信頼し、問題なく root として実行するスクリプトやバイナリがありますget-todays-passphrase.sh。このスクリプトの作業は、「個人」(Bobまたはroot以外のユーザー/グループ所有)ファイルからデータを読み取り、ファイルの特定の行/srv/daily-passphrases(今日の日付に対応する行)のみを出力することです。

Bobなどのユーザーいいえファイルに記載されていても明日のパスワードがわかります。したがって、ファイルは/srv/daily-passphrasesUnix権限で保護されているため、Bobなどの非ルートユーザーいいえファイルへの直接アクセスを許可します。ただし、get-todays-passphrase.sh「フィルタ処理された」データを返すスクリプトは常に実行できます。


結論として(長い話を短くバージョン):

  1. Bobは保護されたファイルを読み取ることができません。
  2. このスクリプトは保護されたファイルを読み取ることができます。
  3. Bobは常にファイルを読み取ることができるスクリプトを実行できます。

Unixファイル権限内でこれを実行できますか?それとも、Bobがスクリプトを起動すると、そのスクリプトは常にBobと同じ権限で実行されますか?

ベストアンサー1

これは実際には非常に一般的で非常に簡単です。 sudoユーザーが呼び出すことができる特定のアプリケーションを制限できます。つまり、root権限をすべて付与する必要もなく、sudo権限も付与することはできません。特定のコマンドの実行。これはまさにあなたが望むものであり、ユーザーがSSHを介してGitリポジトリをプッシュできるようにするなどの作業では非常に一般的な慣行です。

これを行うには、/etc/sudoers次の行を追加するだけです。

bob ALL=(root) NOPASSWD: /path/to/command/you/trust

(このNOPASSWD:部分は必須ではありませんが、この状況でよく使われる部分です。) このとき sudo を通じて呼び出すことができますがbob/path/to/command/you/trustそうでなければ呼び出せません。

つまり、誰かにrootアクセス権を与えること(ここで行うこと)がまさに望むものではないかもしれません。スクリプトに欠陥がある場合、ボックスがルーティングされる危険性があることは注目に値します。このため、たとえば、特定のファイルを所有するユーザーを具体的に作成し、そのユーザーにファイルを提供してspecialuserそのchownユーザーにすることを好む/etc/sudoers場合があります。bobこの場合、追加する行は次のsudoersようになります。

bob ALL=(specialuser) NOPASSWD: /path/to/command/you/trust

おすすめ記事