ユーザーのファイルの有効なアクセス許可をテストする


24

特定のユーザーのファイルの有効なアクセス許可をテストすることはできますか?

私は通常これをしてsu userからファイルにアクセスしますが、今はシェルを持たないユーザー(つまりシステムユーザー)でこれをテストしたいです

回答:


23

このsudoコマンドは、-uオプションを使用して特定のユーザーとして何でも実行できます。シェルを心配する代わりにcat、ターゲットユーザーとしてファイルを実行(または実行)するだけです。

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

catそれはあなたが大規模なファイルやバイナリファイルをテストしているのに...最良の選択は...おそらくではありません
アレクシス・ヴィルケ

24

次のようなスクリプトで使用すると便利だと思いました

 sudo -u <user> test -r <file-to-test> && ...

1
実際にファイルを変更/作成することなく、読み取り可能(-r)、書き込み可能(-w)、実行可能(-x)をテストできるため、ベストアンサーです。man test詳細は
トーマス

12
sudo -u <user> test -r <file-to-test>; echo $?

echo $?一部の意志出力試験の終了ステータス。

0操作が成功した場合に出力されることをここで覚えておいてくださいまたは、ゼロ以外、たとえば1そうでない場合。

同様トーマスさんのコメント@ @ user72025の答えに、使用man testのように、より多くの動作試験を取得するにはtest -x、テスト実行可能にtest -wな筆記用など


1
私にとって、これは最も役立つ答えです。user72025のものは近いものでしたが、結果が何であるかわかりませんでした。あなたはそれを明らかにしました。ありがとう。投票。
インスピレーション

6

su -s <shellname> <username>特定のユーザーとして特定のシェルを入力するために使用できることがわかりました。その後、通常どおりファイルのアクセス許可をテストできます。

例えば:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

非常に興味深いオプション。
アレックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.