Я пытаюсь временно изменить разрешения для папки с начальными разрешениями
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 сервер запросы от клиента или нет.
Чтобы просмотреть права доступа к каталогу, вам нужно передать флаг -d
в ls
, например:
ls -ld squid3
Для чтения файла необходимо установить его разрешение на чтение. Однако для чтения каталога и списка его файлов необходимо установить разрешения как на чтение, так и на выполнение . Если это не так, вы получаете странные ошибки, подобные тем, которые вы испытываете.
Чтобы рекурсивно установить разрешение на чтение для файлов и разрешения на чтение и выполнение для каталогов, используйте эту команду:
chmod -R a+rX directoryname
Вот объяснение этой команды:
-R
- рекурсивный флаг. Это означает применение этой команды к каталогу, всем его дочерним элементам, дочерним элементам и т. Д. a
означает все: примените эти разрешения к владельцу файла, владельцу группы файла и всем остальным пользователям. +
означает добавить следующие разрешения, если они еще не установлены. r
означает разрешение на чтение. X
означает разрешение на выполнение, но только для каталогов. Нижний регистр x
будет означать разрешение на выполнение как для файлов, так и для каталогов. Дополнительную информацию можно найти на странице руководства для команды chmod
.
Поскольку вы заявили, что ваша цель - прочитать /var/log/squid/access.log
, лучшее решение - набрать sudo less /var/log/squid/access.log
, что избавит вас от необходимости многократного chmodding.
У меня тоже была эта проблема. Я не мог сделать chmod или chown на файл. Я пытался удалить его. Оказывается, попытка удалить его (команда rm) вызвала проблему. Главное, что файл распределяется между двумя разными системами . Как только я закрыл файл в другой системе, файл исчез. Вот больше деталей моей конфигурации. система 1: гостевая ВМ Ubuntu. Здесь я выполнил команду rm. Система 2: Windows 7 хост. Здесь я открыл файл с помощью команды less (в cygwin не обязательно, чтобы он был актуален).