mysql SHOW PROCESSLIST und grsecurity

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

mysql SHOW PROCESSLIST und grsecurity

Post by andreask2 »

Hallo!

grsecurity hat ja eine nette Option, die es erlaubt, dass ein User nur seine eigenen Prozesse sehen kann. Das ist allerdings unpraktisch, wenn es um Monitoring... geht.

normalerweise bekommt man ja mit

Code: Select all

SHOW PROCESSLIST
eine Liste der Prozesse (nicht eher Threads?) von MySQL. Allerdings steht darin bei grsec jetzt nur ein Prozess - eben der eigene.

Allerdings verstehe ich das nicht. Der MySQL-Server, der die SQL-Anfrage bearbeitet dürfte doch unter dem User mysql laufen, unter dem eben alle MySQL-Prozesse/Threads laufen.

Hat jemand ne Idee woran das liegt? Ich habe ja von der Client-Application eh keinen Einfluss darauf, unter welchem User die Information ermittelt wird - das passiert ja serverseitig. Und da laufen eben alle MySQL-Prozesse unter einem User -> mysql.

Grüße
Andreas

alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: mysql SHOW PROCESSLIST und grsecurity

Post by alexander newald »

Als mysql-root mit der DB verbinden und nochmal probieren

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: mysql SHOW PROCESSLIST und grsecurity

Post by andreask2 »

schon probiert

gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV

Re: mysql SHOW PROCESSLIST und grsecurity

Post by gierig »

Also erstmal:

Die System Prozess Liste die von GRsecurity beinflust wird darft du nicht
mit den SQL Prozessen verwechseln die von Mysqld selber verwaltet und angezeigt werden. Das ist was völlig verschiedenes.
SQL User sind demnach auch was anderes als irgentwelche Systemuser unter dem der SQL Server leuft. Mysql bringt seine eigne User Verwaltung mit.
Also Normaler (sql) User bekommst du unter einen sauber Konfigurierten SQL Server nur die sql Prozesse des Users zu sehen. Bzw. die auf die der User zugriff hat. Der Superuser der Mysql Datenbank hat normalwerweise globale Rechte und darf damit alles sehen.
Wenn du also mittels SQL Statment "SHOW PROCESSLIST"
alles sehen willst, sorgt dafür das es ein User mit Superuser Rechten (auch Admin oder Root rechte genannt) ist. Dieser mus auch nicht unbedingt "root" heisen (bei mir heist der sqladmin).
Auch müste der User nicht volle Admin Rechte haben.
Das Globale Recht "Process" sollte dafür ausreichen.

Sollte also dein SQL Admin nicht die volle Liste sehen
dann ligt es daran das ihm selber das Recht dazu fehlt diese zu sehen

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: mysql SHOW PROCESSLIST und grsecurity

Post by andreask2 »

Ja, das sind voneinander unabhängige Berechtigungssysteme. Mein MySQL-User "root" hat global sämtliche Rechte. In phpmyadmin steht bei "Global privileges": "ALL PRIVILEGES", es sind global alle vorhandenen Rechte ausgewählt - auch PROCESS und SUPER. Also hat er zumindest nach meiner Theorie genügend MySQL-Rechte - ich wüßte zumindest nicht, wo noch Rechte fehlen könnten.

Der Prozess des Servers(mysqld), der die "SHOW PROCESSLIST" Query des MySQL-Users "root" ausführt, läuft unter dem System-User "mysql", wie alle Prozesse (außer mysqld_safe). Entsprechend gehe ich davon aus, dass dieser System-User "mysql" theoretisch auch die anderen Prozesse die unter demselben User laufen sehen müsste.

Mit fällt halt nichts anderes mehr ein als das auf grsecurity zu schieben, auch wenn ich es wie gesagt nicht verstehe. Ich finde auch keine Konfigurations-Option für grsec, die hier Einfluss nehmen könnte. Hm...

alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: mysql SHOW PROCESSLIST und grsecurity

Post by alexander newald »

probiers mal per mysqladmin und nicht per mysql shell

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: mysql SHOW PROCESSLIST und grsecurity

Post by andreask2 »

Da passiert dasselbe. Hast Du oder jemand anders grsecurity, wo SHOW PROCESSLIST funktioniert?

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: mysql SHOW PROCESSLIST und grsecurity

Post by andreask2 »

der user "apache", der prinzipiell genau so eingerichtet ist wie "mysql", kann alle seine Prozesse sehen.

alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: mysql SHOW PROCESSLIST und grsecurity

Post by alexander newald »

Bei mir gehts

gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV

Re: mysql SHOW PROCESSLIST und grsecurity

Post by gierig »

Ja grsecurity vorhanden (CC sein Kernel auf debian woody, mit
dem ausblenden User Fremder Prozesse).

mysql 4.1.12 leuft unter dem Systemuser "mysql"

Es reicht wenn irgentein mysqluser das Globale "prozess" Recht bekommt.
(DB "mysql", tabelle "USER", feld "Process_priv")

Getestet mit phpmyadmin V2.6.2-pl1 (apache leuft unter nobody, und das php unter einem normalen system user über suphp)
Der Mysqluser hatt normalerweise nur recht auf eine Datenbank und
keine globalen Rechte. Zum test hat er das globale prozess recht bekommen. Getestet habe ich auch mit dem normalen mysql konsolen client.
Leuft wie gewünscht.
er user "apache", der prinzipiell genau so eingerichtet ist wie "mysql", kann alle seine Prozesse sehen.
Wovon redest du ? reden wir über mysql und seinen Berechtigungen oder
reden wir von irgentwelchen Systemusern unter denen irgentwelche Dinste laufen ? Oder verstehe ich da etwas falsch ?

Es ist nicht wichtig unter welchen Systemuser der msql server leuft.
Es ist nur wichtig welcher mysqluser sich mit dem sql server verbindet.