Hozzászólások
Sziasztok!
Azt szeretném valahogy kisakkozni, hogy a p2p hálózatra felcsatlakozó szoftver (mlnet) induláskor elkezdjen futni, de semmi képpen nem root jogokkal, hanem úgy, mintha az erre a célra késztett 'p2p' felhasználó indítaná.
Gondoltam a sudo lesz a megoldás, felraktam, idáig jutottam a mannal:
'sudo -i -u p2p /home/p2p/mlnet/mlnet' dolgot kiadom root-ként, de azt mondja hogy nincs jog a futtatáshoz. Pedig a sudo configfile-ban rootnak all:all joga van, kell oda valami exec jog?
Vagy valami más megoldást kellene keresni? Tudom hogy a sudo veszélyes dolog, de ez csak egy otthoni gép a családnak... akik nem tudják konzolba elindítani az mlnetet más felhasználóként :) vagy legalábbis nem akarom őket ezzel terhelni, meg amúgy is érdekes a probléma...
Tudtok valami egyszerű megoldást?
- A hozzászóláshoz be kell jelentkezni
Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
- A hozzászóláshoz be kell jelentkezni
[quote:3836e0dc6e="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:3836e0dc6e]# su username /path/to/mlnet[/code:1:3836e0dc6e]
vagy az ezzel ekvivalens valtozat:
[code:1:3836e0dc6e]# su - username /path/to/mlnet[/code:1:3836e0dc6e]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
- A hozzászóláshoz be kell jelentkezni
[quote:e756f875d2="rigidus"][quote:e756f875d2="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:e756f875d2]# su username /path/to/mlnet[/code:1:e756f875d2]
vagy az ezzel ekvivalens valtozat:
[code:1:e756f875d2]# su - username /path/to/mlnet[/code:1:e756f875d2]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
Nincs igazad. su(1) nak vannak kapcsoli.
http://www.die.net/doc/linux/man/man1/su.1.html
http://www.openbsd.org/cgi-bin/man.cgi?query=su&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
Mielott akarmit is irsz eloszor nezz korul. Addig folosleges okoskodni.
- A hozzászóláshoz be kell jelentkezni
[quote:8ed1a9bc49="rigidus"] A su-nak nincsenek kapcsoloi.
De vannak.
[quote:8ed1a9bc49="rigidus"]
[code:1:8ed1a9bc49]# su username /path/to/mlnet[/code:1:8ed1a9bc49]
vagy az ezzel ekvivalens valtozat:
[code:1:8ed1a9bc49]# su - username /path/to/mlnet[/code:1:8ed1a9bc49]
Ezek nem ekvivalensek.
- A hozzászóláshoz be kell jelentkezni
[quote:86cb061578="rigidus"][quote:86cb061578="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:86cb061578]# su username /path/to/mlnet[/code:1:86cb061578]
vagy az ezzel ekvivalens valtozat:
[code:1:86cb061578]# su - username /path/to/mlnet[/code:1:86cb061578]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
AFAIK a - os es a nem - os valtozat kozott az a kulombseg, hogy - al login shellt kapsz nem - al pedig nem.
- A hozzászóláshoz be kell jelentkezni
Ha a su username parancs formát használom, akkor nem fog megállni és jelszót kérdezni?
- A hozzászóláshoz be kell jelentkezni
[quote:dfbb942d4f="dii"]Ha a su username parancs formát használom, akkor nem fog megállni és jelszót kérdezni?
rootként nem. És az init rootként fut.
- A hozzászóláshoz be kell jelentkezni
[quote:37d1aa64b5="thuglife"][quote:37d1aa64b5="rigidus"][quote:37d1aa64b5="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:37d1aa64b5]# su username /path/to/mlnet[/code:1:37d1aa64b5]
vagy az ezzel ekvivalens valtozat:
[code:1:37d1aa64b5]# su - username /path/to/mlnet[/code:1:37d1aa64b5]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
Nincs igazad. su(1) nak vannak kapcsoli.
http://www.die.net/doc/linux/man/man1/su.1.html
http://www.openbsd.org/cgi-bin/man.cgi?query=su&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
Utananezes Elotte RC1
[code:1:37d1aa64b5]
# man su
...
NAME
su - change user ID or become super-user
SYNOPSIS
su [-] [username [args]]
DESCRIPTION
su is used to become another user during a login session. Invoked with-
out a username, su defaults to becoming the super user. The optional
argument - may be used to provide an environment similiar to what the
user would expect had the user logged in directly.
...
[/code:1:37d1aa64b5]
Utananezes elote RC2
[code:1:37d1aa64b5]tony@laptop ~ $ su -l root
Password: <helyes_jelszo>
/bin/bash: root: No such file or directory[/code:1:37d1aa64b5]
[quote:37d1aa64b5="thuglife"]Mielott akarmit is irsz eloszor nezz korul. Addig folosleges okoskodni.
Hasznos gondolat. Mielott bunkozol valakivel, gyozodj meg rola, hogy joggal teszed-e. Ha nem all mododba meggyozodni, akkor pedig ne tegy olyan kijelenteseket amelyeket te magad sem olvasnal szivesen hasonlo helyzetben.
A maganvelemenyem pedig, ha valakinek van szakma nivoja azt pont ilyen lekezelo magatartassal lehet legjobban leplezni. Legy olyan, amilyennek latni szeretned a korulotted levoket. :evil:
- A hozzászóláshoz be kell jelentkezni
[quote:168fa81e63="petya"][quote:168fa81e63="rigidus"][quote:168fa81e63="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:168fa81e63]# su username /path/to/mlnet[/code:1:168fa81e63]
vagy az ezzel ekvivalens valtozat:
[code:1:168fa81e63]# su - username /path/to/mlnet[/code:1:168fa81e63]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
AFAIK a - os es a nem - os valtozat kozott az a kulombseg, hogy - al login shellt kapsz nem - al pedig nem.
Valtozat 1
[code:1:168fa81e63]root@laptop ~ # su - tony
tony@laptop ~ $
[/code:1:168fa81e63]
Valtozat 2
[code:1:168fa81e63]root@laptop ~ # su tony
tony@laptop ~ $
[/code:1:168fa81e63]
- A hozzászóláshoz be kell jelentkezni
Köszönöm a tippeket, este kipróbálom.
Dii
- A hozzászóláshoz be kell jelentkezni
Jó nyom volt a 'su', csak hogy itt legyen a teljes megoldás, annak akinek hasonló problémája van:
'su - felhasználónév -c parancs &'
(nálam: su - p2p -c /home/p2p/mlnet/mlnet &)
A - kellett ahhoz, hogy a parancs a felhasználó környezetében hajtódjon végre (különben hozzáférési hibák voltak), a -c meg ahhoz hogy parancsvégrehajtás legyen (egyékbént cannot execute binary file hibaüzenet van), az & meg hogy háttérbe menjen és ne álljon meg a gép.
Már csak egy problémám van az egésszel, hogy az 'mlnet' úgy fut le, hogy abba a könyvtárba rakja a fájlait, ahonnan indítják. Ez most a fenti parancsal, a home könyvtára a felhasználónak, míg nekem a ~/mlnet könyvtár lenne ideális, mert akkor nem szemeteli tele a home-ot.
Van valakinek erre megoldása?
- A hozzászóláshoz be kell jelentkezni
A parancsodat atirva valami ilyesmivel probalkoznek (nem igerem, hogy hibatlan, csak a logikaja erdekes):
su - felhasznalonev -c "cd /home/p2p/mlnet && ./mlnet" &
(
ugy probaltam, ki azert valamennyire, hogy rootkent beirtam:
su - root -c "cd /home && touch x" &
Elvileg ugye a /home-ba a root irhat csak, es ment rendesen, valamit vissza is kaptam a shellt.
)
Udv,
Hijaszu
PS: Masik megoldas az lehet, hogy irsz egy shell wrapper, ami automatikus belep a megfelelo konyvtarba es elinditja a programot.
- A hozzászóláshoz be kell jelentkezni
igen
p2p.sh
[code:1:af987aba8b]
cd ~p2p/mlnet
su - p2p -c /home/p2p/mlnet/mlnet &
[/code:1:af987aba8b]
/etc/init.d/ -be bemasolod, majd symlink (S99p2p.sh) a megfelelo rc konyvtarba.
amugy a su es a su - kozott az a gyakorlati kulonbseg, hogy a - eseten megkapja a kornyezeti valtozokat is a user (mint egy uj loginnal), mig a masik esetben nem
- A hozzászóláshoz be kell jelentkezni
Lehet ezt sokkal egyszerubben is.
A system crontabba be lehet irni usert, akinek a neveben inditson, idozitesnek meg be lehet irni, hogy @reboot.
http://www.koch-schmidt.de/cronnix/docs/crontab_syntax.html
- A hozzászóláshoz be kell jelentkezni
Köszönöm a gyors válaszokat!
Ez is, az is jó megoldásnak tűnik, este majd megcsinálom... kicsit még csiszolni kell a bash tudásomat azthiszem :)
- A hozzászóláshoz be kell jelentkezni
Nalam speciel az mlnet ugy indul, hogy egy mldrun nevu script fut le, ami atvalt a konyvtarra, elinditja a daemont es utana a guit. Amikor a guit kinyomom, a script leallitja a daemont is. Igaz, igy nem inditaskor fut, csak ha en elinditom. De nekem igy felel meg.
Szoval sztem talan scripttel kellene, vagy ket su paranccsal vagy nem tudom :( pl. a ; (pontosvesszo) alkalmas arra, hogy egy sorba ket parancsot irj. De nem tudom, a scriptekre mukodik-e a su.
(sudo igen, anyam gepen ezert nem kell rootnak lennie, hogy betarcsazhasson) Nem tudom, de attol felek, a su "elfelejti" az addigi beallitasokat, tehat ha lefut egy su, ami atall a konyvtarra, aztan megegy, ami inditja a demont, a masodik nem veszi figyelembe az elsot. De ki kellene probalni..
[quote:8b896a247f="dii"]
Már csak egy problémám van az egésszel, hogy az 'mlnet' úgy fut le, hogy abba a könyvtárba rakja a fájlait, ahonnan indítják. Ez most a fenti parancsal, a home könyvtára a felhasználónak, míg nekem a ~/mlnet könyvtár lenne ideális, mert akkor nem szemeteli tele a home-ot.
Van valakinek erre megoldása?
- A hozzászóláshoz be kell jelentkezni
[quote:feed575110="rigidus"][quote:feed575110="thuglife"][quote:feed575110="rigidus"][quote:feed575110="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:feed575110]# su username /path/to/mlnet[/code:1:feed575110]
vagy az ezzel ekvivalens valtozat:
[code:1:feed575110]# su - username /path/to/mlnet[/code:1:feed575110]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
Nincs igazad. su(1) nak vannak kapcsoli.
http://www.die.net/doc/linux/man/man1/su.1.html
http://www.openbsd.org/cgi-bin/man.cgi?query=su&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
Utananezes Elotte RC1
[code:1:feed575110]
# man su
...
NAME
su - change user ID or become super-user
SYNOPSIS
su [-] [username [args]]
DESCRIPTION
su is used to become another user during a login session. Invoked with-
out a username, su defaults to becoming the super user. The optional
argument - may be used to provide an environment similiar to what the
user would expect had the user logged in directly.
...
[/code:1:feed575110]
Utananezes elote RC2
[code:1:feed575110]tony@laptop ~ $ su -l root
Password: <helyes_jelszo>
/bin/bash: root: No such file or directory[/code:1:feed575110]
[quote:feed575110="thuglife"]Mielott akarmit is irsz eloszor nezz korul. Addig folosleges okoskodni.
Hasznos gondolat. Mielott bunkozol valakivel, gyozodj meg rola, hogy joggal teszed-e. Ha nem all mododba meggyozodni, akkor pedig ne tegy olyan kijelenteseket amelyeket te magad sem olvasnal szivesen hasonlo helyzetben.
A maganvelemenyem pedig, ha valakinek van szakma nivoja azt pont ilyen lekezelo magatartassal lehet legjobban leplezni. Legy olyan, amilyennek latni szeretned a korulotted levoket. :evil:
Mindkettőtöknek igaza van.
Thuglife az OpenBSD-s su-ról beszél, te meg a Linux disztribúciód shadow csomagjának a su-járól. Csak neki az a szokása, hogy Linuxos fórumokban OpenBSD-re optimalizált tanácsokat osztogat. Nála jobban nem csinálja senki. Legutóbb egy remek Debian fórumban találkoztam vele. Jót diskuráltunk.
Thuglife: mész a sörözésre?
Üdv,
Dw.
- A hozzászóláshoz be kell jelentkezni
[quote:cf1d291e66="petya"][quote:cf1d291e66="rigidus"][quote:cf1d291e66="thuglife"]Szerintem erre folosleges sudo(8) -t hasznalni. Erre boven eleg su(1) is,
mivel init kozben mindenkeppen rootken fut minden.
Valami ilyesmivel:
# su -l username /path/to/mlnet
Ez igy nem lenne jo. A su-nak nincsenek kapcsoloi.
Igy helyesen:
[code:1:cf1d291e66]# su username /path/to/mlnet[/code:1:cf1d291e66]
vagy az ezzel ekvivalens valtozat:
[code:1:cf1d291e66]# su - username /path/to/mlnet[/code:1:cf1d291e66]
A -l az az ssh-nak a kapcsoloja usernev elott. A - kapcsolot is csak regi a szkriptek visszafele kompatibilitasa miatt hagytak meg.
AFAIK a - os es a nem - os valtozat kozott az a kulombseg, hogy - al login shellt kapsz nem - al pedig nem.
A "-"-os és a "-" nélküli változat között az a különbség, hogy az előbbi a környezeti változókat átállítja a kérdéses user-nek megfelelően. Az utóbbinál maradnak az eredeti felhasználó beállításai. "-"-szal olyan, mintha bejelentkeztél volna. Ha új shell-t nyitsz pl., akkor a user home-jába kerülsz. Ha nélküle nyitod, akkor maradsz a pwd-ben.
Üdv,
Dw.
- A hozzászóláshoz be kell jelentkezni