sudo Skript

was dagegen ?

Aktives Mitglied
Thread Starter
Dabei seit
17.11.2006
Beiträge
323
Reaktionspunkte
7
Mahlzeit,

folgendes: seit kurzem bewege ich mich nicht mehr als admin durch die Gegen, sondern hab mich selbst zum User degradiert – allerdings stehe ich dadurch auch nicht mehr in der sudoers drin und das ist doof.
Schlau wie ich bin :)D bin halt nicht so der Shell-Profi), habe ich rausgefunden, dass ich per su admin -c "sudo BEFEHL" einen Befehl per sudo ausführen kann (admin ist natürlich mein admin-Account) – wenn auch mit zwei Passwort-Abfragen.
Nun dachte ich mir, dass ich mir daraus mal ein alias mache, habe dabei aber rausgefunden, dass die bash keine Aliase mit Parametern kann (ich nutze die bash), also dachte ich mir, mach ich halt 'ne Funktion draus und zwar folgendermaßen:
Code:
sudont() {
    su admin -c "sudo $1"
}
Wenn ich jetzt sudont BEFEHL eingebe, dann werde ich einmal nach dem Passwort gefragt, aber danach sagt sudo mir nur, wie man es korrekt aufruft (offenbar kam also der Parameter nicht an).

Hat jemand 'ne Idee, wieso das nicht geht und was ich tun kann?
Mag auch sein, dass es einfachere Möglichkeiten gibt, aber jetzt will ich's wissen, mein Forscherdrang ist geweckt ;)

/edit:
aaah, Moment, es geht doch :D
ich hatte allerdings immer den Befehl "sudont echo test" benutzt und da echot er natülich nix, weil test ja schon Parameter $2 ist (warum ich mir eingebildet hab, dass er mich nur einmal nach 'nem PW fragt, weiß ich nicht, war vielleicht noch aus Tests vor diesem letzten)

Was muss ich denn statt $1 angeben, damit er alle parameter übergibt?
 
well Du könntest Dich nat. in /etc/sudoers selbst eintragen!

Allerdings ist ja dann das Stück Sicherheit zum Teufel das DU haben magst.

Ich mach es immer so das, sobald meine Rechte nicht mehr reichen,
ich mit
su -l adminuser
mich zu einem User mit Admin-Rechten mache. Reicht auch das nicht, tippe ich in der Admin-Shell noch

sudo sh

ein und bin dann root-user! So erweitere ich meine Rechte immer wenn nötig und auch nur wenn nötig.
 
So, ich hab's jetzt - mit $* geht's =)

wegus: ins sudoers eintragen wollte ich mich eben aus Sicherheitsgründen nicht – außerdem scheint OS X die ja zu verwalten, da würde ich also eh rausfliegen, wenn ich mal an den Nutzern rumspiele.

Mit der Funktion oben, kann ich jetzt mit einem Befehl (und zwei mal Passwort tippen) einen Befehl ausführen, für den ich sudo bräuchte.
Vorteil gegenüber su -l ist, dass ich mich nicht wieder abmelden muss, sondern das Verhalten eben genau so wie bei sudo ist *freu*

Ich muss zugeben: ich bin ein bißchen stolz auf mich, dass ich das hingekriegt hab, wenn auch mit Hilfe :D
 
@wegus: sudo sh bringt aber auch nur was, wenn Du hintereinander viele Befehle mit root-Recht eingeben musst und nicht jedes mal sudo davor setzen willst.
Denn der Nutzer root bist Du damit immer noch nicht (dafür müsste Du schon su nutzen, aber root ist bei OS X eh deaktiviert) und die Shell, die Du startest ist auch noch völlig nackt, also ohne Deine eigenen Einstellungen, sofern Du welche vorgenommen hast.

Da würde ich dabei bleiben nach dem su -l alles per sudo zu machen – so ist m.E. auch der ganze Sicherheitsmechanismus gedacht, dass man eben keine Shell hat, die die ganze Zeit mit vollen Rechten läuft
 
Code:
maceis% sudo -s
Password:
root# whoami
root
 
@maceis: das geht aber nicht für den Normaluser, da muß ein su -l davor erfolgen!


was dagegen ? schrieb:
sudo sh bringt aber auch nur was, wenn Du hintereinander viele Befehle mit root-Recht eingeben musst und nicht jedes mal sudo davor setzen willst.
Denn der Nutzer root bist Du damit immer noch nicht (dafür müsste Du schon su nutzen, aber root ist bei OS X eh deaktiviert) und die Shell, die Du startest ist auch noch völlig nackt, also ohne Deine eigenen Einstellungen, sofern Du welche vorgenommen hast.

wer hat gesagt das Sicherheit bequem sei? Ich wechsele halt sehr überlegt die Rechte und habe bewußt bei root keine komplexe shell die im Zweifelsfall dann wg. falscher updates o.Ä. nicht mehr läuft.

Wie gesgat niemand hindert Dich Dich in /etc/sudoers einzutragen oder vorzugehen wie Du es beschreibst - nur wo ist dann Deine Sicherheit?

Die wenigsten Befehle erfordern ein solches Vorgehen ( das starten von Postgres erfordert etwa einen anderen User) und sollte ich davon einzelne regelmäßig brauchen mach ich mir ein Skript. Faktisch war das bisher erst einmal nötig.
 
@wegus: das sollte auch gar keine Kritik oder so sein, gerade bei diesem Thema interessiert mich einfach sehr wie andere damit umgehen und warum.
Aber gerade was das bewusst mit Rechten umgehen betrifft, ist mir halt sudo lieber, denn da muss ich für jeden Befehl einzeln entscheiden, ob ich sudo davor schreibe oder nicht – in einer root Shell vergisst man ja doch mal, dass man gerade root ist.
Aber das ist natürlich Geschmackssache und von einem selber abhängig, ich bin halt vergesslich, da ist 'ne root Shell nicht gut für mich ;)
 
Ich hab das bei mir so gelöst, dass ich in einer root-Shell automatisch einen (teilweise) roten Prompt habe. Außerdem wird neben einigen anderen Informationen der Benutzername im Prompt angezeigt. Bei "normalen" Benutzern ist das letzte Zeichen im Prompt '%', in einer root-Shell ist es '#'. Insgesamt ist das so auffällig, dass man eigentlich kaum übersehen kann, ob man in einer root-Shell ist oder nicht.

In manchen Umgebungen habe ich zusätzlich noch für den hostnamen im Prompt unterschiedliche Farben für unterschiedliche hosts. Das ist von Vorteil, wenn man viel über ssh auf anderen Rechnern arbeitet.
 
maceis schrieb:
In manchen Umgebungen habe ich zusätzlich noch für den hostnamen im Prompt unterschiedliche Farben für unterschiedliche hosts. Das ist von Vorteil, wenn man viel über ssh auf anderen Rechnern arbeitet.


...und so wie ich ein shutdown -h im falschen Terminal eintippt :Pfeif:
 
Zurück
Oben Unten