ディレクトリの権限を変更するときに疑問符が表示されるのはなぜですか?


33

初期アクセス許可が一時的にあるフォルダーのアクセス許可を一時的に変更しようとしています

user@ubuntu:/var/log$ ls -l squid*
squid3:
total 4
-rw-r----- 1 proxy proxy    0 Jan 16 14:43 access.log
-rw-r----- 1 proxy proxy 1359 Jan 16 14:43 cache.log
ls: cannot open directory squid-deb-proxy: Permission denied

次のことへ

user@ubuntu:/var/log$ sudo chmod -R 644 squid*
user@ubuntu:/var/log$ ls -l squid*
squid3:
ls: cannot access squid3/cache.log: Permission denied
ls: cannot access squid3/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log

squid-deb-proxy:
ls: cannot access squid-deb-proxy/store.log: Permission denied
ls: cannot access squid-deb-proxy/cache.log: Permission denied
ls: cannot access squid-deb-proxy/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log
-????????? ? ? ? ?            ? store.log

アクセス許可を変更すると、どこにも疑問符が表示されます。なぜこうなった?基本的に、アクセスログを読んで、squid-deb-proxyサーバーがクライアントからリクエストを取得しているかどうかを確認します。

回答:


38

ディレクトリのアクセス許可を表示する-dにはls、次のようにフラグを渡す必要があります。

ls -ld squid3

ファイルを読み取るには、その読み取り許可を設定する必要があります。ただし、ディレクトリとそのファイルのリストを読み取るには、読み取り権限と実行権限の両方を設定する必要があります。そうでない場合は、発生しているような奇妙なエラーが発生します。

ファイルの読み取り権限とディレクトリの読み取りおよび実行権限を再帰的に設定するには、次のコマンドを使用します。

chmod -R a+rX directoryname

そのコマンドの説明は次のとおりです。

  • chmod コマンドの名前で、ファイルの許可を変更するために使用します。
  • -R再帰フラグです。つまり、このコマンドをディレクトリ、そのすべての子、およびその子の子などに適用します。
  • a すべての略:これらの権限をファイルの所有者、ファイルのグループ所有者、および他のすべてのユーザーに適用します。
  • + 次の権限がまだ設定されていない場合は追加することを意味します。
  • r は読み取り許可を意味します。
  • Xは実行許可を意味しますが、ディレクトリに対してのみです。小文字xは、ファイルとディレクトリの両方に対する実行許可を意味します。

詳細についてはchmodコマンドマンページアイコンマンページを参照してください


1
使用に問題があるchmod -R 644 squid*
登録ユーザー

4
@RegisteredUser:はい。644はrw-r--r--、ファイルには適していますが、ディレクトリには適していません。ディレクトリでは、次のように実行権限も設定する必要がありrwxr-xr-xます:または755。上記のコマンドは、すべてのファイルおよびディレクトリの実行権限を再帰的に設定解除するため、これらのエラーが発生します。
フリム

3

私もこの問題を抱えていました。ファイルに対してchmodまたはchownを実行できませんでした。私はそれを削除しようとしました。削除しようとすると(rmコマンド)問題が発生したことがわかりました。キッカーは、ファイルが2つの異なるシステム間で共有されることです他のシステムでファイルを閉じると、ファイルは消えました。 ここに私の設定の詳細があります。システム1:UbuntuゲストVM。ここで、rmコマンドを実行しました。システム2:Windows 7ホスト。これは、lessコマンドを使用してファイルを開いた場所です(cygwinでは、必ずしも関連するわけではありません)。


2

あなたの目標はを読むことであると述べたように/var/log/squid/access.log、あなたの最良の解決策はを入力するsudo less /var/log/squid/access.logことです。

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