rubyscript via sudo?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

rubyscript via sudo?

Beitrag von FitzeFatze » 04.06.2006 02:48:11

hallo zusammen,
ich habe mir ein kleines script geschrieben, das mir den mountbefehl abnimmt.

the problem is, das "mount" ja nur als root ausgefuehrt werden darf.

ich habe schon einige varianten ausprobiert, aber keine davon hat geklappt:
zB

Code: Alles auswählen

>system("su root")
print("passwort")

etc
a) wollte ich jetzt wissen wie ich dieses problem im script selber (also per befehl) loesen kann. es gaebe ja dann noch die rechtklick -> zugriffsrechte variante.

b) wuerde ich gerne wissen,ob ich ruby anwendungen auch per verknuepfung starten lassen kann. ansonsten wuerde mir mein script herzlich wenig bringen, wenn ich erst mal in den ruby ordner wechseln und es dann noch ausfuehren muss, koennte ich ja gleich manuell mounten! ;)

ciao

Benutzeravatar
daFreak
Beiträge: 875
Registriert: 14.09.2005 12:09:59
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von daFreak » 04.06.2006 02:51:34

hi!

ich weiß ja nicht genau was du vorhast... aber wäre /etc/fstab eine möglichkeit?

FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

Beitrag von FitzeFatze » 04.06.2006 02:56:21

ne, nicht unbedingt.

a)ist es ein usb-stick der nicht immer gemountet werden soll und
b) will ich vorallem rumspielen;)

nacht!

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 04.06.2006 03:11:50

wenn er auch vom user und nicht automatisch mountbar sein soll, dann teil es mount doch über die fstab mit. Ungefähr so:

Code: Alles auswählen

/dev/sdb1 /media/usb-stick auto defaults,rw,users,noauto 0 0
Aber wenn du rumspielen willst dann, dann benutze entwerder "sudo" oder teile das Passwort über eine Pipe mit. Wie das unter ruby läuft, weiß ich nicht aber unter Perl geht das so:

Code: Alles auswählen

open(SU,"| su root -c script");
print SU "12345";
close(SU) or die "konnte su nicht ausführen. ($!)";
Etwas komplizierter würde es auch noch die ausgaben von su und "script" ab zu fangen...
Dann könntest du auch eine Benannte-Pipe (fifo) benutzen das von einem Serverprogramm, das als root läuft, überwacht wird.
Oder du könntest einen richtigen Deamon programmieren, der auf befehle wartet.

Aber am besten wäre wohl wirklich "sudo".

Ach so die Sache mit der Selbstauführbarkeit.

Code: Alles auswählen

#!/usr/bin/ruby
Als erste Zeile im Script und die rechte auf "0755" setzen.

FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

Beitrag von FitzeFatze » 13.06.2006 16:28:54

topeg: sorry, bin leider nicht so versiert, alsdass ich deinen post verwirklichen kann ;)

sonst noch wer ein tipp?

ciao

Antworten