Как установить chmod для папки и всех ее подпапок и файлов? [закрытый]
есть ли способ установить chmod 755
на /opt/lampp/htdocs
и все его содержимое, включая вложенные папки и файлы?
кроме того, в будущем, если я создам новую папку или файл внутри htdocs
, как можно автоматически установить разрешения на 755
?
это работает, но только для этой папки:
chmod 775 /opt/lampp/htdocs
16 ответов
другие ответы верны, в том, что chmod -R 755
будет установить эти разрешения для всех файлов и вложенных папок в дереве. но с какой стати ты хочешь этого?--8-->? Это может иметь смысл для каталогов, но зачем устанавливать бит execute для всех файлов?
Я подозреваю, что вы действительно хотите установить каталоги в 755 и либо оставить файлы в покое, либо установить их в 644. Для этого вы можете использовать . Например:
изменить все директорий 755 (drwxr-xr-x
):
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
изменить все файлы 644 (-rw-r--r--
):
find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
Проверьте опцию-R
chmod -R <permissionsettings> <dirname>
в будущем вы можете сэкономить много времени, сначала проверив man-страницу:
man <command name>
таким образом:
man chmod
если вы хотите установить разрешения на все файлы a+r
и все каталоги к a+x
, и сделайте это рекурсивно через полное дерево подкаталогов, используйте:
chmod -R a+rX *
на X
(то есть капитал X
, не маленький x
!) не учитывается для файлов (если они не являются исполняемыми для кого-то уже), но используется для каталогов.
можно использовать -R
С chmod
для рекурсивного обхода всех файлов и вложенных папок.
вам может понадобиться sudo, поскольку это зависит от лампы устанавливается текущим пользователем или другим:
sudo chmod 755 -R /opt/lampp/htdocs
для установки во все подпапки (рекурсивно) используйте-R
chmod 755 /folder -R
и используйте umask для установки по умолчанию новых папок / файлов
cd / папка
umask 755
chmod 755 -R /opt/lampp/htdocs
будет рекурсивно задать права доступа. Невозможно установить разрешения для файлов автоматически только в этом каталоге, который создается после установки разрешений, но вы можете изменить системные разрешения по умолчанию, установив umask 022
.
правильная рекурсивная команда:
sudo chmod 755 -R /opt/lampp/htdocs
-R
: измените каждую подпапку, включая текущую папку
возможно, вы захотите рассмотреть этот ответ дал ник на суперпользователя и использовать "один chmod" для всех файлов / папок, как это:
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
использование:
sudo chmod 755 -R /whatever/your/directory/is
однако будьте осторожны с этим. Это действительно может повредить вам, если вы измените разрешения для файлов/папок.
вот еще один способ установить каталоги 775 и файлы 664.
find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)
это может выглядеть долго, но это довольно круто по трем причинам:
- сканирует файловую систему только один раз, а не два.
- обеспечивает лучший контроль над тем, как файлы обрабатываются против how каталоги обрабатываются. Это полезно при работе с специальные режимы например Sticky бит, который вы вероятно, хотите применить к каталогам, но не к файлам.
- использует технику прямо из
man
"страницы" (см. ниже).
обратите внимание, что я не подтвердил разницу в производительности (если таковая имеется) между этим решением и простым использованием двух команд find (как в решении Питера Мортенсена). В то же время отрадно видеть аналогичный пример в руководстве.
пример man find
страницы:
find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
Traverse the filesystem just once, listing setuid files and direc‐
tories into /root/suid.txt and large files into /root/big.txt.
Ура
chmod -R 755 directory_name
работает,но как бы вы сохранили новые файлы до 755? Разрешения файла становятся разрешениями по умолчанию.
вы хотите убедиться, что соответствующие файлы и каталоги являются chmod-ed/разрешения для тех, которые подходят. Для всех каталогов, которые вы хотите
find /opt/lampp/htdocs -type d -exec chmod 711 {} \;
и для всех изображений, JavaScript, CSS, HTML...ну, ты не должен их казнить. Так что используйте
chmod 644 img/* js/* html/*
но для всего логического кода (например, PHP-кода) Вы должны установить разрешения так, чтобы пользователь не мог видеть этот код:
chmod 600 file
для Mac OS X 10.7 (Lion), это:
chmod -R 755 /directory
и да, как говорят все остальные, будьте осторожны при этом.
Я думаю, Адам спрашивал, как изменить значение umask для всех процессов, которые связывают работать на
есть два ответа на поиск файлов и применение chmod
к ним. Первый -find
файл и применить chmod
как он находит (как предложено @WombleGoneBad).
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
второе решение-создать список всех файлов с find
команда и введите этот список в chmod
команда (как предложено @lamgesh).
chmod 755 $(find /path/to/base/dir -type d)
обе эти версии работают хорошо, пока количество файлов, возвращаемых мал. Второй решение отлично смотрится на глаз и более читабельно, чем первое. Если есть большое количество файлов, второе решение возвращает ошибку : Argument list too long.
Итак, мое предложение
- использовать
chmod -R 755 /opt/lampp/htdocs
если вы хотите изменить разрешения для всех файлов и каталогов одновременно. - использовать
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
если количество файлов, которые вы используете, очень велико. The-type x
опция ищет только определенный тип файла, где d используется для поиска каталога, f для файла и я по ссылке. - использовать
chmod 755 $(find /path/to/base/dir -type d)
иначе - лучше использовать первый в любой ситуации
Это очень просто.
в терминале перейдите в файловый менеджер. пример: sudo nemo
. Go /opt/
нажмите кнопку Разрешение → Свойства. а потом ... --5-->другое. Наконец, изменить, чтобы создать и удалить и файл acess для чтения и записи и нажмите на кнопку Применить... И работать.