Получение прав root для чтения и записи файлов в корневой каталог Apache2? [dубликат]

Подход с awk: чтобы работать с отдельными символами, задайте разделитель полей как пустое, избавьтесь от точки в исходном MAC-адресе и напечатайте точку после каждого второго символа. Для одного MAC-адреса код будет выглядеть так:

echo 5254.0040.8beb  | awk -F '' '{gsub(/\./,"");for(i=1;i<=NF;i++){printf $i;if(i%2 == 0 && i!=NF) printf ":"   }}'

Мы можем превратить код в исполняемый скрипт, например:

создать файл с именем mac-editor.awk. Его содержимое находится в файле ниже. Сделайте исполняемый файл сценария с помощью chmod 755 mac-editor.awk; Запустите код с входным файлом в качестве аргумента, подобного этому ./mac-editor.awk input-file.txt

Содержимое AWK-скрипта

#!/usr/bin/awk -f
BEGIN {
FS="";
}

{
 gsub(/\./,"");
 for(i=1;i<=NF;i++){
   printf $i;
   if(i%2 == 0 && i!=NF) 
      printf ":"   
 };
 printf "\n";
}

Содержимое AWK-скрипта [ ! d9]:

Демонстрация ниже показывает, как скрипт ведет себя с входным файлом, где у вас есть список MAC-адресов, по одному на строку.

$ cat mac-addresses.txt                                                        
7ab1.34b9.2eb0
2689.373c.d131
d271.a9a2.14c4

$ mac-editor.awk mac-addresses.txt                                             
7a:b1:34:b9:2e:b0
26:89:37:3c:d1:31
d2:71:a9:a2:14:c4
162
задан 2 June 2011 в 00:32

64 ответа

Все просто. Вам также не нужно включать apache 'UserDir' (не рекомендуется) и не вмешиваться в группы 'www-data' (группа apache в случае с Fedora)

Просто создайте каталог проекта внутри / var / www / html

  cd / var / www / html sudo mkdir my_project  

Затем просто запустите каталог проекта для своего пользователя.

  sudo chown your_username my_project  

Теперь вы можете начать работать в своей папке проекта как обычный пользователь с любым редактором, IDE по вашему выбору. Не больше sudos:)

5
ответ дан 14 August 2018 в 23:13
  • 1
    +1 Это то, что я делаю: изменить собственность не на / var / www , а на подкаталоги. – fkraiem 20 October 2016 в 18:33

chmod в / var на www, чтобы позволить владельцу доступа, и chown, чтобы убедиться, что вы владеете им. Вероятно, глупая идея, но это определенно сработает.

1
ответ дан 14 August 2018 в 23:13
  • 1
    Не глупая идея, это разумная идея безопасности. Примечание. Вам не нужно (и не должно) изменять разрешения / var , просто / var / www и / или его содержимое. – thomasrutter 24 November 2016 в 03:43

Вместо того, чтобы хранить мои веб-сайты в / var / www, я размещаю ссылки на сайты, которые находятся в моей домашней папке. Я могу свободно редактировать или добавлять страницы на свои сайты. Когда я доволен изменениями, я передаю FTP хостинговой компании, где мое доменное имя связывается.

6
ответ дан 14 August 2018 в 23:13

Если вы делаете / var / www записываемым по своей группе и добавляете себя в группу, вам не придется использовать sudo, будучи еще достаточно безопасным. Попробуйте следующее:

  sudo adduser & lt; имя пользователя & gt;  www-data sudo chown -R www-data: www-data / var / www sudo chmod -R g + rw / var / www  

Затем вы должны иметь возможность редактировать / var / www / без проблем.

Первая строка добавляет вас в группу www-data , вторая строка очищает все файлы с испорченной собственностью , а третий делает так, чтобы все пользователи, являющиеся членами группы www-data , могли читать и записывать все файлы в / var / www .

6
ответ дан 14 August 2018 в 23:13
  • 1
    Это очень плохая идея для безопасности, и этот совет не следует соблюдать по причинам, объясняемым в других ответах. Предполагается, что www-data будет непривилегированной группой без доступа на запись. – thomasrutter 24 November 2016 в 03:45