5 Stimmen

Können POSIX-Nachrichtenwarteschlangen unter Linux benutzerübergreifend verwendet werden?

Ich habe eine POSIX-Nachrichtenwarteschlange implementiert. Auf der Zuhörerseite öffne ich die Warteschlange wie folgt:

mqdes = mq_open(s_mailbox_name.c_str(), O_RDONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, NULL);

Auf der Absenderseite öffne ich die Warteschlange wie folgt:

mqdes = mq_open(m_s_mailbox_name.c_str(), O_WRONLY);

Die Zeichenfolge ist in beiden Fällen die gleiche, nennen wir sie /foobox

Wenn ich nun sowohl den Sender als auch den Empfänger als denselben Benutzer auf der Box laufen lasse, funktioniert alles einwandfrei. Wenn jedoch Sender und Empfänger zwei verschiedene Benutzer sind, kann der Empfänger die Warteschlange nicht öffnen. Ich würde denken, dass dies kein Problem darstellt, da ich die Warteschlange als 0777 öffne, so dass jeder RWX nutzen kann.

Gibt es etwas, das ich offensichtlich falsch mache? Oder ist dies nicht möglich (Bitte lassen Sie es nicht dieses sein)

Gracias

6voto

Tomek Szpakowicz Punkte 13137

Siehe umask .

De man mq_open : "Die Berechtigungseinstellungen sind gegenüber der Prozessumask maskiert."

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X