При установке некоторых пакетов winetricks показывает предупреждение, что нужно установить значение в файле
/proc/sys/kernel/yama/ptrace_scope
равное 0. Иначе бубубу много ошибок. Например такое выдается при установке .NET framework-ов. А без них много чего не работает.
Стоит ли устанавливать ptrace равным 0?
Можно ставить его на время установки, а потом менять обратно, главное не забыть.
Впервые этот параметр был введен в Ubuntu 10.10 для того, чтобы WINE хорошо работал. Это не устранение бага, следовательно это не то, что должно быть исправлено.
Когда это значение установлено в 1 – это блокирует возможность для одного процесса просматривать или изменять другой процесс, если у них нет отношения наследования родитель-ребенок.
В теории, вредоносная программа может использовать это, чтобы причинить вред компьютеру, например процесс может присоединиться к Firefox и получить все ваши URL-адреса / пароли и т.д. На практике это крайне маловероятно, если вы слепо не устанавливаете бинарные DEB пакеты от случайных сайтов и т.д.
Какие проблемы с обходным путем?
Можно вызывать программы WINE через bash скрипт, который будет менять значение в ptrace_scope при запуске и обратно при закрытии.
Но тогда возможно придется выставить для ptrace_scope права на запись, что делать вообще нельзя.
Есть ли лучшее решение?
Лучшее решение, которое является более безопасным и не требует многократного изменения ptrace_scope заключается в предоставлении возможности wineserver и wine-preloader PTRACE.
В терминале установим setcap:
1 2 3 4 5 |
sudo apt-get install libcap2-bin sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader |
Это освобождает wineserver и wine-preloader файлы от PTRACE ограничения, и позволяет им выполнять PTRACE любого процесса.
Это только должно быть сделано один раз, и является более безопасным, так как эти файлы, как правило, из надежных источников – официальных репозиториев или WINE PPA, поэтому они не собираются быть вредоносными программами. :)
Если используется Crossover:
1 2 3 4 5 6 |
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf sudo /sbin/ldconfig |
Последние две команды добавляют библиотеки в ld.so.conf (иначе возможна ошибка “error while loading shared libraries: libwine.so.1: cannot open shared object file: No such file or directory”).
Ссылки: