it-swarm.xyz

Как я могу дать права на запись в папку всем пользователям Linux?

Я только что установил Apache2 в Ubuntu и заметил, что папка/var/www защищена. Я могу просто Sudo все, но я бы предпочел просто дать ему доступ для записи.

Как я могу это сделать?

Я пытался Sudo chmod 7777 /var/www, но это не сработало.

184
Carson Myers

Чтобы лучше поделиться с несколькими пользователями, которые должны иметь возможность писать в /var/www, ему должна быть назначена общая группа. Например, группа по умолчанию для веб-материалов в Ubuntu и Debian - www-data. Убедитесь, что все пользователи, которым нужен доступ для записи в /var/www, входят в эту группу.

Sudo usermod -a -G www-data <some_user>

Затем установите правильные разрешения на/var/www.

Sudo chgrp -R www-data /var/www
Sudo chmod -R g+w /var/www

Кроме того, вы должны сделать каталог и все каталоги ниже него «установленными GID», чтобы все новые файлы и каталоги, созданные в /var/www, принадлежали группе www-data.

Sudo find /var/www -type d -exec chmod 2775 {} \;    

Найдите все файлы в /var/www и добавьте права на чтение и запись для владельца и группы:

Sudo find /var/www -type f -exec chmod ug+rw {} \;

Возможно, вам придется выйти и снова войти, чтобы иметь возможность вносить изменения, если вы редактируете разрешение для своей учетной записи.

313
jtimberman

Есть более простой способ сделать это, попробуйте выполнить эту команду.

Sudo chmod -R 757 /var/www

По сути, команда chmod изменяет разрешения, а переключатель -R влияет на всех пользователей. Тогда это просто дает правильные разрешения на использование.

32
Krishna Modi

Чтение + запись:

Sudo chmod -R a+rw /var/www

Чтение + запись + Execute:

Sudo chmod -R a+rwx /var/www
27
paivaric

Вы также можете повторить то, что предложил jtimberman, используя списки контроля доступа . Команда setfacl принимает -s для замены существующего ACL или -m для его изменения; -R сделать рекурсивные списки ACL; и -d сделать указанные настройки настройками по умолчанию, что полезно, если вы ожидаете появления новых учетных записей пользователей.

Они просто устанавливают права доступа, как и для пользователя, группы, других и маски, используя chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

И это может быть, как вы бы сделали это для указанного пользователя или его/ее группы:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

И, конечно, сила в том, что вы можете назначить любого конкретного пользователя, нескольких пользователей и т.д., И все это без необходимости изменять настройки вашей группы. И в отличие от chmod, если вы хотите, чтобы некоторые поклонники имели доступ к одному каталогу, а другие поклонники имели доступ только к другому, это фактически возможно с помощью setfacl. Наконец, чтобы просмотреть ACL каталога, запустите getfacl :

getfacl DIRECTORY

И вы можете указать -R, чтобы увидеть ACL для подкаталогов, или -d, чтобы увидеть значения по умолчанию.

7
Nikhil Chelliah

Быстрый и легкий ответ -

а. Добавьте ( -a ) вашего пользователя ( имя_пользователя ) в группу ( -G ) www-data .

Sudo usermod -a -G www-data user_name

б. Дайте Группе ( g ) те же ( = ) разрешения, которые есть у пользователя-владельца ( u ) из/var/www Рекурсивно ( -R ).

Sudo chmod -R g=u /var/www

Объяснение: Apache 2 в Debian/Ubuntu устанавливает пользователя и группу www-data в качестве владельца/var/www . Разрешения по умолчанию для пользователя - «Просмотр и изменение содержимого», однако Группа может только «Просмотр содержимого». Поэтому добавление себя в группу www-data и предоставление ей тех же прав, что и для пользователя wwww-data, - это быстрый и простой способ начать разработку. Я делаю это для всех моих локальных (ПК/ноутбуков) сред веб-разработки.

2
user1138

Я обычно использую

chmod g+w /folder/ -R

Это почти самоочевидно.

Он добавляет всех в группу g из /folder/ для доступа к write (+w), -R для рекурсии подпапок.

1
Arda