web-dev-qa-db-ja.com

ホームディレクトリのパブリックファイルを一覧表示するにはどうすればよいですか? (モード777)

ホームフォルダー内のすべてのファイルの一覧を取得し、rwx(読み取り-書き込み-実行)またはeveryoneの777権限を取得します。

また、ファイルの権限を知るためのコマンドは何ですか?

7
Eight

ターミナルから:

  • デフォルトでは、ターミナルはホームディレクトリで開きます。他の場所からcd ~と入力して、ホームディレクトリに戻ります。

  • ls -lは、最初にファイルの許可を表示します。

    -rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-AMD64

最初の方法:watch-and-learnの方法

  • 次に、grepでフィルタリングして、目的の結果を取得できます。

    ls -l | grep -P ".{7}rwx.*"
    • ここの正規表現は、grepに、文字8から10がrwxである行のみを選択するように指示します
  • 私のホームディレクトリに表示されます:

    -rwxrwxrwx 1 izx izx 0 Jun 15 23:42 sd.png 
    -rwxrwxrwx 1 izx izx 0 Jun 15 23:42 slashdot.png 
     drwxrwxrwx 3 izx izx 4096 Jun 15 21:31 src 
    

2番目の方法:適切で再帰的な方法

  • ホームディレクトリでfind . -perm -a+rwxと入力します

    • あなたはfindに現在の(ホーム)ディレクトリとすべてのサブディレクトリを見て、すべてでrwxであるファイルを探すように指示しています。結果は、完全な相対パスで表示されます。
     ./。mozilla/firefox/lr5z24b3.default/lock 
    ./src
     ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so 
     ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la 
     ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0 
     ./ src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so 
     ./ src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0 
     ./ src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so 
     ./ src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0 
     ./。Pulse/676238f89edd1f57138b3da400000004-runtime 
    ./sd.png./slashdot.png
     ./ XnView/lib/libQtGui.so.4 
     ./ XnView/lib/libQtWebKit.so.4 
     ./ XnView/lib/libQtXml.so.4 
     ./ XnView/lib/libQtDBus.so.4 
     ./ XnView/lib/libQtNetwork.so.4 
     ./ XnView/lib/libQtCore.so.4 
     ./ XnView/lib/libQtSvg.so.4 
    
  • ホームディレクトリの太字のエントリは、最初の方法でも表示されます。


findを使用して目的を達成するためのその他の方法については、 Eliah Kaganの答え を参照してください。

12
ish

通常、lsコマンドを使用して、ファイルの権限を確認します。ただし、特定の権限を持つファイルを自動的に一覧表示する特定のタスクでは、lsなどの別のユーティリティで出力をフィルター処理しても、grepを使用すると、すぐに非常に複雑になります。そのため、このようなタスクには、findを使用することをお勧めします。

あるすべてのファイルをリストしたい場合...

  1. 含まれるホームディレクトリ内の任意の場所(ホームディレクトリのサブディレクトリ、それらのサブディレクトリのサブディレクトリなどを含む)、および

  2. また、誰でも明示的に読み取り、書き込み、および実行可能です

...このコマンドはあなたのためにそれを行います:

find ~ -perm 777

本当に簡単です。

上記の2つの条件を満たし、ホームディレクトリ内に直接存在する(サブディレクトリ内にない)ファイルのみを一覧表示する場合は、代わりに次のコマンドを使用します。

find ~ -maxdepth 1 -perm 777
  • この場合、777は、あなた、あなたのグループ、その他すべての人にとって読み取り、書き込み、実行可能なファイルを示します。一部のファイルに477(ファイルを読み取ることができ、他のすべてのユーザーがファイルを実行して書き込むことができる)などの奇妙なアクセス権セットがある場合、おそらく次を使用する必要があります。

    find ~ -maxdepth 1 -perm -o+rwx
    

    -o+rwxの前の先頭のハイフンは、ファイルが他のアクセス権を持つことができることを意味し、o+rwxothers(そのファイルを所有するグループおよびユーザー以外)が読み取り可能であることを意味し、他の許可を確認せずに、このファイルを作成して実行します。

これらおよび類似の操作の実行方法の詳細については man find を、man chmodおよびその他の数値モードの意味については 777 を参照してください。

4
Eliah Kagan
  • ターミナルを開きます。
  • コマンドでファイルのパーミッションを知りたいディレクトリに移動します:

    cd "Directory"
    
  • 引用符で囲まれたテキストを、必要なディレクトリ名に置き換えます。

  • 次に、別のコマンドを入力します。

    ls -l
    

    このコマンド(ls)は通常、ファイル名を取得するために使用されます。 -l引数は、ファイルに関する完全な情報を提供します。

    そのため、ファイルのアクセス許可も確認できます。

1
Pranit Bauva