権限を逆順で再帰的に確認するには?

権限を逆順で再帰的に確認するには?

Apacheに付属しているか、それに関連して常に権限を確認するコマンドがあります。したがって、権限がある場合は、、、および/home/foo/bar/baz権限が何であるかを知らせます。このコマンドが何であるか、それを実行する他の方法を知っている人はいますか?コマンドは、デフォルトでパラメーターで始まり、権限の問題があるかどうかを確認するための権限が何であるかを示します。bazbarfoohome/

答え1

あなたが考えることができるユーティリティはnameiコマンドです。マニュアルページによると:

Nameiは、その引数をすべての種類のUnixファイル(シンボルリンク、ファイル、ディレクトリなど)のパス名として使用します。その後、Nameiはエンドポイント(ファイル、ディレクトリ、文字デバイスなど)が見つかるまで各パス名に従います。シンボリックリンクが見つかったら、リンクを表示して続行し、コンテキストを表示するために出力をインデントします。

希望の出力は次のように受信できます。

$ namei -l /usr/src/linux-headers-2.6.35-22/include/
f: /usr/src/linux-headers-2.6.35-22/include/
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxrwsr-x root src  src
drwxr-xr-x root root linux-headers-2.6.35-22
drwxr-xr-x root root include

コマンドnameiLinuxユーティリティ-ngソフトウェアパッケージ。より マニュアルページ詳細については。

答え2

どのコマンドもわかりませんが、スクリプトを書くのは簡単です。

#!/bin/bash    
ARG=$1
while [[ "$ARG" != "." && "$ARG" != "/" ]]
do
        ls -ld -- "$ARG"
        ARG=`dirname -- "$ARG"`      
done

例:

$ perms.sh /tmp/1/2/3/hello.txt

-rw-rw-r--    1 user    group          0 Jan 14 16:59 /tmp/1/2/3/hello.txt
drwxrwxr-x    2 user    group       4096 Jan 14 16:59 /tmp/1/2/3
drwxrwxr-x    3 user    group       4096 Jan 14 16:43 /tmp/1/2
drwxrwxr-x    3 user    group       4096 Jan 14 16:43 /tmp/1
drwxrwxrwt   12 root     root       4096 Jan 14 17:02 /tmp

答え3

あなたが探しているコマンドは次のとおりです。

namei -l `pwd`

/tmp/foo/bar で実行すると、次のリストが表示されます。

drwxr-xr-x root   root   /
drwxrwxrwt root   root   tmp
drwxr-xr-x user   group  foo
drwxr-xr-x user   group  bar

答え4

これは簡単にラインにすることができます。これは再帰的ではなく、bashで比較的迅速に実行できる方法です。呼ぶパスワードすべてのループで特に高速ではないので、可能であれば避けてください。

#!/bin/bash
if [ -n "$1" ]; then
    echo "Usage: $0 [FILE]"
    exit 1
fi
cd -P -- "$1"
IFS="/"
set -f # turn off globbing for the expansion of $PWD below
for dir in $PWD; do
    stat -c "$PWD %A" .
    cd ..
done

別のオプションは、現在のディレクトリのコード行です。

(IFS="/"; set -f; for dir in $PWD; do stat -c "$PWD %A" .; cd ..; done)

関連情報