Возможные решения:
Используйте EasyBCD Software:
Если вы можете загрузиться в Windows OS,
Используйте EasyBCD Software для создания собственных загрузочных записей, так что из них вы можете создать загрузочные записи для этих дистрибутивов linux и для ОС Windows.
EasyBCD
Используйте Boot-Repair:
Живая загрузка ОС Ubuntu, установка Boot-Repair.
Boot-Repair создаст новый загрузчик grub.
Boot-Repair
Я думаю, что EasyBCD решит вашу проблему.
Предложения и комментарии приветствуются.
Примечание: Вместо кода PHP ниже, если вы хотите отслеживать все git commits (а не только те, которые зафиксированы с помощью PHP), должна быть возможность установить пост-commit hook с аналогичным выходом.
Сразу после написания вопроса я наткнулся на это действительно простое руководство . Исходя из этого, я сделал следующее:
Я не тестировал это без установки разрешений, но я предполагаю, что это необходимо.
sudo mkdir /var/log/gitweb
sudo chown: www-data /var/log/gitweb
Эта строка кода выполняется каждый раз, когда я запускаю git commit
в коде php. Новые строки заменяются пользовательской последовательностью, так что каждая фиксация находится в собственной строке (насколько мне известно, Logwatch может работать только построчно). При анализе с помощью Logwatch он будет заменен на новые строки.
shell_exec('(git log -1 --date=iso --name-status | awk 1 ORS="[NEWLINE_HERE]" ; echo) >> /var/log/gitweb/gitweb.log');
# /etc/logwatch/conf/logfiles/gitweb.conf
LogFile = gitweb/*.log
Archive = gitweb/*.gz
*ExpandRepeats
Не совсем уверен, что делает * ExpandRepeats, но это было в руководстве, с которым я связался.
# /etc/logwatch/conf/services/gitweb.conf
Title = "Git commits"
LogFile = gitweb
Это делает две вещи:
Я знаю абсолютно нулевое значение perl (я посмотрел другие сценарии Logwatch для справки), поэтому
use Logwatch ':dates';
my $filter = TimeFilter('%Y-%m-%d %H:%M:%S');
while (defined(my $ThisLine = <STDIN>)) {
if ($ThisLine =~ /$filter/) {
$ThisLine =~ s/\[NEWLINE_HERE\]/\n/g;
print $ThisLine;
}
}
exit(0);
# /etc/logrotate.d/gitweb
/var/log/gitweb/*log {
daily
# keep 10 old logs
rotate 10
# don't do anything if the log is missing
missingok
# don't do anything if the log is empty
notifempty
# zip the archived logs
compress
}
-121--290276- Если не требуется переместить почтовый магазин; просто восстановите конфигурацию до значений по умолчанию.
Эта настройка хранит сообщения электронной почты в /var/spool/mail/< имя _ пользователя >
вместо home
, что означает, что любой устанавливаемый MUA будет знать, где его найти без какой-либо перенастройки.
Вы хотите изменить файл /etc/sudoers
, чтобы разрешить любому пользователю запускать df
с sudo
без необходимости знать пароль root.
Для получения дополнительной информации о настройке см. Как запустить определенную программу как root без запроса пароля? .
Это не потому, что www-data
не имеет достаточно привилегий, а потому, что www-data
не владеет файлами, о которых идет речь. Разрешения для обоих мест, вероятно, установлены на drwx------
, что означает, что только владелец может читать файл. gvfs
используется в качестве точки монтирования для Filesystems in Userspace (FUSE) и поэтому принадлежит пользователю, а /media/sh/....
, очевидно, принадлежит пользователю sh
. Поскольку /dev/sda4
был смонтирован на точку монтирования, принадлежащую sh
, 'www-data' не может пройти через него. Даже для пользователя с повышенными привилегиями файловая система gvfs обычно недоступна.
Для проблемы /media/sh/...
вы можете изменить разрешения для этой точки монтирования или просто размонтировать и повторно смонтировать /dev/sda4
на другую точку монтирования, имеющую drwxr-xr-x
разрешения. Что касается gvfs, вы не сможете перейти к нему от имени другого пользователя. Существуют обходные пути, но они не должны применяться в многопользовательской системе.