Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: exit su vanuit script  (gelezen 2534 keer)

exit su vanuit script
« Gepost op: 2011/05/30, 16:28:46 »
L.S.

Ik heb een scriptje gemaakt om na een reboot van mijn server (Ubuntu 10.04 Lucid Lynx) een aantal taken uit te voeren. Middels het commando sudo su heb ik echt compleet roottoegang, dan start ik het script op en aan het einde zou ik graag weer terugkeren naar mijn eigen account. Maar als ik aan het einde van het script "exit" of "exit 0" zet stopt het script net als wanneer dat er niet zou staan, maar ik keer niet terug naar mijn eigen account. Het blijft "root@mijnserver:/home/erik#".
Dan "exit" typen helpt wel, maar is er ook een mogelijkheid om dit in het script te laten uitvoeren?

Erik
Nobody expects the Spanish Inquisition! Oh lay!   :-)

Offline vanadium

  • Lid
Re: exit su vanuit script
« Reactie #1 Gepost op: 2011/05/30, 16:50:35 »

Ik heb een scriptje gemaakt om na een reboot van mijn server (Ubuntu 10.04 Lucid Lynx) een aantal taken uit te voeren.
Ik zou denken dat het dan volstaat, alle taken die je na de reboot wil uitvoeren, in /etc/rc.local te zetten.

Re: exit su vanuit script
« Reactie #2 Gepost op: 2011/05/30, 17:06:18 »
Wil je het uitlaten voeren telkens als je inlogt of telkens als je reboot. In dat laatste geval is het namelijk veel handiger om /etc/rc.local te gebruiken. Die wordt al met root rechten uitgevoerd en hoef je dus ook geen su te done. Dit script wordt automatisch en als laatste bij het booten gerund.

Waarom je een root account terug krijg snap ik ook niet direct, wellicht door de manier van aanroepen.

URD - http://www.urdland.com - Usenet Resource Downloader

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: exit su vanuit script
« Reactie #3 Gepost op: 2011/05/30, 17:23:35 »
Kan je dat script niet uitvoeren met sudo?
Dus sudo /pad/naar/script/script.sh
Afhankelijk van de inhoud van dat script kan je hem ook opnemen in /etc/rc.local, dan start dat script automatisch als de computer start.

Overigens kan je veel beter sudo -i gebruiken dan sudo su.

Offline vanadium

  • Lid
Re: exit su vanuit script
« Reactie #4 Gepost op: 2011/05/30, 17:26:37 »
Had ik de vraag meteen goed begrepen, dan had Johan niet moeten antwoorden ;)

Re: exit su vanuit script
« Reactie #5 Gepost op: 2011/06/01, 18:21:17 »
Alleen na reboot moet het uitgevoerd worden, ik open dat een terminal (mijn server heeft geen grafische mogelijkheden), en typ:

sudo su

Als root start ik dan:

./na-reboot.sh

Dit is het script:
=================================================================================
#! /bin/bash
mount.smbfs //192.168.5.125/PUBLIC /media/nas # Zonder deze regel bestaat het bestand in de volgende regel nog niet
echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
mount.smbfs //192.168.5.125/PUBLIC /media/nas -o noserverino # Mount NAS
echo 1 > /proc/sys/net/ipv4/ip-forward # Instellen forwarding
sudo chmod 666 /dev/video0 # Door middel van ssh -X webcam kunnen activeren
# Onderstaande lijkt mij overbodig, maar zonder dit werkt het een en ander niet.
restart smbd
/etc/init.d/cups restart
/etc/init.d/mt-daapd restart
/etc/init.d/mediatomb restart
/etc/init.d/networking restart

exit # terug naar user-account vanuit root
===================================================================

De laatste regel doet dus niet wat ik er van verwacht, maar als ik dan op de prompt exit typ ga ik wel terug.
Ik heb dit wel in /etc/rc.local geplaatst, maar daarna nog geen reboot uitgevoerd.

Groet'n,  Erik
Nobody expects the Spanish Inquisition! Oh lay!   :-)

Re: exit su vanuit script
« Reactie #6 Gepost op: 2011/06/01, 18:39:54 »
Die mounts horen gewoon in fstat thuis

forwarding kun je aanzetten in /etc/sysctl.conf; voeg toe (of uncomment)
net.ipv4.ip_forward = 1

Voor LinuxExtensionsEnabled  zal ongetwijveld ook iets zijn

waarschijnlijk zijn die restarts dan ook niet nodig
URD - http://www.urdland.com - Usenet Resource Downloader

Re: exit su vanuit script
« Reactie #7 Gepost op: 2011/06/01, 23:44:47 »
Als ik het volgende in fstab zet:

//192.168.5.125/PUBLIC /media/nas/ smbfs uid=erik,gid=admin 0 0

dan komt er een foutmelding. Dat heeft iets te maken met LinuxExtensionsEnabled denk ik, maar hoe dat precies in elkaar steekt weet ik dus niet.

echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled lukt niet met sudo ervoor, maar wel na sudo su........
Nobody expects the Spanish Inquisition! Oh lay!   :-)

Re: exit su vanuit script
« Reactie #8 Gepost op: 2011/06/02, 00:14:12 »
echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled lukt niet met sudo ervoor, maar wel na sudo su........

dat komt omdat bij sudo in dit geval de echo alleen gesudod wordt maar niet de redirect. feitelijk doe je dus :
(sudo echo 0) >  /proc/fs/cifs/LinuxExtensionsEnabled
en dus niet
(sudo echo 0 >  /proc/fs/cifs/LinuxExtensionsEnabled )


die su is feitelijk nutteloos, maar zorgt ervoor dat de er een shell wordt gestart die de echo uitvoerd

een "correctere" manier is
sudo bash -c "echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled"

alternatief kan zijn
echo 0 | tee /proc/fs/cifs/LinuxExtensionsEnabled > /dev/null :D
URD - http://www.urdland.com - Usenet Resource Downloader

Re: exit su vanuit script
« Reactie #9 Gepost op: 2011/06/02, 00:17:25 »
Als ik het volgende in fstab zet:
//192.168.5.125/PUBLIC /media/nas/ smbfs uid=erik,gid=admin 0 0
dan komt er een foutmelding. Dat heeft iets te maken met LinuxExtensionsEnabled denk ik, maar hoe dat precies in elkaar steekt weet ik dus niet.

Ik gebruik geen samba, dus helaas...  quick ggl lijkt op rechten issues te duiden.... wat is de foutmelding precies?
URD - http://www.urdland.com - Usenet Resource Downloader

Re: exit su vanuit script
« Reactie #10 Gepost op: 2011/06/07, 11:34:43 »
Als ik het een en ander in /etc/rc.local zet dan blijft het na een reboot hangen op de mediatomb.  Ik kom dan niet meer bij een inlogscherm uit, slechts een knipperende cursor. Reboot via de life-cd en dan rc.local aanpassen bracht redding voor dit probleem...
Voor gavinspearhead maar ook voor de andere replyers, bedankt voor jullie bijdragen. /etc/sysctl.conf heb ik aangepast en je uitleg over sudo su vond ik zeer verhelderend.

Mijn scriptje ziet er nu als volgt uit:
======================================================================================
#! /bin/bash
#mount.smbfs //192.168.5.125/PUBLIC /media/nas # Zonder deze regel bestaat het bestand in de volgende regel nog niet, maar is nu overbodig
bash -c "echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled"
mount -t cifs -o noserverino //192.168.5.125/PUBLIC /media/nas # Mount NAS
#echo 1 > /proc/sys/net/ipv4/ip-forward # Instellen forwarding maar dit staat nu in /etc/sysctl.conf
sudo chmod 666 /dev/video0 # Door middel van ssh -X webcam kunnen activeren
# Onderstaande lijkt mij overbodig, maar zonder dit werkt het een en ander niet.
restart smbd
/etc/init.d/cups restart
/etc/init.d/mt-daapd restart
/etc/init.d/mediatomb restart
/etc/init.d/networking restart

#exit # terug naar user-account vanuit root
============================================================================
Dit zou het dan moeten doen als ik het script met "sudo ./na-reboot.sh" opstart.

Normaal gesproken reboot ik slechts wanneer er een nieuwe kernel versie is, en al dit rebooten levert toch wat problemen cq. gemopper op over de nas, streaming, mail etc. en ik wacht dus ff op een goed moment op dit uit te proberen.

Ik heb geprobeerd om de commando's "echo 0 | tee /proc/fs/cifs/LinuxExtensionsEnabled > /dev/null" te doorgronden, maar dat schrijven naar /dev/null vat ik nog even niet.

Groet'n,  Erik
Nobody expects the Spanish Inquisition! Oh lay!   :-)

Re: exit su vanuit script
« Reactie #11 Gepost op: 2011/06/07, 19:51:20 »
tee schrijft naar een bestand en tegelijk naar standaard out. Door de > wordt de standaard out weergave niet getoond. En schrijft tee alleen naar het bestand. Als je het weghaalt zul je 0 op een nieuwe regel zien verschijnen
URD - http://www.urdland.com - Usenet Resource Downloader