Сценарий разрешения FS

Можно сделать это с GNU find и GNU mv:

find /dir1 -mindepth 2 -type f -exec mv -t /dir1 -i '{}' +

В основном, путь, который работает если это find проходит все дерево каталогов и для каждого файла (-type f) это не находится в каталоге верхнего уровня (-mindepth 2), это выполняет a mv для перемещения его в каталог, Вы хотите (-exec mv … +). -t аргумент mv позволяет Вам указать целевой каталог сначала, который необходим потому что + форма -exec помещает все исходные местоположения в конце команды. -i делает mv спросите прежде, чем перезаписать любые дубликаты; можно занять место -f перезаписывать их, не спрашивая (или -n не спросить или перезаписать).

Как Stephane Chazelas указывает, вышеупомянутое только работает с инструментами GNU (которые являются стандартными на Linux, но не большинстве других систем). Следующее несколько медленнее (потому что оно вызывает mv многократно), но намного более универсальный:

find /dir1 -mindepth 2 -type f -exec mv -i '{}' /dir1 ';'
1
06.08.2013, 15:06
2 ответа

Я предполагаю, что Вы хотите дать user1 доступ к/var/www/A, потому что Вы посещаете содержание, управляемое user1 с помощью http://your.domain/A? Почему бы не апачи перенаправляют содержание к каталогу в соответствии с пользовательским корневым каталогом?

Alias /A/ /path/to/users/homedir/A

Это достигнет результата и не иметь для изменения владения/полномочий группы/пользователя/path/to/users/homedir/A.

Однако, если Вы захотите сделать это полномочиями файла, то Вы только сможете достигнуть его путем изменения владения/полномочий/var/www и/var/www/A.

Создайте 'новую группу' (большинство unixes обеспечивает a groupadd команда), добавляют и апача и user1 к нему. Измените владение группы/var/www/A этой 'новой группе' (с также chown или chgrp). Установите полномочия запретить доступ к rw для 'новой группы' и 'других пользователей' к/var/www каталогу (chmod 711 /var/www) и предоставьте доступ к 'новой группе' для/var/www/A (chmod g+rwx /var/www/A).

Ссылки:

Директива псевдонима Apache

1
27.01.2020, 23:39
  • 1
    не Вы приняли неправильно @drav-sloan, user1 администратор Drupal, который должен загрузить/загрузить файлы Модуля Drupal на Многоузловую установку Drupal, полагающийся в /var/www/ –  slashsbin 07.08.2013, 10:39
  • 2
    Можно все еще сделать вышеупомянутое и символьную ссылку каталог от/var/www (гибкая ссылка не жесткая ссылка) и затем установить Options +FollowSymLinks для того каталога. –  Drav Sloan 07.08.2013, 12:13
  • 3
    это примерно не посещает содержание в сети @drav-sloan, сам Drupal, расположенный в /var/www/ должен иметь доступ для чтения-записи к, он - каталог модулей, который в вышеупомянутом сценарии является папкой A. –  slashsbin 07.08.2013, 13:40
  • 4
    При Установке полномочий, таким образом, апачский процесс может записать в каталог A все, что требуется - это являющийся за пределами/var/www не имеет никакого значения (символьная ссылка заботится и о php доступе и о веб-контенте). И это двигается Ваш, "не может делать изменения в/var/www владение/разрешение" проблемой. –  Drav Sloan 07.08.2013, 14:02
  • 5
    Вы правы, я должен видеть это этот путь, tnx –  slashsbin 07.08.2013, 15:31

Создайте группу group1, добавить apache и user1 кому: group1, затем измените группу, которая владеет /var/www/A кому: group1 использование chgrp как так:

# use `-R' if you want to do this recursively, that is grant `group1' access to 
# all sub-directories of `A' as well as access to `A' itself.

# as a regular user with sudo rights:

sudo chgrp -R group1 /var/www/A 

# as root 

chgrp -R group1 /var/www/A 

Таким образом, user1 не будет член апача и так не сможет читать /var/www, но все еще сможет читать /var/www/A, в то время как апач также сможет все еще читать /var/www/A.

Наконец, проверяют это дважды, элементы группы имеют read/write использование доступа chmod как так:

# use `-R' at your own discretion--it acts the same way as `-R' in `chgrp'

# as root 

chmod -R g=rw /var/www/A

# as a regular user with sudo rights

sudo chmod -R g=rw /var/www/A

Или что-то как этот.

1
27.01.2020, 23:39
  • 1
    apache разве пользователь, это не, группа, и я не могу добавить группу к другой группе в Linux, не так ли? –  slashsbin 07.08.2013, 10:37
  • 2
    @0x004D44 я понятия не имею, но общее представление работало бы. Возможно, Вы могли... Я не знаю. Действительно должен быть способ добавить группу к другой группе, все же. –  Alexej Magura 07.08.2013, 17:32

Теги

Похожие вопросы