NICE, RENICE funktionieren nicht!

Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

NICE, RENICE funktionieren nicht!

Beitragvon burnie51 » Mo 27 Dez, 2004 16:13

Hallo!
Habe folgendes Problem auf meinem Debian 3:
Bin als root eingeloggt, kann aber keinen einzigen Prozess renicen bzw. mit einem bestimmten Nice-Level starten;

zB
Code: Alles auswählen
renice -15 6156
renice: 6156: setpriority: Permission denied

oder zB:
Code: Alles auswählen
nice --15 echo "test"
nice: cannot set priority: Permission denied


Woran könnte dies liegen?
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon lordpeng » Mo 27 Dez, 2004 16:26

wer ist eigentümer des prozesses?
lordpeng
Moderator
Moderator
 
Beiträge: 10184
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon burnie51 » Mo 27 Dez, 2004 16:32

Eigentümer ist in beiden Fällen root (uid=0) ..
Muss vlt root einer bestimmten Group angehören, damit er nice verwenden kann?
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon lordpeng » Di 28 Dez, 2004 14:18

hmmm, sehr merkwürdig, kannst du ausschliessen, dass die kiste gehackt wurde?
lordpeng
Moderator
Moderator
 
Beiträge: 10184
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon burnie51 » Di 28 Dez, 2004 18:12

das kann ich ausschließen .. habe schon die logfiles (pam,auth) durchgesehen ..
habe die frage auch in anderen foren gestellt, aber anscheinend weis niemand, woran es liegen könnte ..
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon lordpeng » Di 28 Dez, 2004 18:17

>das kann ich ausschließen .. habe schon die logfiles (pam,auth) durchgesehen ..
bei einer privaten kiste wärs wohl eher auch unwahrscheinlich, bei einem server mit öffentlicher IP würd ich mal nach rootkits suchen ...

btw. vielleicht solltest du mal die prüfsummen von nice und renice mit denen aus dem original installierten debian paket vergleichen
lordpeng
Moderator
Moderator
 
Beiträge: 10184
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon dfx » Di 28 Dez, 2004 18:30

zwei erklärungen würden mir einfallen: 1) du bist nicht wirklich root, auch wenn du es glaubst zu sein. "id" gibt aufschluss. 2) der laufende kernel beinhaltet irgendwelche patches, die ein erhöhen der prozesspriorität verhindern, etwa ala grsecurity (auch wenn grsecurity afaik das nicht macht).

ps: du kannst dir das renicen ja mal genauer unter strace anschaun, zb mit "strace nice -n -5 echo blah". beachte vor allem den aufruf an die [sg]etpriority() funktionen und deren return werte.
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon burnie51 » Di 28 Dez, 2004 20:29

danke erstmal für eure tipps ..

also hier ist die ausgabe von id:
Code: Alles auswählen
uid=0(root) gid=0(root) groups=0(root),1(daemon),2(bin),3(sys),4(adm),6(disk),37(operator)

laut dieser ausgabe muss ich ja root sein ..

und beim strace kommt folgende ausgabe, aus der ich nicht viel schlauer werde:
Code: Alles auswählen
execve("/usr/bin/nice", ["nice", "-n", "-5", "echo", "blah"], [/* 15 vars */]) = 0
uname({sys="Linux", node="homelinux", ...}) = 0
brk(0)                                  = 0x804bb64
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=14149, ...}) = 0
old_mmap(NULL, 14149, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\30\222"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1153784, ...}) = 0
old_mmap(NULL, 1166560, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40018000
mprotect(0x4012b000, 40160, PROT_NONE)  = 0
old_mmap(0x4012b000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x113000) = 0x4012b000
old_mmap(0x40131000, 15584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40131000
close(3)                                = 0
munmap(0x40014000, 14149)               = 0
brk(0)                                  = 0x804bb64
brk(0x804bb8c)                          = 0x804bb8c
brk(0x804c000)                          = 0x804c000
getpriority(PRIO_PROCESS, 0)            = 20
setpriority(PRIO_PROCESS, 0, -5)        = -1 EACCES (Permission denied)
write(2, "nice: ", 6nice: )                   = 6
write(2, "cannot set priority", 19cannot set priority)     = 19
write(2, ": Permission denied", 19: Permission denied)     = 19
write(2, "\n", 1
)                       = 1
_exit(1)                                = ?

bei der funktion setpriority ist zu sehen, dass wieder "Permission denied" auftritt und die fehlerausgabe folgt.

btw. vielleicht solltest du mal die prüfsummen von nice und renice mit denen aus dem original installierten debian paket vergleichen

ja, aber ob das was bringt? ... kann man vlt irgendwie nice per apt neu installieren? habe im google gefunden, dass nice zum paket "shellutils" gehört .. welches ich lieber nicht deinstallieren möchte, da davon auch abgeraten wird ..
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon dfx » Mi 29 Dez, 2004 08:45

neu installieren von nice/renice wird nix bringen, da im strace zu sehen ist, daß nice das richtige macht, aber vom kernel eine fehlermeldung retour bekommt. die ursache für den fehler ist somit im kernel zu suchen. (um die priorität erhöhen zu können, muß der aktuelle prozess die capability CAP_SYS_NICE besitzen. möglicherweise wurde diese capability dem user root entzogen, oder die capability aus dem kernel komplett entfernt (mittels lcap zb).)
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon burnie51 » Mi 29 Dez, 2004 13:23

thx@dfx!
habe das mal überprüft, aber der kernel besitzt noch die capability CAP_SYS_NICE .. siehe:
Code: Alles auswählen
Current capabilities: 0x00000000
   0)  CAP_CHOWN                   1)  CAP_DAC_OVERRIDE
   2)  CAP_DAC_READ_SEARCH         3)  CAP_FOWNER
   4)  CAP_FSETID                  5)  CAP_KILL
   6)  CAP_SETGID                  7)  CAP_SETUID
   8)  CAP_SETPCAP                 9)  CAP_LINUX_IMMUTABLE
  10)  CAP_NET_BIND_SERVICE       11)  CAP_NET_BROADCAST
  12)  CAP_NET_ADMIN              13)  CAP_NET_RAW
  14)  CAP_IPC_LOCK               15)  CAP_IPC_OWNER
  16)  CAP_SYS_MODULE             17)  CAP_SYS_RAWIO
  18)  CAP_SYS_CHROOT             19)  CAP_SYS_PTRACE
  20)  CAP_SYS_PACCT              21)  CAP_SYS_ADMIN
  22)  CAP_SYS_BOOT               23)  CAP_SYS_NICE
  24)  CAP_SYS_RESOURCE           25)  CAP_SYS_TIME
  26)  CAP_SYS_TTY_CONFIG
    * = Capabilities currently allowed

ich weis einfach nicht weiter
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon dfx » Mi 29 Dez, 2004 13:35

da fehlen mir aber ne ganze menge sterndal... bei mir zb sieht das so aus:

Code: Alles auswählen
Current capabilities: 0xFFFFFEFF
   0) *CAP_CHOWN                   1) *CAP_DAC_OVERRIDE         
   2) *CAP_DAC_READ_SEARCH         3) *CAP_FOWNER               
   4) *CAP_FSETID                  5) *CAP_KILL                 
   6) *CAP_SETGID                  7) *CAP_SETUID               
   8)  CAP_SETPCAP                 9) *CAP_LINUX_IMMUTABLE     
  10) *CAP_NET_BIND_SERVICE       11) *CAP_NET_BROADCAST       
  12) *CAP_NET_ADMIN              13) *CAP_NET_RAW             
  14) *CAP_IPC_LOCK               15) *CAP_IPC_OWNER           
  16) *CAP_SYS_MODULE             17) *CAP_SYS_RAWIO           
  18) *CAP_SYS_CHROOT             19) *CAP_SYS_PTRACE           
  20) *CAP_SYS_PACCT              21) *CAP_SYS_ADMIN           
  22) *CAP_SYS_BOOT               23) *CAP_SYS_NICE             
  24) *CAP_SYS_RESOURCE           25) *CAP_SYS_TIME             
  26) *CAP_SYS_TTY_CONFIG       
    * = Capabilities currently allowed
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon burnie51 » Mi 29 Dez, 2004 13:41

oh .. dachte, dass dies die capabilities sind, die allowed sind ..
wie kann ich denn capabilities hinzufügen?
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon dfx » Mi 29 Dez, 2004 14:26

burnie51 hat geschrieben:wie kann ich denn capabilities hinzufügen?

afaik gar nicht. einmal entfernt, sind die capabilities bis zum reboot weg, kann mich aber täuschen auch. dabei geht es übrigens um das file /proc/sys/kernel/cap-bound.
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon burnie51 » Mi 29 Dez, 2004 14:42

dfx hat geschrieben:
burnie51 hat geschrieben:wie kann ich denn capabilities hinzufügen?

afaik gar nicht. einmal entfernt, sind die capabilities bis zum reboot weg, kann mich aber täuschen auch. dabei geht es übrigens um das file /proc/sys/kernel/cap-bound.

also reboot bringt nix, capabilities ändern sich nicht ..
im file cap-bound steht leider auch nichts drin; auch auf einer anderen debian-maschine ist dieses file leer

kann man vlt. den kernel irgendwie "austauschen"?
burnie51
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 47
Registriert: Di 15 Jul, 2003 17:49

Beitragvon pebkac » Do 20 Jan, 2005 08:28

btw, dpkg kanns auch ohne googi:

1: zu welchem Paket gehört File xyz?
$ dpkg -S /usr/bin/nice
coreutils: /usr/bin/nice

2: Reinstallation:
$ apt-get install coreutils --reinstall

3: Rekonfiguration:
$ dpkg-reconfigure coreutils

4: neuer kernel:
was ist das für ein debian?
was ist das für ne kiste/hardware?
generisch:
apt-get install kernel-image-2.6.X

ein 2.6.10-x Debian kernel hat defaultmäßig diese caps:
Code: Alles auswählen
Current capabilities: 0xFFFFFEFF
   0) *CAP_CHOWN                   1) *CAP_DAC_OVERRIDE
   2) *CAP_DAC_READ_SEARCH         3) *CAP_FOWNER
   4) *CAP_FSETID                  5) *CAP_KILL
   6) *CAP_SETGID                  7) *CAP_SETUID
   8)  CAP_SETPCAP                 9) *CAP_LINUX_IMMUTABLE
  10) *CAP_NET_BIND_SERVICE       11) *CAP_NET_BROADCAST
  12) *CAP_NET_ADMIN              13) *CAP_NET_RAW
  14) *CAP_IPC_LOCK               15) *CAP_IPC_OWNER
  16) *CAP_SYS_MODULE             17) *CAP_SYS_RAWIO
  18) *CAP_SYS_CHROOT             19) *CAP_SYS_PTRACE
  20) *CAP_SYS_PACCT              21) *CAP_SYS_ADMIN
  22) *CAP_SYS_BOOT               23) *CAP_SYS_NICE
  24) *CAP_SYS_RESOURCE           25) *CAP_SYS_TIME
  26) *CAP_SYS_TTY_CONFIG
    * = Capabilities currently allowed

Ich denke, dass da ein Konfigurationsfehler vorliegt, ...
pebkac
Neu im Board
Neu im Board
 
Beiträge: 19
Registriert: Sa 04 Sep, 2004 01:16


Zurück zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 27 Gäste

cron