PHP exec () имеет ошибку разрешения записи, несмотря на привилегии записи

history, встроенный в bash, позволяет указать имена файлов при использовании с флагами -anrw, а флаг -a из help history: добавить строки истории из этого сеанса в history file

Поэтому мы можем сделать:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Для записи -w (история записи в файл opion) записывает всю историю в указанный файл, поэтому [ f9] (добавить) здесь предпочтительный вариант.

Есть и другие ручные способы. В частности, ksh не имеет флага -a, как bash, но что ksh и mksh действительно имеют переменную среды HISTFILE (и bash имеет это, потому что bash включая множество функций ksh); Кстати, эта переменная по умолчанию не установлена ​​(по крайней мере, mksh на Ubuntu не установил ее). Таким образом, для вывода текущего сеанса в другой файл, мы вызываем HISTFILE preended для команды, которая в синтаксисе оболочки означает запуск команды с дополнительной переменной среды, которую вы указываете. Например:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

То, что вы также можете видеть из этого, состоит в том, что ksh и связанные с ним оболочки выводят историю со специальными символами вместо обычного текста, как это делает bash. Таким образом, вы можете открыть этот файл с помощью ksh.

Что касается оболочки POSIX /bin/sh на Ubuntu, которая является Debian Almquist Shell или Dash, существует встроенный fc. Тем не менее, на Ubuntu тире компилируется без lib-edit, что является сознательным выбором разработчиков Ubuntu по причинам производительности, поэтому fc и другие режимы, требующие редактирования строк, не работают из коробки (если не перекомпилировать dash самостоятельно и установите lib-edit).

Shell нейтральными способами будет оболочка POSIX /bin/sh на Ubuntu или записать свою собственную функцию для записи по каждой команде. [!d16 ]

1
задан 20 May 2018 в 15:33

3 ответа

$ grep '^www' /etc/group
  www-data:x:33:
  www:x:1001:ubuntu

Это наглядно показывает, что www-data не является членом группы www. Только ubuntu является членом группы www.

Запустите

sudo usermod -a -G www www-data

, чтобы добавить www-data в www -группу и перезапустить веб-сервер. [!d3 ]

3
ответ дан 22 May 2018 в 10:34
$ grep '^www' /etc/group www-data:x:33: www:x:1001:ubuntu

это ясно показывает, что www-data не является членом ВСП группы. Только ubuntu - член www группа.

выполнить

sudo usermod -a -G www www-data

, чтобы добавить [F6], чтобы www-группы, и перезапустить сервер.

3
ответ дан 17 July 2018 в 13:52
$ grep '^www' /etc/group www-data:x:33: www:x:1001:ubuntu

Это наглядно показывает, что www-data не является членом группы www. Только ubuntu является членом группы www.

Запустите

sudo usermod -a -G www www-data

, чтобы добавить www-data в www -группу и перезапустить веб-сервер.

3
ответ дан 20 July 2018 в 13:56

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

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