Позвольте мне предложить альтернативу sysdig, поскольку ответы выше стареют. Пусть отобразится pid и name процессов, которые удаляют файл /tmp/test. Сначала мы создаем файл с touch /tmp/test. Затем мы запускаем sysdig со следующим фильтром:
$ sudo sysdig -p'%proc.pid,%proc.name' '(evt.type=unlinkat and (evt.arg.name=test or evt.arg.name=/tmp/test)) or (evt.type=unlink and evt.arg.path=/tmp/test)'
unlinkat(2) требует фильтра or, если путь (например, evt.arg.name) может быть относительным. Для обработки как unlink (который вызывает unlink(2)), так и rm (который вызывает unlinkat(2) в своей версии GNU), фильтр должен соответствовать обоим системам.
sysdig должен работать, когда процесс удаляет файл. Затем, когда мы выполняем такие команды:
$ unlink /tmp/test
$ touch /tmp/test
$ rm /tmp/test
$ cd /tmp; touch test; rm test
Он выведет такой вывод:
11380,unlink
11407,rm
11662,rm
Пожалуйста, обратитесь к sysdig для объяснения фильтрации и вывода.
Поскольку фильтр довольно длинный, мне было удобно писать долото. Это сценарий lua, связанный с командой sysdig:
description = "displays processes that delete a file"
short_description = "spy file deletion"
category = "files"
args =
{
{
name = "path",
description = "the path of the file to monitor",
argtype = "string"
},
}
function on_set_arg(name, val)
path = val
return true
end
function on_init()
local filename = path
for i in string.gmatch(path, "[^/]+") do
filename = i
end
chisel.set_event_formatter("%proc.pid\t%proc.name")
chisel.set_filter(
"(evt.type=unlinkat and (evt.arg.name=" .. path .. " or \
evt.arg.name=" .. filename .. ")) or \
(evt.type=unlink and evt.arg.path=" .. path .. ")")
return true
end
Не стесняйтесь комментировать и улучшать его. Вы можете поместить сценарий lua в файл spy_deletes.lua внутри каталога и выполнить sysdig в этом каталоге, чтобы сделать долото. При вводе sudo sysdig -cl вы увидите это как:
Category: files
---------------
spy_deletes spy file deletion
Теперь вы можете называть его:
$ sudo sysdig -c spy_deletes /tmp/test
И в другом типе терминала:
$ touch test; unlink test
$ touch test; unlink /tmp/test
$ touch test; rm test
$ touch test; rm /tmp/test
Он выведет:
16025 unlink
16033 unlink
16041 rm
16049 rm
Фильтр unlinkat заслуживает того, чтобы быть более точным и соответствовать абсолютному пути. Для этого потребуется получить fd каталога, переданного в unlinkat(2).
Вы делаете что-то неправильно, если вам нужно каждый раз выходить из системы, чтобы запустить простой сервер LAMPP. Похоже, что вы загрузили пакет с веб-сайта, но в Ubuntu вы обычно используете диспетчер пакетов для установки программного обеспечения.
Чтобы установить Apache, PHP, MySQL и phpMyAdmin, установите пакеты apache2 libapache2-mod-php5 mysql-server phpmyadmin. Это можно сделать, выполнив следующую команду в терминале
sudo apt-get install apache2 libapache2-mod-php5 mysql-server phpmyadmin
. Посмотрите на терминал , если вы хотите узнать некоторые способы настройки прав доступа к файловой системе. Если несколько пользователей нуждаются в доступе / редактировании к тем же файлам, я предлагаю настроить SSH или FTP-сервер.
Настройка SSH-сервера так же просто, как установка пакета openssh-server. Создайте новую учетную запись на компьютере, установите для нее пароль и предоставите ему доступ к файлам в папке /var/www. Для использования SSHFS см. Https://help.ubuntu.com/community/SSHFS
Вы можете легко установить xampp со сценарием оболочки, вот сценарий оболочки, который будет автоматически загружать xampp, устанавливать его в месте расположения prcise и распределять разрешение htdocs. Загрузите и установите сценарий оболочки: https://dl.dropbox.com/u/17475393/xampp.sh
Для получения дополнительной информации https://dl.dropbox.com/u/17475393/ xampp.sh Надеюсь, это поможет вам
Спасибо