linux - файлы - доступ к папке chmod




Как установить chmod для папки и всех ее подпапок и файлов? (11)

Есть ли способ установить chmod 755 для /opt/lampp/htdocs и всего его содержимого, включая подпапки и файлы?

Кроме того, в будущем, если я создам новую папку или файл внутри htdocs , как разрешений, которые автоматически устанавливаются на 755 ?

Это работает, но только для этой папки:

chmod 775 /opt/lampp/htdocs

Возможно, вы захотите рассмотреть этот ответ nik на суперпользователе и использовать «один chmod» для всех файлов / папок, как это:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

Вот еще один способ установить каталоги на 775 и файлы на 664.

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

Это может выглядеть долго, но это довольно круто по трем причинам:

  1. Сканирует файловую систему только один раз, а не дважды.
  2. Обеспечивает лучший контроль над тем, как обрабатываются файлы , и как обрабатываются каталоги . Это полезно при работе со специальными режимами, такими как липкий бит , который, вероятно, вы хотите применить к каталогам, но не к файлам.
  3. Использует технику прямо из 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-ed / permissions для них подходящими. Для всех каталогов, которые вы хотите

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

И да, как говорят другие, будьте осторожны, когда делаете это.


Другие ответы верны, поскольку chmod -R 755 установит эти разрешения для всех файлов и подпапок в дереве. Но зачем же вы этого хотите ? Это может иметь смысл для каталогов, но зачем устанавливать бит выполнения во всех файлах?

Я подозреваю, что вы действительно хотите установить каталоги на 755 и либо оставить файлы в покое, либо установить их на 644. Для этого вы можете использовать команду find . Например:

Чтобы изменить все каталоги на 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 {} \;

Если вы хотите установить разрешения для всех файлов на a+r и все каталоги на a+x и сделать это рекурсивно через полное дерево подкаталогов, используйте:

chmod -R a+rX *

X (то есть капитал X , а не маленький x !) Игнорируется для файлов (если только они не исполняются для кого-то уже), а используется для каталогов.


Использование:

sudo chmod 755 -R /whatever/your/directory/is

Однако будьте осторожны с этим. Это может повредить вам, если вы измените права на неправильные файлы / папки.


Правильная рекурсивная команда:

sudo chmod 755 -R /opt/lampp/htdocs

-R : изменить каждую подпапку, включая текущую папку


Это очень просто.

В терминале перейдите в диспетчер файлов. пример: sudo nemo . Перейдите /opt/ затем нажмите Свойства → Разрешение . а затем другое . Наконец, измените создание и удаление и файл acess для чтения и записи и нажмите кнопку применить ... И работайте.


Я думаю, что Адам /opt/lampp/htdocs вопрос о том, как изменить значение umask для всех процессов, связанных с /opt/lampp/htdocs каталоге /opt/lampp/htdocs .

Маска режима создания файла пользователя (umask) используется для определения разрешения файла для вновь созданных файлов. Он может использоваться для управления разрешением файла по умолчанию для новых файлов.

поэтому, если вы будете использовать какую-то программу ftp для загрузки файлов в /opt/lampp/htdocs вам нужно настроить ftp-сервер на использование umask, который вы хотите.

Если файлы / каталоги создаются, например, php, вам необходимо изменить php-код

<?php
umask(0022);
// other code
?>

если вы создадите новые файлы / папки из своего сеанса bash, вы можете установить значение umask в свой профиль оболочки ~ / .bashrc. Или вы можете настроить umask в /etc/bashrc или /etc/profile для всех пользователей. добавьте в файл следующее: umask 022

Sample umask Values and File Creation Permissions
If umask value set to   User permission     Group permission     Others permission
000                         all              all                   all
007                         all              all                   none
027                         all          read / execute            none

И чтобы изменить разрешения для уже созданных файлов, вы можете использовать find. Надеюсь это поможет.


chmod 755 -R /opt/lampp/htdocs будет рекурсивно устанавливать разрешения. Невозможно установить разрешения для файлов автоматически только в этом каталоге, который создается после того, как вы установите разрешения, но вы можете изменить права доступа к файлу по умолчанию для всей системы, установив umask 022 .





chmod