Почему символы вопросительного знака появляются при изменении разрешений каталога?

Я пытаюсь временно изменить разрешения для папки с начальными разрешениями

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 сервер запросы от клиента или нет.

33
задан 17 January 2013 в 00:58

3 ответа

Чтобы просмотреть права доступа к каталогу, вам нужно передать флаг -d в ls, например:

ls -ld squid3

Для чтения файла необходимо установить его разрешение на чтение. Однако для чтения каталога и списка его файлов необходимо установить разрешения как на чтение, так и на выполнение . Если это не так, вы получаете странные ошибки, подобные тем, которые вы испытываете.

Чтобы рекурсивно установить разрешение на чтение для файлов и разрешения на чтение и выполнение для каталогов, используйте эту команду:

chmod -R a+rX directoryname

Вот объяснение этой команды:

  • [ 114] - это имя команды, используемой для изменения прав доступа к файлам.
  • -R - рекурсивный флаг. Это означает применение этой команды к каталогу, всем его дочерним элементам, дочерним элементам и т. Д.
  • a означает все: примените эти разрешения к владельцу файла, владельцу группы файла и всем остальным пользователям.
  • + означает добавить следующие разрешения, если они еще не установлены.
  • r означает разрешение на чтение.
  • X означает разрешение на выполнение, но только для каталогов. Нижний регистр x будет означать разрешение на выполнение как для файлов, так и для каталогов.

Дополнительную информацию можно найти на странице руководства для команды chmod Manpage icon .

0
ответ дан 17 January 2013 в 00:58

Поскольку вы заявили, что ваша цель - прочитать /var/log/squid/access.log, лучшее решение - набрать sudo less /var/log/squid/access.log, что избавит вас от необходимости многократного chmodding.

0
ответ дан 17 January 2013 в 00:58

У меня тоже была эта проблема. Я не мог сделать chmod или chown на файл. Я пытался удалить его. Оказывается, попытка удалить его (команда rm) вызвала проблему. Главное, что файл распределяется между двумя разными системами . Как только я закрыл файл в другой системе, файл исчез. Вот больше деталей моей конфигурации. система 1: гостевая ВМ Ubuntu. Здесь я выполнил команду rm. Система 2: Windows 7 хост. Здесь я открыл файл с помощью команды less (в cygwin не обязательно, чтобы он был актуален).

0
ответ дан 17 January 2013 в 00:58

Другие вопросы по тегам:

Похожие вопросы: