Linux 15.070 Themen, 107.540 Beiträge

Konsole-Kommando für bestimmten User freigeben

d-oli / 11 Antworten / Baumansicht Nickles

Hallo Leute

Wie kann ich ein bestimmtes Konsole-Kommando (expl. ulimit -n, -u scheint für User zu funktionieren) für einen bestimmten User freigeben?

Dank und Gruss
d-oli

PS: OS = ReHat 9

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Klaus_T d-oli „Konsole-Kommando für bestimmten User freigeben“
Optionen

Warum sollte das nicht gehen?

[diogenes:klaus]~$ ulimit -a | grep files
open files 256

[diogenes:klaus]~$ ulimit - 1024

[diogenes:klaus]~$ ulimit -a | grep files
open files 1024

Geht. Was kommt denn bei dir?

Klaus

bei Antwort benachrichtigen
Klaus_T d-oli „Konsole-Kommando für bestimmten User freigeben“
Optionen

Kann es sein, dass du noch mehr willst? Das ist auf den Superuser beschraenkt, was ja auch Sinn macht. Es soll ja nicht jeder an dem System rumschrauben koennen.
Wenn du mehr willst, setze den Wert in der /etc/profile fest, z.B. auf 2048. Dann kann ein User das natuerlich bis zu diesem Wert setzen.

Klaus

bei Antwort benachrichtigen
d-oli Klaus_T „Kann es sein, dass du noch mehr willst? Das ist auf den Superuser beschraenkt,...“
Optionen

> Wenn du mehr willst, setze den Wert in der /etc/profile fest, z.B.
> auf 2048. Dann kann ein User das natürlich bis zu diesem Wert
> setzen.
Das ist ja genau das Problem. Ich habe folgendes machen müssen (gemäß Installationsanleitung einer DB-SW):

if [ $USER == "dummy" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Das heißt, ich will diese Werte nur setzen, wenn der "dummy" User eingeloggt ist. Beim einloggen desselben (auf der Konsole) kommt der Fehler:

$su - dummy
Password:
-bash: ulimit: open files: cannot modify limit: operation not permitted
$

Unter root funktioniert das ganze natürlich. Wenn ich im Shell-Script $USER abfrage ist der wohl auch schon aktiv und dann kann "ulimit -n" nicht mehr ausgeführt werden. Hmmm ...
Ich frage mich, wieso das Userabhängig definiert sein soll?

mfg, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Klaus_T d-oli „ Wenn du mehr willst, setze den Wert in der /etc/profile fest, z.B. auf 2048....“
Optionen

Ist das jetzt ein Tippfehler:

$USER == "dummy"

Oder beabsichtigst du etwas damit?

Klaus

bei Antwort benachrichtigen
d-oli Klaus_T „Ist das jetzt ein Tippfehler: USER dummy Oder beabsichtigst du etwas damit? Klaus“
Optionen

Es ist ein Tippfehler ...
Siehe Posting von Heute 7h49 (oben ...)


mfg, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Klaus_T d-oli „Es ist ein Tippfehler ... Siehe Posting von Heute 7h49 oben ... mfg, d-oli“
Optionen

Ja, eben gesehen. Jetzt sag mir aber doch noch, wofuer du das brauchst. Ich bin mit 256 bis jetzt immer hingekommen.

Bye, Klaus

bei Antwort benachrichtigen
d-oli Klaus_T „Ja, eben gesehen. Jetzt sag mir aber doch noch, wofuer du das brauchst. Ich bin...“
Optionen

... um Oracle zu installieren ...
... dazu gibt einen installation Guide wo genau diese Zeile bash-Script abgebildet sind. Da steht auch, das /etc/profile damit zu ergänzen:

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

... und weil "ulimit -n 65536" Probleme verursacht habe ich das Script so abgeändert:

# if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
# fi

mache ich ulimit -a bevor ich das Script laufen lasse erscheint:
open files (-n) 1024
max user processes (-u) unlimited

danach:
open files (-n) 65536
max user processes (-u) 16384

Dies gilt nun aber für alle User. Aber ich glaube nicht, dass ich jemals >16384 Prozesse auf einmal laufen haben werde. Kann das Probleme verursachen?

mfg, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Klaus_T d-oli „... um Oracle zu installieren ... ... dazu gibt einen installation Guide wo...“
Optionen

Naja, das Problem dabei ist, dass die Speicher belegen. Wenn du genug drin hast, wird es kein Problem geben, ansonsten wird die Kiste nach dem Verbrach des Swap-Speichers anfangen, willkuerlich Jobs zu killen. Deshalb sollte man das Limit nicht zu hoch setzen.
Wenn das ein oeffentlicher Server ist, wo wirklich sehr viele drauf zugreifen, wird er aber wohl genug Speicher haben, gehe ich mal von aus. Und wenn es wenige User sind, werden soviele Prozesse wohl nicht anliegen.
Ich setze das eben nicht so hoch, weil es immer mal wild gewordene Programme geben kann, die dann eben das Limit ausschoepfen und wenn du das zu hoch setzt, wirst du eventuell Schwierigkeiten bekommen, diesen dann zu killen.

Bye, Klaus

bei Antwort benachrichtigen
d-oli Klaus_T „Naja, das Problem dabei ist, dass die Speicher belegen. Wenn du genug drin hast,...“
Optionen

Die Zeit wird zeigen, ob 1.5GB RAM und 2GB SWAP ausreichend sind.
Danke Klaus T, für die Hilfe.

mfg, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
d-oli Nachtrag zu: „Konsole-Kommando für bestimmten User freigeben“
Optionen

Ups … – Sorry – Tippfehler:

Es geht natürlich so …
if [ $USER = „oracle“ ];

und nicht …
if [ $USER == „oracle“ ];

d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
XPectIT d-oli „Konsole-Kommando für bestimmten User freigeben“
Optionen

Hast du dir schon mal sudo angeschaut?
Damit kannst du einzelne kommandos für bestimmte User / Gruppen freigeben und dieses eine Kommando mit root-rechten laufen lassen
sudo ulimit...

Selbst die Passwortabfrage kann man verhindern. Ist glaube ich bei dir genau das richtige.

bei Antwort benachrichtigen