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


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

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

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


162
2017-08-06 23:30


происхождения


Является ли это общедоступным сервером или нет прямого подключения к Интернету? Если первое важно, чтобы вы учитывали решения по безопасности, серверы в Интернете постоянно подвергаются атаке (посмотрите в своем / var / log / messages или аналогичном). - kwutchak
это всего лишь мой ноутбук, он недоступен из Интернета. - 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

Кроме того, вы должны сделать каталог и все каталоги под ним «set 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 {} \;

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


285
2017-08-07 00:15



это довольно утомительно ... Я не могу просто предоставить пользователям доступ к нему, как если бы это была любая другая папка? - Carson Myers
Что является как вы предоставляете ему доступ. Скорее скопировать и вставить команды, чем пытаться перемещаться по диалогам диспетчера файлов графического интерфейса, чтобы сделать то же самое. В долгосрочной перспективе это поможет вам, если вы прочитаете страницы руководства для chmod и chgrp, по крайней мере («man chmod»). - jtimberman
возможно, я не понял команды в первый раз, когда я его прочитал, и ваше редактирование делает его более понятным. - Carson Myers
+1 для guid для принудительного разрешения apache. хорошо работает с umask 027. Если что-то требует доступа к записи, это так же просто, как chmod g + w dir / - LiraNuna
Почему ваша команда разрешения группы sudo chmod -R g+w и не g+rw или g+rwX? - detly


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

sudo chmod -R 757 /var/www

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


25
2017-09-22 10:31



Не могли бы вы дать представление о том, что команда делает для OP? - n0pe
-1 из-за отсутствия объяснений. Кроме, chmod $permissions -R $file недействительно ... - Blacklight Shining
это параметры, а разрешения не наоборот. - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
пожалуйста, кто-то из опытных предложит править с кратким объяснением об этом. - Adi Prasetyo


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

sudo chmod -R a+rw /var/www

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

sudo chmod -R a+rwx /var/www

23
2017-08-09 19:22





Вы также можете воспроизвести то, что предложил 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, чтобы увидеть значения по умолчанию.


5
2017-08-08 12:29



Это лучший ответ! Хотелось бы, чтобы я проголосовал более одного раза. - Tim Duncklee


Быстрый и простой ответ -

а. Добавить (-a) ваш пользователь (user_name) группе () WWW-данные,

sudo usermod -a -G www-data user_name

б. Дайте Группе (г) тоже самое (знак равно) в качестве владеющего Пользователя (U) / Вар / WWW Рекурсивно ().

sudo chmod -R g=u /var/www

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


2
2018-02-20 02:20





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

chmod g+w /folder/ -R

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

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


1
2018-03-19 21:13





Можете ли вы просто попробовать chmod 0777 /var/www ?

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


-3
2017-08-07 02:01



так зачем предлагать это как решение, а затем сразу же дискредитировать его? -1 голос - Tisch


Сначала вы вводите конкретный путь к папке, а затем с помощью этой команды ...

chmod -R 777 foldername
chown username:username foldername 

-4
2017-09-30 09:58



Вау, это плохо! Вы не даете 777 с -R - особенно если человек, задающий вопрос, является новичком и не понимает рисков. - recluze
Допустимо @recluze. - vgoff