Я хотел бы изменить права доступа к папке и всем ее подпапкам и файлам за один шаг (команду) в Linux.
Я уже попробовал приведенную ниже команду, но она работает только для указанной папки:
chmod 775 /opt/lampp/htdocs
Есть ли способ , чтобы установить chmod 755
для /opt/lampp/htdocs
и все его содержимое , включая вложенные папки и файлы?
Кроме того, в будущем, если я создам новую папку или файл внутри htdocs
, как автоматически могут быть установлены разрешения для этого 755
?
Я тоже посмотрел эту ссылку:
http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal
chmod 75 /opt/lampp/htdocs
или так и должно бытьchmod 755 /opt/lampp/htdocs
?Ответы:
Другие ответы верны, в этом
chmod -R 755
будут установлены эти разрешения для всех файлов и подпапок в дереве. Но с какой стати вы хотите ? Это может иметь смысл для каталогов, но зачем устанавливать бит выполнения для всех файлов?Я подозреваю, что вы действительно хотите сделать, это установить каталоги на 755 и либо оставить файлы в покое, либо установить их на 644. Для этого вы можете использовать
find
команду. Например:Чтобы изменить все каталоги на 755 (
drwxr-xr-x
):Чтобы изменить все файлы на 644 (
-rw-r--r--
):источник
{} \;
хочет объяснить, что означает конец строки?chmod 644 {} \;
указывает команду, которая будет выполнятьсяfind
для каждого файла.{}
заменяется путем к файлу, а точка с запятой обозначает конец команды (экранированный, в противном случае он будет интерпретироваться оболочкой вместоfind
).Проверьте опцию -R
chmod -R <permissionsettings> <dirname>
В будущем вы можете сэкономить много времени, проверив сначала справочную страницу:
Итак, в этом случае:
источник
man
?man
. Особенно для чего-то вроде того,grep
где, если вы новичок,man
поиск примеров в документе может занять очень много времени, однако Google или SO предоставляют примеры в течение нескольких секунд.Если вы хотите установить разрешения для всех файлов
a+r
и всех каталоговa+x
и сделать это рекурсивно через полное дерево подкаталогов, используйте:X
(То есть капиталX
, не малоx
!) Игнорируется для файлов (если они не являются исполняемыми для кого - то уже есть ) , но используется для каталогов.источник
chmod
документам, где я понял, что могу использоватьchmod -R g+wX .
. Браво!x
файлы, если они уже есть.Вы можете использовать
-R
сchmod
для рекурсивного обхода всех файлов и подпапок.Вам может понадобиться sudo, так как это зависит от того, установлен LAMP текущим пользователем или другим пользователем:
источник
sudo chmod 755 -R /directory
не сработало, но сработалоsudo chmod -R 755 /directory
. Weird. Я использую Mac OS X, кстати.sudo chmod 755 -R
Правильная рекурсивная команда:
-R
: изменить каждую подпапку, включая текущую папкуисточник
Чтобы установить все подпапки (рекурсивно), используйте -R
И используйте umask для установки по умолчанию новых папок / файлов cd / folder umask 755источник
umask
на 755! Вы не сможете перечислять, читать или использовать любые файлы или каталоги, которые вы создаете!λ ~ → umask 022 λ ~ → umask -S u=rwx,g=rx,o=rx λ ~ → umask 755 λ ~ → umask -S u=,g=w,o=w
chmod 755 -R /opt/lampp/htdocs
будет рекурсивно устанавливать разрешения. Невозможно автоматически установить разрешения для файлов только в этом каталоге, который создается после установки разрешений, но вы можете изменить общесистемные разрешения для файлов по умолчанию с помощью параметраumask 022
.источник
inherit
быть решением многих случаев, или он будет работать исключительно с NTFS-3G?myforlder
из других мест (например, ПК) в этот целевой каталог (на сервере), потому что он попытается создать новую папку в целевой каталог с именем, наmyfolder
которое у вас нет разрешения. Как и у меняroot
, я просто используюchown -R username:usergroup /directory
.Возможно, вы захотите рассмотреть этот ответ, данный nik для суперпользователя, и использовать «один chmod» для всех файлов / папок, например:
источник
-exec
опцию дляfind
того, чтобы преодолетьArgument list too long
ошибку.Использование:
Однако будьте осторожны с этим. Это может действительно навредить вам, если вы измените права доступа к неправильным файлам / папкам.
источник
Вот еще один способ установить каталоги на 775 и файлы на 664.
Это может выглядеть долго, но довольно круто по трем причинам:
man
страниц (см. Ниже).Обратите внимание, что я не подтвердил разницу в производительности (если есть) между этим решением и простым использованием двух команд поиска (как в решении Питера Мортенсена). Тем не менее, увидеть подобный пример в руководстве обнадеживает.
Пример со
man find
страницы:ура
источник
chmod -R 755 directory_name
работает, но как бы вы сохранили новые файлы на 755? Разрешения файла становятся разрешением по умолчанию.источник
Для Mac OS X 10.7 (Lion) это:
И да, как и все другие говорят, будьте осторожны при этом.
источник
Вы хотите убедиться, что соответствующие файлы и каталоги имеют права chmod-ed / permissions для них. Для всех каталогов вы хотите
И для всех изображений, JavaScript, CSS, HTML ... ну, вы не должны их выполнять. Так что используйте
Но для всего логического кода (например, PHP-кода) вы должны установить разрешения таким образом, чтобы пользователь не мог видеть этот код:
источник
Я думаю, что Адам спрашивал, как изменить значение umask для всех процессов, над которыми связывается работа
/opt/lampp/htdocs
каталогом.Маска пользовательского режима создания файлов (umask) используется для определения прав доступа для вновь создаваемых файлов. Его можно использовать для управления разрешением по умолчанию для новых файлов.
так что если вы будете использовать какую-то программу ftp для загрузки файлов в
/opt/lampp/htdocs
вам необходимо настроить ваш ftp-сервер так, чтобы он использовал umask, который вы хотите.Если файлы / каталоги создаются, например, с помощью php, вам нужно изменить код php
если вы создадите новые файлы / папки из вашего сеанса bash, вы можете установить значение umask в своем профиле оболочки ~ / .bashrc. Или вы можете настроить umask
/etc/bashrc
или/etc/profile
файл для всех пользователей. добавьте в файл следующее: umask 022А для изменения прав доступа к уже созданным файлам вы можете использовать find. Надеюсь это поможет.
источник
Есть два ответа на поиск файлов и применение
chmod
к ним. Первый -find
это файл, который применяетсяchmod
как он находит (как предложено @WombleGoneBad).Второе решение - создать список всех файлов с помощью
find
команды и предоставить этот списокchmod
команде (как предложено @lamgesh).Обе эти версии работают хорошо, если количество файлов, возвращаемых
find
командой, мало. Второе решение выглядит привлекательно и более читабельно, чем первое. Если существует большое количество файлов, второе решение возвращает ошибку:Argument list too long.
Итак, мое предложение
chmod -R 755 /opt/lampp/htdocs
если вы хотите изменить права доступа ко всем файлам и каталогам одновременно.find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
если количество файлов, которые вы используете, очень велико.-type x
опции поиск определенного типа только файл, где d используется для поиска каталога, F для файла и л для ссылки.chmod 755 $(find /path/to/base/dir -type d)
иначеисточник
Это очень просто
В Терминале зайдите в файловый менеджер. Пример:
sudo nemo
. Перейдите,/opt/
затем нажмите Свойства → Разрешение . а потом Другое . Наконец, перейдите к созданию и удалению и доступу к файлу для чтения и записи и нажмите кнопку «Применить». И работа.источник