Shell-Befehl auch ohne root-Rechte ...

Hi,

Folgendes: ich baue meine Internetverbindung mit dem Befehl pptp alcatel auf. Wobei alcatel der Name vom ADSL-Modem ist. Das ganze funktioniert auch, allerdings kennt die bash den Befehel pptp nicht, wenn ich keine root-Rechte habe. Momentan helfe ich mir ab indem ich su eingebe, dann root-pwd und dann erst pptp alcatel. Das ist aber keine sehr tolle Lösung weil somit nur ich eine Internetverbindung aufbauen kann. Wenn zB mein Bruder online gehen will macht er das entweder unter Windows (-.-) oder ich muss ihm erst die Verbindung herstellen.

Heute habe ich von einem netten habo-User, der mein Problem kannte, per ICQ den Tipp bekommen, dass es die /etc/sudoers gibt in der man konfigurieren kann welche Befehle von welchem User ausgeführt werden dürfen. Also habe ich mich gleich daran gemacht aber leider funzt das immer noch nicht.

Nach wie vor kommt die Meldung bash: pptp: command not found wenn ich ohne ein 'su' davor versuche die Internetverbindung herzustellen.

Wie kann ich das ändern, der Befehl um die Internetverbindung herzustellen ist ja wirklich etwas was ich auch einem normalen Benutzer zutrauen kann.

Ich hoffe ihr versteht was ich meine ;)

mfg

RemoteC
 
gib mal einfach den vollständigen pfad zu der executable an .. das sollte imho funktionieren.

EDIT: ich bin mir net sicher, aber ich glaube, dass wenn root einen befehl in die konsole eingibt, linux noch zusätzlich in weiteren ordnern danach sucht, als es das bei normalen usern tun würde. ich glaube /usr/sbin/ is einer von diesen ordnern, aber sicher bin ich mir da, wie gesagt, nicht wirklich :)
 
Wenn Du den Befehl wirklich nur mit su ausführen kannst, also nicht mit 'su -' dann ist die binary für jeden user sichtbar. Evtl Hilft es dir auch, die Datei auf executable group zu setzen und die Gruppen anzupassen (Internetzer oder so...).
In Fedora gibt es auf jeden fall die Option, (Netzwerk-)Geräte auch von normalen usern steuern zu lassen. Das heisst, es gibt irgendwo in den Tiefen der Config Scripte eine entsprechende Einstellmöglichkeit. Viel Spass beim Suchen!
 
Es genügt übrigens net, deinen Bruder bei den Sudoers einzutragen und danach weiterhin nur den Befehl einzugeben... denn /etc/sudoers setzt lediglich Rechte für sudo ;)

Wenn, dann so:
sudo pptp alcatel

Eventuell muss das mit dem Passwort bestätigt werden, das wäre dann aber das Passwort des Users, der sudo ausführt, nicht das Rootpasswort.

Achja, und pptp befindet sich vermutlich in /sbin oder /usr/sbin, was nur im $PATH von root vorhanden ist. Daher wird für normale User auch eine Fehlermeldung ausgegeben, wenn der Befehl ohne die Pfadangabe ausgeführt wird.
 
Original von Heinzelotto
http://www.gratisoft.us/sudo/sample.sudoers

merke: "This file MUST be edited with the 'visudo' command as root."
visudo kennt die shell nicht, aber /etc/sudoers lässt sich auch mit normalem vi bearbeiten und mit Strg+X speichern, wie jede andere textbasierende Datei.

Das Problem ist: Ich weiß nicht genau was pptp alcatel macht. Hier mal was in der shell steht wenn ich pptp alcatel eingebe:
Code:
Using interface ppp0
Connect ppp0 <---> /dev/pts/1
PAP authentication succeeded
local  IP address 62.xx.xx.xxx
remote IP address 62.yy.yy.yyy
Script ?? finished (pid 4765), status = 0x0
Script /etc/ppp/ip-up finished (pid 4775), status = 0x0
Das Skript /etc/ppp/ip-up alleine bringt nix, sonst hätt ich dort schon längst chmod a+x gemacht :-/

PS: pptp befindet sich in /usr/sbin, aber obwohl für alle das x-Bit gesetzt ist kennt die shell den Befehl nicht wenn ich mich in /usr/sbin befinde und es eingebe und bei ./pptp alcatel kommt nur ein eine Fehlermeldung anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted
anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting.
 
Du kannst dir ja ein Programm schreiben, das den Befehl ausführt. Dann musst du einfach noch das suid-bit setzen, und schon kann jeder die Internetverbindung herstellen.
Mit einfachem skript geht das nicht, da es unter Linux aus sicherheitstechnischen Gründen verboten ist, das suid-bit auf skripte zu setzen.
 
Hab dieses Skript gemacht:
Code:
#!/bin/bash
#Skript zum i-net verbindung machen
cd /usr/sbin
./pptp alcatel
exit 0
Hab auch das SUID-Bit gesetzt und natürlich chmod a+rwx. Momentan schauen die Berechtigungen für das Skript so aus: -rwsrwxrwx und in der bash ist es rot Hinterlegt bei einem dir bzw. ls -l. Aber er macht jetzt genau die selbe Fehlermeldung wie wenn ich ohne das Skript ./pptp alcatel machen würde :-/

Das kann doch nicht sooo schwer sein die i-net Verbindung freizugeben -.-
Unter Windows hab ich schon wieder irgendnen Trojaner/Wurm drauf und unter Linux kann mein Bruder nicht surfen wenn ich nicht da bin ...
 
Zurück
Oben