Когда я собираюсь изменить свое разрешение файла как это
$ sudo chmod a+x *.*
Эта ошибка появляется
chmod: cannot access ‘*.*’: No such file or directory
И когда я хочу изменить разрешение каждого файла в каталоге с
$ sudo chmod a+x directory/*
Та же ошибка появляется
chmod: cannot access ‘directory/*’: No such file or directory
Когда я пробую ту же команду в другом каталоге, это работает, но в соответствии с этим каталогом,/var/www/html, это не работает, но даже когда я изменяю файл разрешения файлом к a+x, когда я работаю
ls
Ошибка разрешения появляется
ls: cannot open directory .: Permission denied
Расширение файла в Linux не является чем-то особенным, это всего лишь часть имени файла. Глобализация файла оболочки использует *
для всех символов, так что вы можете просто использовать chmod a+x *
вместо .
Эти ls
проблема кажется, что у Вас не могло бы быть необходимых полномочий на каталоге. Как https://состояния stackoverflow.com/a/15800917/3501748: для каталогов нужен выполнить набор полномочий для наблюдения их содержания.
cd
поддерживают уровень и видят то, что полномочия находятся на каталоге, из которого Вы только что произошли. sudo
не дает Вам прав получить доступ к папке, если корень не имеет никаких прав на ту папку. Возможно sudo -u <username>
мог бы помочь.
, Если необходимо рекурсивно вызвать через дерево каталогов ниже использования начальной точки chmod -R
.
Во-первых, я хотел бы подтвердить существующие ответы:
*
для общего подстановочного знака в Ubuntu (или, я верю, Unix в целом). (Действительно ли это возможно это directory
в Вашем примере пусто, вызывая ошибку chmod: cannot access ‘directory/*’: No such file or directory
?)R
флаг в chmod
заставить его пересечь дерево рекурсивно, изменяя полномочия всего под Вашей текущей точкой. Таким образом, используйте chmod -R directory
, или если Вы испытываете недостаток в полномочиях sudo chmod -R directory
(однако, обязательно не непреднамеренно измените полномочия на системных файлах при использовании sudo
кому: chmod
; Ваш собственный пользователь просто испытывает недостаток в полномочиях сделать так, делая первый вариант более безопасным).Однако я хотел бы добавить, что Вы не могли бы хотеть изменять полномочия каталогов таким же образом, Вы делаете файлы. Как объяснено в официальной документации, чтение (r
) разрешение для каталогов означает способность просмотреть ее содержание (такое как использование ls
), запись (w
) разрешение позволяет пользователю создавать/удалять файлы в нем и выполнение (x
) разрешение к cd
внутри. Существует большой ответ, здесь предлагающий, чтобы метод различал файлы и каталоги при применении новых полномочий рекурсивно. Различное использование xargs
предположительно, быстрее. Вы могли бы хотеть добавить r
флаг к xargs
избегать ошибки в случае, если find
возвраты ничто, и если Вам нужно root
полномочия необходимо использовать sudo
для обеих половин канала (снова, проявите заботу когда chmod
луг как root
), так, чтобы был бы:
sudo находят [путь/к/dir] - тип d-print0 | sudo xargs-0r chmod [desired-dir-permissions]
sudo находят [путь/к/dir] - тип f-print0 | sudo xargs-0r chmod [desired-file-permissions]
где [desired-*-permissions]
может быть дан явно (777
) или использование букв (как a+x
).