特定のプログラムにのみアクセスを許可する

特定のプログラムにのみアクセスを許可する

時々私が実行するコマンドは、ルートが所有するディレクトリへのアクセスを要求します。たとえば、npm install -g ...シンボリックリンクをそこに配置できます。/usr/local/bin

sudo連絡するすべてのファイルはルートの所有になるため、コマンドを実行したくはありませんが(たとえば、sudo touch tmp質問を試した後にllルートおよびルートグループの所有であることがわかります)、それでもまだ必要です。それを与えるために入る/usr/local/bin

現在は、一時的にディレクトリ所有権をに変更してから(whoami)再に変更していますroot

rootLinuxで同じアクセスを許可しながらファイルに触れたり書き込んだりする場合、現在のユーザーに所有権を付与する方法はありますか?たとえば、コマンドを使用してidk npm install -g ...。別のものはどこにidkありますかsudo

この質問は、特定の例/ユースケースとは関係ありません/usr/bin/local。すべてのLinuxユーザーが理解しているように、権限の問題が再発しないようにディレクトリ権限を永久に変更できます。

問題は、コマンドごとにこれを実行する能力に関するものです(たとえば、コマンドごとにsudoroot権限を付与するなど)。

Linux特権モデルは「ユーザーxがpを実行できる」とsudoを使用すると、「ユーザーxがユーザーyのように振る舞うことを許可する」と言うことができます。私は「ユーザーxがyのように振る舞うようにしますが、実際にはyではなくxという事実に注意してください」と言う方法があるかどうか尋ねました。

ベストアンサー1

最初にアクセスをsudo提供するよりも多くがありますが、rootここでは関係ありません。

あなたの問題はルートとは関係がないようです。これは、ディレクトリへの書き込み権限を持つことに関連しているようです。

ACL を使用してグループ権限を追加し、新しいファイルが同じグループ権限を持つようにデフォルト値を追加します。

  • このタスクのためのグループの作成
  • 自分をグループに追加します(このステップでは、ログアウトして再度ログインするのが最も簡単ですが、これを防ぐ方法があります(newgrp混乱を避けるためにプロセスが所有権を継承する方法を理解する必要があります)。
  • 繰り返しディレクトリにグループ権限を追加するsetfacl -R -d -m g:«group»:rwx . setfacl -R -m g:«group»:rwx .(メモリから:テストされていません)

特定のプログラムにのみアクセスを許可する

上記を次のように組み合わせますsudo。つまり、「sudo --group«group"コマンド、

または

プログラムのset-gidを使用してください(通訳された言語には使用できません)。

おすすめ記事