So führen Sie einen Prozess mit CAP_SYS_RESOURCE aus

8

Ich verwende Linux POSIX mqueue-Implementierung, und ich habe ein Problem. Für den aktuellen Kernel ist die maximale Nachrichtengröße 1 MB, aber ich muss keine Begrenzung haben.

man mq_overview sagt, dass wenn der Prozess privilegiert ist (ein Prozess, der CAP_SYS_RESOURCE capability hat) hat keine Grenzen. Ich dachte, dass ein Prozess, der von root ausgeführt wurde, bereits privilegiert war, aber ich bekomme immer noch den Fehler "Nachricht zu lang" (meine Nachricht hat 2MB).

Wie kann ich CAP_SYS_RESOURCE Fähigkeit zum Prozess hinzufügen?

    
Leonardo Alt 18.09.2010, 00:43
quelle

3 Antworten

7

Ich weiß nicht, ob es möglich ist, es auf einen laufenden Prozess zu setzen (ich denke nicht), aber Sie können die CAP_SYS_RESOURCE-Fähigkeit einer ausführbaren Datei mit # setcap 'CAP_SYS_RESOURCE=+ep' /path/to/executable (als Superuser) gewähren. In diesem Beispiel erhöht +ep die Kapazität von CAP_SYS_RESOURCE , um zulässig und effektiv zu sein. Die Manpages capabilities(7) und setcap(8) sind jedoch nützliche Quellen für weitere Informationen.

    
coltox 13.03.2013 15:52
quelle
3

Sie können die Obergrenze für die maximale Nachrichtengröße in dieser Datei ändern / proc / sys / fs / mqueue / msgsize_max Ich hoffe es funktioniert

    
Phuc Vinh 05.08.2011 09:24
quelle
1

Probieren Sie die Option RLIMIT_MSGQUEUE in der Funktion: int setrlimit (int Ressource, const struct rlimit * rlim);

man-Seite: Ссылка

:)

    
user451155 18.09.2010 01:11
quelle

Tags und Links