Получение прав 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 ответа

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

6
ответ дан 3 August 2018 в 22:24

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

sudo adduser <username> 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
ответ дан 3 August 2018 в 22:24
  • 1
    Это очень плохая идея для безопасности, и этот совет не следует соблюдать по причинам, объясняемым в других ответах. Предполагается, что www-данные будут непривилегированной группой без доступа на запись. – thomasrutter 24 November 2016 в 03:45

Это просто. Вам не нужно включать 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
ответ дан 3 August 2018 в 22:24
  • 1
    +1 Это то, что я делаю: изменить собственность не на /var/www, а на подкаталоги. – fkraiem 20 October 2016 в 18:33

Don'ts

Не устанавливайте права доступа к файлам на 777 (доступно для записи в мире). Это существенный недостаток безопасности, особенно если вы включаете серверные скрипты, такие как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования скриптов на стороне сервера, выполнить произвольный код. Не добавляйте себя в качестве члена группы www-data и дайте ему права на запись. Цель этой группы состоит в том, что она является непривилегированной группой, которую серверные процессы выполняют как. Они должны иметь доступ только к файлам веб-сайта, где это возможно, по тем же причинам, что и выше. Не изменяйте разрешения процессов Apache. По умолчанию дочерние процессы Apache выполняются как пользователь и группа www-data, и это не должно изменяться. Это всего лишь способ не дать им права на запись в файловую систему. В определенных обстоятельствах вы хотите, чтобы ваши серверные сценарии могли записывать файлы, и в этом случае только файлы должны быть доступны для записи в www-data, и для обеспечения безопасности необходимо принять меры по обеспечению безопасности.

Dos

Не устанавливайте права доступа к файлам на 777 (доступно для записи в мире). Это существенный недостаток безопасности, особенно если вы включаете серверные скрипты, такие как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования сценариев на стороне сервера, выполнить произвольный код.

Не устанавливать права доступа к файлам 777 (world- доступно для записи)

Если /var/www не имеет смысла, вы можете разместить их в другом месте. Если они специфичны для вашей собственной разработки или тестирования, вы можете разместить их в своем домашнем каталоге. Или вы можете настроить некоторые каталоги в /srv. Не добавляйте себя как член группы www-data и дайте ему права на запись. Цель этой группы заключается в том, что она является непривилегированной группой, которую сервер обрабатывает как. Они должны иметь доступ только к файлам веб-сайта, где это возможно, по тем же причинам, что и выше.
5
ответ дан 3 August 2018 в 22:24

Вы можете запустить www-сеанс в терминале с помощью

sudo su www-data

В сочетании с приглашением по-разному цвета *, чтобы сделать его более очевидным, что это оболочка другого пользователя и политика всегда помещать соответствующий xterm (и редактор и т. д.) на, например, - виртуальный рабочий стол 4, чтобы вы привыкли к нему, чтобы избежать путаницы.

*) Для разного цвета приглашения с differnt, создайте файл / etc / prompt следующим образом:

# PROMPTING # When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the sec- # ondary prompt PS2 when it needs more input to complete a command. Bash allows these prompt strings to be customized # by inserting a number of backslash-escaped special characters that are decoded as follows: # \a an ASCII bell character (07) # \d the date in "Weekday Month Date" format (e.g., "Tue May 26") # \D{format} # the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format # results in a locale-specific time representation. The braces are required # \e an ASCII escape character (033) # \h the hostname up to the first `.' # \H the hostname # \j the number of jobs currently managed by the shell # \l the basename of the shell's terminal device name # \n newline # \r carriage return # \s the name of the shell, the basename of $0 (the portion following the final slash) # \t the current time in 24-hour HH:MM:SS format # \T the current time in 12-hour HH:MM:SS format # \@ the current time in 12-hour am/pm format # \A the current time in 24-hour HH:MM format # \u the username of the current user # \v the version of bash (e.g., 2.00) # \V the release of bash, version + patchelvel (e.g., 2.00.0) # \w the current working directory # \W the basename of the current working directory # \! the history number of this command # \# the command number of this command # \$ if the effective UID is 0, a #, otherwise a $ # \nnn the character corresponding to the octal number nnn # \\ a backslash # \[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence # into the prompt # \] end a sequence of non-printing characters # # The command number and the history number are usually different: the history number of a command is its position in # the history list, which may include commands restored from the history file (see HISTORY below), while the command # number is the position in the sequence of commands executed during the current shell session. After the string is # # colors: # \[...\] wird benötigt, damit die shell weiß, daß hier kein printable output ist, und die Umbrüche richtig plaziert. # # ANSI COLORS CRE="\[ [K\]" NORMAL="\[[0;39m\]" # RED: Failure or error message RED="\[[1;31m\]" # GREEN: Success message GREEN="\[[1;32m\]" # YELLOW: Descriptions YELLOW="\[[1;33m\]" # BLUE: System messages BLUE="\[[1;34m\]" # MAGENTA: Found devices or drivers MAGENTA="\[[1;35m\]" # CYAN: Questions CYAN="\[[1;36m\]" # BOLD WHITE: Hint WHITE="\[[1;37m\]" # # default: # postgres, oracle, www-data # # PS1=$BLUE"machine]->"$NORMAL\\w"$BLUE ø $NORMAL" PS1=$BLUE"machine]:"$NORMAL\\w"$BLUE > $NORMAL" # # root, stefan: # case "$UID" in '0') PS1=$RED"machine:"$NORMAL\\w"$RED # $NORMAL" ;; '1000') PS1=$GREEN"machine:"$BLUE\\w$YELLOW" > "$NORMAL ;; # default) # ;; esac

и, например, введите его из /etc/bash.bashrc.

В качестве дополнительного инструмента для разграничения вы всегда можете редактировать свои файлы с помощью псевдонима «edit» или символической ссылки, которая указывает, в зависимости от вашей личности (taylor / www-data), на gedit или mousepad, vim или pico. Или вы можете использовать разные профили редактора, по крайней мере, в gedit вы можете настроить свои предпочтения на черный текст на белом фоне или белом тексте на черном фоне, например.

У меня есть такая политика для работы как root, поэтому я не уверен, насколько она хороша для работы с www-данными. В сочетании с ssh-сессиями для разных хостов, у которых есть свои собственные подсказки, это не мешало мне иногда ошибаться, но если это происходит, я быстро понимаю, что не так, и это происходит редко.

note: скрипт-запрос частично является копией справочной страницы bash.

1
ответ дан 3 August 2018 в 22:24
  • 1
    Это будет работать и не будет (если будет использоваться осторожно) негативно повлиять на безопасность, но не может быть самым простым решением. Это действительно приемлемое решение для некоторых людей. – thomasrutter 24 November 2016 в 03:47

На этой странице моего сайта я описываю команды для изменения разрешения в /var/www между apache и пользователем pi, но его существенное

sudo chown -R pi /var/www

, а затем перезапуск apache

sudo service apache2 restart
-1
ответ дан 3 August 2018 в 22:24

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

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

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

6
ответ дан 5 August 2018 в 06:35

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

sudo adduser <username> 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
ответ дан 5 August 2018 в 06:35
  • 1
    Это очень плохая идея для безопасности, и этот совет не следует соблюдать по причинам, объясняемым в других ответах. Предполагается, что www-данные будут непривилегированной группой без доступа на запись. – thomasrutter 24 November 2016 в 03:45

Это просто. Вам не нужно включать 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
ответ дан 5 August 2018 в 06:35
  • 1
    +1 Это то, что я делаю: изменить собственность не на /var/www, а на подкаталоги. – fkraiem 20 October 2016 в 18:33

Don'ts

Не устанавливайте права доступа к файлам на 777 (доступно для записи в мире). Это существенный недостаток безопасности, особенно если вы включаете серверные скрипты, такие как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования скриптов на стороне сервера, выполнить произвольный код. Не добавляйте себя в качестве члена группы www-data и дайте ему права на запись. Цель этой группы состоит в том, что она является непривилегированной группой, которую серверные процессы выполняют как. Они должны иметь доступ только к файлам веб-сайта, где это возможно, по тем же причинам, что и выше. Не изменяйте разрешения процессов Apache. По умолчанию дочерние процессы Apache выполняются как пользователь и группа www-data, и это не должно изменяться. Это всего лишь способ не дать им права на запись в файловую систему. В определенных обстоятельствах вы хотите, чтобы ваши серверные сценарии могли записывать файлы, и в этом случае только файлы должны быть доступны для записи в www-data, и для обеспечения безопасности необходимо принять меры по обеспечению безопасности.

Dos

Не устанавливайте права доступа к файлам на 777 (доступно для записи в мире). Это существенный недостаток безопасности, особенно если вы включаете серверные скрипты, такие как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования сценариев на стороне сервера, выполнить произвольный код.

Не устанавливать права доступа к файлам 777 (world- доступно для записи)

Если /var/www не имеет смысла, вы можете разместить их в другом месте. Если они специфичны для вашей собственной разработки или тестирования, вы можете разместить их в своем домашнем каталоге. Или вы можете настроить некоторые каталоги в /srv. Не добавляйте себя как член группы www-data и дайте ему права на запись. Цель этой группы заключается в том, что она является непривилегированной группой, которую сервер обрабатывает как. Они должны иметь доступ только к файлам веб-сайта, где это возможно, по тем же причинам, что и выше.
5
ответ дан 5 August 2018 в 06:35

Вы можете запустить www-сеанс в терминале с помощью

sudo su www-data

В сочетании с приглашением по-разному цвета *, чтобы сделать его более очевидным, что это оболочка другого пользователя и политика всегда помещать соответствующий xterm (и редактор и т. д.) на, например, - виртуальный рабочий стол 4, чтобы вы привыкли к нему, чтобы избежать путаницы.

*) Для разного цвета приглашения с differnt, создайте файл / etc / prompt следующим образом:

# PROMPTING # When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the sec- # ondary prompt PS2 when it needs more input to complete a command. Bash allows these prompt strings to be customized # by inserting a number of backslash-escaped special characters that are decoded as follows: # \a an ASCII bell character (07) # \d the date in "Weekday Month Date" format (e.g., "Tue May 26") # \D{format} # the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format # results in a locale-specific time representation. The braces are required # \e an ASCII escape character (033) # \h the hostname up to the first `.' # \H the hostname # \j the number of jobs currently managed by the shell # \l the basename of the shell's terminal device name # \n newline # \r carriage return # \s the name of the shell, the basename of $0 (the portion following the final slash) # \t the current time in 24-hour HH:MM:SS format # \T the current time in 12-hour HH:MM:SS format # \@ the current time in 12-hour am/pm format # \A the current time in 24-hour HH:MM format # \u the username of the current user # \v the version of bash (e.g., 2.00) # \V the release of bash, version + patchelvel (e.g., 2.00.0) # \w the current working directory # \W the basename of the current working directory # \! the history number of this command # \# the command number of this command # \$ if the effective UID is 0, a #, otherwise a $ # \nnn the character corresponding to the octal number nnn # \\ a backslash # \[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence # into the prompt # \] end a sequence of non-printing characters # # The command number and the history number are usually different: the history number of a command is its position in # the history list, which may include commands restored from the history file (see HISTORY below), while the command # number is the position in the sequence of commands executed during the current shell session. After the string is # # colors: # \[...\] wird benötigt, damit die shell weiß, daß hier kein printable output ist, und die Umbrüche richtig plaziert. # # ANSI COLORS CRE="\[ [K\]" NORMAL="\[[0;39m\]" # RED: Failure or error message RED="\[[1;31m\]" # GREEN: Success message GREEN="\[[1;32m\]" # YELLOW: Descriptions YELLOW="\[[1;33m\]" # BLUE: System messages BLUE="\[[1;34m\]" # MAGENTA: Found devices or drivers MAGENTA="\[[1;35m\]" # CYAN: Questions CYAN="\[[1;36m\]" # BOLD WHITE: Hint WHITE="\[[1;37m\]" # # default: # postgres, oracle, www-data # # PS1=$BLUE"machine]->"$NORMAL\\w"$BLUE ø $NORMAL" PS1=$BLUE"machine]:"$NORMAL\\w"$BLUE > $NORMAL" # # root, stefan: # case "$UID" in '0') PS1=$RED"machine:"$NORMAL\\w"$RED # $NORMAL" ;; '1000') PS1=$GREEN"machine:"$BLUE\\w$YELLOW" > "$NORMAL ;; # default) # ;; esac

и, например, введите его из /etc/bash.bashrc.

В качестве дополнительного инструмента для разграничения вы всегда можете редактировать свои файлы с помощью псевдонима «edit» или символической ссылки, которая указывает, в зависимости от вашей личности (taylor / www-data), на gedit или mousepad, vim или pico. Или вы можете использовать разные профили редактора, по крайней мере, в gedit вы можете настроить свои предпочтения на черный текст на белом фоне или белом тексте на черном фоне, например.

У меня есть такая политика для работы как root, поэтому я не уверен, насколько она хороша для работы с www-данными. В сочетании с ssh-сессиями для разных хостов, у которых есть свои собственные подсказки, это не мешало мне иногда ошибаться, но если это происходит, я быстро понимаю, что не так, и это происходит редко.

note: скрипт-запрос частично является копией справочной страницы bash.

1
ответ дан 5 August 2018 в 06:35
  • 1
    Это будет работать и не будет (если будет использоваться осторожно) негативно повлиять на безопасность, но не может быть самым простым решением. Это действительно приемлемое решение для некоторых людей. – thomasrutter 24 November 2016 в 03:47

На этой странице моего сайта я описываю команды для изменения разрешения в /var/www между apache и пользователем pi, но его существенное

sudo chown -R pi /var/www

, а затем перезапуск apache

sudo service apache2 restart
-1
ответ дан 5 August 2018 в 06:35

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

1
ответ дан 6 August 2018 в 23:53

Вы можете запустить www-сеанс в терминале с помощью

  sudo su www-data  

В сочетании с приглашением по-разному цвета *, чтобы сделать более очевидно, что это оболочка другого пользователя, и политика всегда ставит соответствующий xterm (и редактор и т. д.) на, например, - виртуальный рабочий стол 4, чтобы вы привыкли к нему, чтобы избежать путаницы.

*) Для разного цвета приглашения с отличающимся символом создайте файл / etc / prompt следующим образом:

  # PROMPTING # При интерактивном запуске bash отображает основной  подскажите PS1, когда он готов прочитать команду, и второе приглашение PS2, когда ему нужно больше ввода для завершения команды.  Bash позволяет настраивать эти строки для приглашений #, вставляя несколько специальных символов с обратным слэшем, которые декодируются следующим образом: # \ a символ колокола ASCII (07) # \ d дата в формате «День недели» (например,  «В мае 26») # \ D {format} # формат передается в strftime (3), и результат вставляется в строку приглашения;  пустой формат # приводит к представлению времени, специфичному для локали.  Скобки необходимы # \ e ASCII escape-символ (033) # \ h имя хоста до первого `. '  # \ H имя хоста # \ j количество заданий, которыми в настоящее время управляет оболочка # \ l базовое имя имени терминального устройства оболочки # \n newline # \r return return # \ s имя оболочки, базовое имя $ 0  (часть после последней косой черты) # \ t текущее время в 24-часовом формате HH: MM: SS # \ T текущее время в 12-часовом формате HH: MM: SS # \ @ текущее время в 12-часовом формате  am / pm format # \ A текущее время в 24-часовом формате HH: MM # \ u имя пользователя текущего пользователя # \ v версия bash (например, 2.00) # \ V выпуск bash, версия + patchelvel  (например, 2.00.0) # \ w текущий рабочий каталог # \ W базовое имя текущего рабочего каталога # \!  номер истории этой команды # \ # номер команды этой команды # \ $, если эффективный UID равен 0, a #, в противном случае $ # \nnn символ, соответствующий восьмеричному номеру nnn # \\ a обратная косая черта # \ [  начните последовательность непечатаемых символов, которые могут быть использованы для встраивания последовательности управления терминалом # в приглашение # \] для завершения последовательности непечатаемых символов # # Номер команды и номер истории обычно различаются: номер истории  команды - это его позиция в # списке истории, которая может включать в себя команды, восстановленные из файла истории (см. ИСТОРИЯ ниже), а номер команды # - это позиция в последовательности команд, выполняемых во время текущего сеанса оболочки.  После строки # # colors: # \ [... \] wird benötigt, damit die shell weiß, daß hier kein printable output ist, und die Umbrüche richtig plaziert.  # # ANSI COLORS CRE = "\ [[K \]" NORMAL = "\ [[0; 39m \]" # RED: сообщение об ошибке или ошибке RED = "\ [[1; 31m \]" # GREEN: сообщение об успешном завершении  GREEN = "\ [[1; 32m \]" # ЖЕЛТЫЙ: Описания YELLOW = "\ [[1; 33m \]" # BLUE: Системные сообщения BLUE = "\ [[1; 34m \]" # MAGENTA: найдены устройства  или драйверы MAGENTA = "\ [[1; 35m \]" # CYAN: Вопросы CYAN = "\ [[1; 36m \]" # BOLD WHITE: Hint WHITE = "\ [[1; 37m \]" # # по умолчанию  : # postgres, oracle, www-data # # PS1 = $ BLUE "machine] - & gt;" $ NORMAL \\ w "$ BLUE ø $ NORMAL" PS1 = $ BLUE "машина]:" $ NORMAL \\ w "$  BLUE & gt; $ NORMAL "# # root, stefan: # case" $ UID "в '0') PS1 = $ RED" machine: "$ NORMAL \\ w" $ RED # $ NORMAL ";;  '1000') PS1 = $ GREEN "machine:" $ BLUE \\ w $ ЖЕЛТЫЙ "& gt;" $ NORMAL ;;  # по умолчанию) # ;;  esac  

и, например, источник из /etc/bash.bashrc .

В качестве дополнительного инструмента, помогающего разграничить, вы всегда можете редактировать свои файлы с помощью псевдонима «edit» или символической ссылки, которая указывает, в зависимости от вашей личности (taylor / www-data) на gedit или mousepad, vim или pico. Или вы можете использовать разные профили редактора, по крайней мере, в gedit вы можете настроить свои предпочтения на черный текст на белом фоне или белом тексте на черном фоне, например.

У меня есть такая политика для работы с правами root, поэтому я не уверен, насколько она хороша для работы с www-данными. В сочетании с ssh-сессиями для разных хостов, у которых есть свои собственные подсказки, это не мешало мне иногда ошибаться, но если это происходит, я быстро понимаю, что не так, и это происходит редко.

note: скрипт-запрос частично является копией man-страницы bash.

1
ответ дан 6 August 2018 в 23:53

На этой странице моего сайта Я описываю команды для изменения разрешения в / var / www между apache и пользователем pi, но его существенное

  sudo chown -R pi / var / www  

, затем перезапуск apache

  sudo service apache2 restart  
-1
ответ дан 6 August 2018 в 23:53

Не пытайтесь

  • Не устанавливайте права доступа к файлам 777 (доступно для всего мира) Это существенный недостаток безопасности, особенно если вы включите серверную таких как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования скриптов на стороне сервера, выполнить произвольный код.
  • Не добавляйте себя как член www-data и предоставить права на запись. Цель этой группы состоит в том, что она является непривилегированной группой, с которой сервер обрабатывает как. Они должны только читать доступ к файлам веб-сайта, где это возможно, по тем же причинам, что и выше.
  • Не изменять разрешения процессов Apache. Дочерние процессы Apache выполняются как www-data пользователь и группа по умолчанию, и это не должно изменяться. Это всего лишь способ не дать им права на запись в файловую систему. В определенных обстоятельствах вы хотите, чтобы ваши серверные скрипты могли записывать файлы, и в этом случае только эти файлы должны быть доступны для записи через www-data , а уход должен

Dos

  • Установите файлы, принадлежащие вам самим. Если вы являетесь единственным или обычным, чтобы изменить некоторые файлы на веб-сайте, то имеет смысл просто взять на себя ответственность за эти файлы. Установите их владельца на & lt; ваше имя пользователя & gt; . Вам не нужно изменять разрешения сервера для этого, так как сервер будет продолжать получать доступ только для чтения, даже если ваши файлы принадлежат вам.
  • Выберите разумное место для размещения файлов (используя DocumentRoot ) Если / var / www не имеет смысла, вы можете разместить их в другом месте. Если они специфичны для вашей собственной разработки или тестирования, вы можете разместить их в своем домашнем каталоге. Или вы можете настроить некоторые каталоги в / srv .
  • Если вы хотите предоставить доступ group для записи, создайте новый для этой группы. Не используйте повторно системную группу, поскольку они, как правило, предназначены для доступа к ним в настоящее время и не более, по соображениям безопасности.
5
ответ дан 6 August 2018 в 23:53

Все просто. Вам также не нужно включать 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
ответ дан 6 August 2018 в 23:53

Если вы делаете / 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
ответ дан 6 August 2018 в 23:53

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

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

На этой странице моего сайта Я описываю команды для изменения разрешения в / var / www между apache и пользователем pi, но его существенное

  sudo chown -R pi / var / www  

, затем перезапуск apache

  sudo service apache2 restart  
-1
ответ дан 9 August 2018 в 04:18

Вы можете запустить www-сеанс в терминале с помощью

  sudo su www-data  

В сочетании с приглашением по-разному цвета *, чтобы сделать более очевидно, что это оболочка другого пользователя, и политика всегда ставит соответствующий xterm (и редактор и т. д.) на, например, - виртуальный рабочий стол 4, чтобы вы привыкли к нему, чтобы избежать путаницы.

*) Для разного цвета приглашения с отличающимся символом создайте файл / etc / prompt следующим образом:

  # PROMPTING # При интерактивном запуске bash отображает основной  подскажите PS1, когда он готов прочитать команду, и второе приглашение PS2, когда ему нужно больше ввода для завершения команды.  Bash позволяет настраивать эти строки для приглашений #, вставляя несколько специальных символов с обратным слэшем, которые декодируются следующим образом: # \ a символ колокола ASCII (07) # \ d дата в формате «День недели» (например,  «В мае 26») # \ D {format} # формат передается в strftime (3), и результат вставляется в строку приглашения;  пустой формат # приводит к представлению времени, специфичному для локали.  Скобки необходимы # \ e ASCII escape-символ (033) # \ h имя хоста до первого `. '  # \ H имя хоста # \ j количество заданий, которыми в настоящее время управляет оболочка # \ l базовое имя имени терминального устройства оболочки # \n newline # \r return return # \ s имя оболочки, базовое имя $ 0  (часть после последней косой черты) # \ t текущее время в 24-часовом формате HH: MM: SS # \ T текущее время в 12-часовом формате HH: MM: SS # \ @ текущее время в 12-часовом формате  am / pm format # \ A текущее время в 24-часовом формате HH: MM # \ u имя пользователя текущего пользователя # \ v версия bash (например, 2.00) # \ V выпуск bash, версия + patchelvel  (например, 2.00.0) # \ w текущий рабочий каталог # \ W базовое имя текущего рабочего каталога # \!  номер истории этой команды # \ # номер команды этой команды # \ $, если эффективный UID равен 0, a #, в противном случае $ # \nnn символ, соответствующий восьмеричному номеру nnn # \\ a обратная косая черта # \ [  начните последовательность непечатаемых символов, которые могут быть использованы для встраивания последовательности управления терминалом # в приглашение # \] для завершения последовательности непечатаемых символов # # Номер команды и номер истории обычно различаются: номер истории  команды - это его позиция в # списке истории, которая может включать в себя команды, восстановленные из файла истории (см. ИСТОРИЯ ниже), а номер команды # - это позиция в последовательности команд, выполняемых во время текущего сеанса оболочки.  После строки # # colors: # \ [... \] wird benötigt, damit die shell weiß, daß hier kein printable output ist, und die Umbrüche richtig plaziert.  # # ANSI COLORS CRE = "\ [[K \]" NORMAL = "\ [[0; 39m \]" # RED: сообщение об ошибке или ошибке RED = "\ [[1; 31m \]" # GREEN: сообщение об успешном завершении  GREEN = "\ [[1; 32m \]" # ЖЕЛТЫЙ: Описания YELLOW = "\ [[1; 33m \]" # BLUE: Системные сообщения BLUE = "\ [[1; 34m \]" # MAGENTA: найдены устройства  или драйверы MAGENTA = "\ [[1; 35m \]" # CYAN: Вопросы CYAN = "\ [[1; 36m \]" # BOLD WHITE: Hint WHITE = "\ [[1; 37m \]" # # по умолчанию  : # postgres, oracle, www-data # # PS1 = $ BLUE "machine] - & gt;" $ NORMAL \\ w "$ BLUE ø $ NORMAL" PS1 = $ BLUE "машина]:" $ NORMAL \\ w "$  BLUE & gt; $ NORMAL "# # root, stefan: # case" $ UID "в '0') PS1 = $ RED" machine: "$ NORMAL \\ w" $ RED # $ NORMAL ";;  '1000') PS1 = $ GREEN "machine:" $ BLUE \\ w $ ЖЕЛТЫЙ "& gt;" $ NORMAL ;;  # по умолчанию) # ;;  esac  

и, например, источник из /etc/bash.bashrc .

В качестве дополнительного инструмента, помогающего разграничить, вы всегда можете редактировать свои файлы с помощью псевдонима «edit» или символической ссылки, которая указывает, в зависимости от вашей личности (taylor / www-data) на gedit или mousepad, vim или pico. Или вы можете использовать разные профили редактора, по крайней мере, в gedit вы можете настроить свои предпочтения на черный текст на белом фоне или белом тексте на черном фоне, например.

У меня есть такая политика для работы с правами root, поэтому я не уверен, насколько она хороша для работы с www-данными. В сочетании с ssh-сессиями для разных хостов, у которых есть свои собственные подсказки, это не мешало мне иногда ошибаться, но если это происходит, я быстро понимаю, что не так, и это происходит редко.

note: скрипт-запрос частично является копией man-страницы bash.

1
ответ дан 9 August 2018 в 04:18

Не пытайтесь

  • Не устанавливайте права доступа к файлам 777 (доступно для всего мира) Это существенный недостаток безопасности, особенно если вы включите серверную таких как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования скриптов на стороне сервера, выполнить произвольный код.
  • Не добавляйте себя как член www-data и предоставить права на запись. Цель этой группы состоит в том, что она является непривилегированной группой, с которой сервер обрабатывает как. Они должны только читать доступ к файлам веб-сайта, где это возможно, по тем же причинам, что и выше.
  • Не изменять разрешения процессов Apache. Дочерние процессы Apache выполняются как www-data пользователь и группа по умолчанию, и это не должно изменяться. Это всего лишь способ не дать им права на запись в файловую систему. В определенных обстоятельствах вы хотите, чтобы ваши серверные скрипты могли записывать файлы, и в этом случае только эти файлы должны быть доступны для записи через www-data , а уход должен

Dos

  • Установите файлы, принадлежащие вам самим. Если вы являетесь единственным или обычным, чтобы изменить некоторые файлы на веб-сайте, то имеет смысл просто взять на себя ответственность за эти файлы. Установите их владельца на & lt; ваше имя пользователя & gt; . Вам не нужно изменять разрешения сервера для этого, так как сервер будет продолжать получать доступ только для чтения, даже если ваши файлы принадлежат вам.
  • Выберите разумное место для размещения файлов (используя DocumentRoot ) Если / var / www не имеет смысла, вы можете разместить их в другом месте. Если они специфичны для вашей собственной разработки или тестирования, вы можете разместить их в своем домашнем каталоге. Или вы можете настроить некоторые каталоги в / srv .
  • Если вы хотите предоставить доступ group для записи, создайте новый для этой группы. Не используйте повторно системную группу, потому что они, как правило, предназначены для доступа к ним в настоящее время и не более, по соображениям безопасности.
5
ответ дан 9 August 2018 в 04:18

Все просто. Вам также не нужно включать 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
ответ дан 9 August 2018 в 04:18

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

6
ответ дан 9 August 2018 в 04:18

Если вы делаете / 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
ответ дан 9 August 2018 в 04:18

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

1
ответ дан 9 August 2018 в 04:18

На этой странице моего сайта Я описываю команды для изменения разрешения в / var / www между apache и пользователем pi, но его существенное

  sudo chown -R pi / var / www  

, затем перезапуск apache

  sudo service apache2 restart  
-1
ответ дан 14 August 2018 в 23:13

Вы можете запустить www-сеанс в терминале с помощью

  sudo su www-data  

В сочетании с приглашением по-разному цвета *, чтобы сделать более очевидно, что это оболочка другого пользователя, и политика всегда ставит соответствующий xterm (и редактор и т. д.) на, например, - виртуальный рабочий стол 4, чтобы вы привыкли к нему, чтобы избежать путаницы.

*) Для разного цвета приглашения с отличающимся символом создайте файл / etc / prompt следующим образом:

  # PROMPTING # При интерактивном запуске bash отображает основной  подскажите PS1, когда он готов прочитать команду, и второе приглашение PS2, когда ему нужно больше ввода для завершения команды.  Bash позволяет настраивать эти строки для приглашений #, вставляя несколько специальных символов с обратным слэшем, которые декодируются следующим образом: # \ a символ колокола ASCII (07) # \ d дата в формате «День недели» (например,  «В мае 26») # \ D {format} # формат передается в strftime (3), и результат вставляется в строку приглашения;  пустой формат # приводит к представлению времени, специфичному для локали.  Скобки необходимы # \ e ASCII escape-символ (033) # \ h имя хоста до первого `. '  # \ H имя хоста # \ j количество заданий, которыми в настоящее время управляет оболочка # \ l базовое имя имени терминального устройства оболочки # \n newline # \r return return # \ s имя оболочки, базовое имя $ 0  (часть после последней косой черты) # \ t текущее время в 24-часовом формате HH: MM: SS # \ T текущее время в 12-часовом формате HH: MM: SS # \ @ текущее время в 12-часовом формате  am / pm format # \ A текущее время в 24-часовом формате HH: MM # \ u имя пользователя текущего пользователя # \ v версия bash (например, 2.00) # \ V выпуск bash, версия + patchelvel  (например, 2.00.0) # \ w текущий рабочий каталог # \ W базовое имя текущего рабочего каталога # \!  номер истории этой команды # \ # номер команды этой команды # \ $, если эффективный UID равен 0, a #, в противном случае $ # \nnn символ, соответствующий восьмеричному номеру nnn # \\ a обратная косая черта # \ [  начните последовательность непечатаемых символов, которые могут быть использованы для встраивания последовательности управления терминалом # в приглашение # \] для завершения последовательности непечатаемых символов # # Номер команды и номер истории обычно различаются: номер истории  команды - это его позиция в # списке истории, которая может включать в себя команды, восстановленные из файла истории (см. ИСТОРИЯ ниже), а номер команды # - это позиция в последовательности команд, выполняемых во время текущего сеанса оболочки.  После строки # # colors: # \ [... \] wird benötigt, damit die shell weiß, daß hier kein printable output ist, und die Umbrüche richtig plaziert.  # # ANSI COLORS CRE = "\ [[K \]" NORMAL = "\ [[0; 39m \]" # RED: сообщение об ошибке или ошибке RED = "\ [[1; 31m \]" # GREEN: сообщение об успешном завершении  GREEN = "\ [[1; 32m \]" # ЖЕЛТЫЙ: Описания YELLOW = "\ [[1; 33m \]" # BLUE: Системные сообщения BLUE = "\ [[1; 34m \]" # MAGENTA: найдены устройства  или драйверы MAGENTA = "\ [[1; 35m \]" # CYAN: Вопросы CYAN = "\ [[1; 36m \]" # BOLD WHITE: Hint WHITE = "\ [[1; 37m \]" # # по умолчанию  : # postgres, oracle, www-data # # PS1 = $ BLUE "machine] - & gt;" $ NORMAL \\ w "$ BLUE ø $ NORMAL" PS1 = $ BLUE "машина]:" $ NORMAL \\ w "$  BLUE & gt; $ NORMAL "# # root, stefan: # case" $ UID "в '0') PS1 = $ RED" machine: "$ NORMAL \\ w" $ RED # $ NORMAL ";;  '1000') PS1 = $ GREEN "machine:" $ BLUE \\ w $ ЖЕЛТЫЙ "& gt;" $ NORMAL ;;  # по умолчанию) # ;;  esac  

и, например, источник из /etc/bash.bashrc .

В качестве дополнительного инструмента, помогающего разграничить, вы всегда можете редактировать свои файлы с помощью псевдонима «edit» или символической ссылки, которая указывает, в зависимости от вашей личности (taylor / www-data) на gedit или mousepad, vim или pico. Или вы можете использовать разные профили редактора, по крайней мере, в gedit вы можете настроить свои предпочтения на черный текст на белом фоне или белом тексте на черном фоне, например.

У меня есть такая политика для работы с правами root, поэтому я не уверен, насколько она хороша для работы с www-данными. В сочетании с ssh-сессиями для разных хостов, у которых есть свои собственные подсказки, это не мешало мне иногда ошибаться, но если это происходит, я быстро понимаю, что не так, и это происходит редко.

note: скрипт-запрос частично является копией man-страницы bash.

1
ответ дан 14 August 2018 в 23:13
  • 1
    Это будет работать и не будет (если будет использоваться осторожно) негативно повлиять на безопасность, но не может быть самым простым решением. Это действительно приемлемое решение для некоторых людей. – thomasrutter 24 November 2016 в 03:47

Не пытайтесь

  • Не устанавливайте права доступа к файлам 777 (доступно для всего мира) Это существенный недостаток безопасности, особенно если вы включите серверную таких как PHP. Непривилегированные процессы не должны записываться в файлы, которые могут повлиять на веб-сайт, или, в случае использования скриптов на стороне сервера, выполнить произвольный код.
  • Не добавляйте себя как член www-data и предоставить права на запись. Цель этой группы состоит в том, что она является непривилегированной группой, с которой сервер обрабатывает как. Они должны только читать доступ к файлам веб-сайта, где это возможно, по тем же причинам, что и выше.
  • Не изменять разрешения процессов Apache. Дочерние процессы Apache выполняются как www-data пользователь и группа по умолчанию, и это не должно изменяться. Это всего лишь способ не дать им права на запись в файловую систему. В определенных обстоятельствах вы хотите, чтобы ваши серверные скрипты могли записывать файлы, и в этом случае только эти файлы должны быть доступны для записи через www-data , а уход должен

Dos

  • Установите файлы, принадлежащие вам самим. Если вы являетесь единственным или обычным, чтобы изменить некоторые файлы на веб-сайте, то имеет смысл просто взять на себя ответственность за эти файлы. Установите их владельца на & lt; ваше имя пользователя & gt; . Вам не нужно изменять разрешения сервера для этого, так как сервер будет продолжать получать доступ только для чтения, даже если ваши файлы принадлежат вам.
  • Выберите разумное место для размещения файлов (используя DocumentRoot ) Если / var / www не имеет смысла, вы можете разместить их в другом месте. Если они специфичны для вашей собственной разработки или тестирования, вы можете разместить их в своем домашнем каталоге. Или вы можете настроить некоторые каталоги в / srv .
  • Если вы хотите предоставить доступ group для записи, создайте новый для этой группы. Не используйте повторно системную группу, потому что они, как правило, предназначены для доступа к ним в настоящее время и не более, по соображениям безопасности.
5
ответ дан 14 August 2018 в 23:13

Другие вопросы по тегам:

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