Nowy kernel i prawa do dmesg

Zbyniu Krzystolik zbyniu w geocarbon.pl
Pon, 7 Lut 2011, 00:49:04 CET


Paweł Lęcznar wrote:
> W dniu 06.02.2011 19:31, Arkadiusz Miskiewicz pisze:
> > On Sunday 06 of February 2011, Arkadiusz Chomicki wrote:
> >> Witam,
> >>
> >> po ugrade do nowej wersji kernela z 2.6.35.7 na na 2.6.37 utraciłem dostęp
> >> do dmesg z poziomu użytkownika, jak dodać siebie by móc to czytać.
> > Musisz mieć capability CAP_SYSLOG albo przestawić kernel.dmesg_restrict na 0.
> >
> Jeśli nikt nie ma nic przeciwko to dołączę się do dyskusji. CAP_SYSLOG? 
> co to takiego i jak to to się ustawia?

Czytanie z /proc/kmsg (od niedawna tylko otwarcie) wymagało
CAP_SYS_ADMIN. Jako, że jest to specyficzna dla syslogów działalność, a
wymagająca bardzo ogólnej (a co za tym idzie potężnej) capability
zdecydowano się na wydzielenie tej możliwości jako osobnej o wdzięcznej
nazwie CAP_SYSLOG.

> w man capabilities czegoś takiego nie ma

Pojawił się ów twór od jąder 2.6.38, manuale do aktualizacji.

> i na googlach też niewiele znalazłem co zrobić z CAP_SYSLOG żeby 
> zadziałał dmesg zwykłemu użytkownikowi...

Niezależnie od powyższego została w 2.6.37 zamiplementowana (w końcu)
blokada dmesg dla zwykłych userów. Od tego momentu od procesu wymaga się
CAP_SYS_ADMIN. Skoro jednak w .38 pojawił się CAP_SYSLOG to on jest
wymagany, jako zawierający tę klasę dostępu.

Zwykłemu userowi dmesg nie powininen być potrzebny, a może dostarczać
zeznania o adresach pamięci. Jeśli już ktoś bardzo potrzebuje, to niech
sobie wyłączy przez sysctl:
kernel.dmesg_restrict=0

Zbyniu
-- 
%% Absolutely nothing we trust %%


Więcej informacji o liście pld-users-pl