# Komisches Problem mit sudo

## l3u

Ich habe gerade einen Rechner neu aufgesetzt (evtl. hakt es da also hier und da noch ein bisschen). Jetzt habe ich Problem mit sudo, was ich mir nicht erklären kann.

Auf dem Rechner soll eine virtuelle Maschine mit Qemu laufen. Die kann ich auch als root ganz normal starten. Jetzt würde ich gerne die virtuelle Maschine mit einem Script starten, was ein normaler User ohne Passworteingabe mittels sudo starten kann.

Ein entsprechendes Script habe ich angelegt (/usr/local/bin/launch_server), und wenn ich das als root starte, dann startet auch die virtuelle Maschine normal.

Wenn ich das Script mit "su -c /usr/local/bin/launch_server" starte, dann startet die virtuelle Maschine auch problemlos, aber man muss natürlich das root-Passwort eingeben.

Jetzt will ich das Script ja aber per sudo starten, damit man kein Passwort eingeben muss. Deswegen habe ich das auch per visudo ermöglicht mit

```
%wheel ALL=(ALL) NOPASSWD: /usr/local/bin/launch_server
```

Wenn ich jetzt aber das Script mittels "sudo /usr/local/bin/launch_server" starte, dann bekomme ich folgende Fehlermeldung:

```
(qemu) No protocol specified

Could not initialize SDL(No available video device) - exiting
```

aber warum?! Über sudo wird doch das Script auch als root ausgeführt!Last edited by l3u on Sun Feb 09, 2014 2:04 am; edited 1 time in total

----------

## firefly

Scheinbar gehen dabei einige env Einstellungen verloren.

AFAIK filtert sudo die env vars um sicherheitsprobleme zu vermeiden.

Siehe auch: http://askubuntu.com/questions/270006/why-user-should-never-use-normal-sudo-to-start-graphical-application

----------

## l3u

Dann wird das wohl nichts werden mit sudo …

----------

## Christian99

du könntest die virtuelle Maschine ohne Fenster starten und dich dann über vnc oder so verbinden. wenn kein fenster aufgemacht wird gibts deswegen auch keine Probleme mit sudo. Ich weiß nur nicht wie das mit qemu funktioniert, bin mir aber sicher, dass es so oder so ähnlich geht.

----------

## kernelOfTruth

hm,

gksu bzw. gksudo versucht ?

wenn was nicht gescheit klappt (via sudo) starte ich ein gnome-terminal via gksudo und fahre dann von dort fort

alternativ: sudo -i ?

----------

## l3u

Ich hab jetzt verschiedenes ausprobiert, und mich doch dazu entschlossen, die virtuelle Maschine normal als User zu starten. damit gibt’s dann doch die wenigsten Probleme. Natürlich zu dem Preis, dass der eingeloggte User sie aus Versehen löschen könnte. Aber was soll’s … ;-)

----------

## bbgermany

Hi,

wenn das eine qemu-kvm Maschine ist, könntest du doch libvirtd verwenden. Das funktioniert sehr zuverlässig.

MfG. Stefan

----------

## l3u

Ist es, aber ich starte die VM lieber „zu Fuß“ mit einem einfachen Script. Tut alles, was ich will, und ich habe keinen weiteren Abstraktionslayer, den ich eigentlich nicht brauche. Ist auch die einzige VM, die läuft.

----------

## toralf

```
sudo su - username -c "command sequence"
```

dann sollte auch das komplette env des username gesourced werden.

----------

## l3u

Aber wenn ich per sudo su aufrufe, dann muss ich ja trotzdem ein Passwort eingeben, oder?! Bzw. dann kann man doch gleich su nehmen, oder?

----------

## toralf

 *l3u wrote:*   

> Aber wenn ich per sudo su aufrufe, dann muss ich ja trotzdem ein Passwort eingeben, oder?! Bzw. dann kann man doch gleich su nehmen, oder?

 Nein, wenn entweder in /etc/sudoers etwas in dieser Art steht :

```

## Same thing without a password

%wheel ALL=(ALL) NOPASSWD: ALL

```

und der Nutzer zur Gruppe wheel hinzugefügt wurde oder aber Einträge der Art 

```
ALL ALL=(root) NOPASSWD: /path/to/script
```

gemacht werden.

----------

## l3u

Werd ich mal testen. Danke für den Tip!

----------

