У меня есть собственный профиль AppArmor для ограничения Syncthing. (я понимаю, что это не может быть конкретным вопросом Ubuntu, но я использую только Ubuntu, поэтому я не видел, влияет ли это на другие дистрибутивы Linux).
Это профиль:
#include <tunables/global>
/usr/bin/syncthing {
#include <abstractions/base>
# Obviously needs Internet access to work.
network raw,
network inet,
network inet6,
# Access to execute binary
/usr/bin/syncthing cx,
# Wants read access to SOMAXCONN
/proc/sys/net/core/somaxconn r,
# Needs to be able to read these to work properly
/run/resolvconf/resolv.conf r,
/etc/hosts r,
/etc/host.conf r,
/etc/nsswitch.conf r,
/etc/ssl/certs/** r,
/etc/mime.types r,
/etc/gai.conf r,
# Allow access to synced folders.
owner @{HOME}/Documents/ rw,
owner @{HOME}/Documents/** rwk,
owner @{HOME}/Pictures/ rw,
owner @{HOME}/Pictures/** rwk,
owner @{HOME}/Public/ rw,
owner @{HOME}/Public/** rwk,
owner @{HOME}/Music/ rw,
owner @{HOME}/Music/** rwk,
owner @{HOME}/Downloads/ rw,
owner @{HOME}/Downloads/** rwk,
owner @{HOME}/.keys/ rw,
owner @{HOME}/.keys/** rwk,
# Allow access to config files
owner @{HOME}/.config/syncthing/ rw,
owner @{HOME}/.config/syncthing/** rwk,
# Silence warnings on things we don't want access to
deny / r,
deny /* r,
deny @{HOME} r,
}
И это сообщение системного журнала, которое я получаю недавно:
Apr 16 11:07:05 supercomputer kernel: [ 1240.879568] audit: type=1400 audit(1460768825.434:31): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2277 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:16:28 supercomputer kernel: [ 1803.632950] audit: type=1400 audit(1460769388.508:32): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2266 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:26:13 supercomputer kernel: [ 2388.037482] audit: type=1400 audit(1460769973.246:33): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=1021 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:36:56 supercomputer kernel: [ 3031.177125] audit: type=1400 audit(1460770616.751:34): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2273 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Так как я создал профиль сам, я Мы стали относительно знакомы с AppArmor и журналами, которые он создает, но я никогда не видел это name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F
сообщение раньше. Это не похоже на путь к файлу, о котором обычно сообщает AppArmor.
Что означает это сообщение об ошибке? Как я могу это разрешить или запретить в профиле?
Шестнадцатеричная строка после "имени =" является просто закодированной шестнадцатеричными числами строкой пути файла, который Вы ищете. При копировании шестнадцатеричной строки в , http://www.asciitohex.com/ в "шестнадцатеричном" поле (или много эквивалентных сайтов) и щелчок преобразовывает для возвращения исходной строки. Я не отправлю точную строку здесь для сохранения конфиденциальности - на всякий случай она имеет значение.
, Если Вы не хотите использовать сторонний веб-сайт, можно выполнить оболочку Python и сделать следующее:
x="2F.... (your string here)"
''.join(chr(int(x[i:i+2], 16)) for i in range(0, len(x), 2))
я встретился с этим на Debian также. Я не знаю, почему это происходит.
file
для каждого подобранного файла и для использования разграниченных пустым указателем записей. – David Foerster 31 August 2017 в 23:15