su viz. sudo /Ergänzung

Thilo Six T.Six at gmx.de
Sam Mai 3 11:00:24 BST 2008


Keywan Najafi Tonekaboni wrote the following on 03.05.2008 11:28

> Hallo,
> 
> Am Samstag, den 03.05.2008, 09:53 +0200 schrieb Thilo Six:
> (...)
>> Das funktioniert aber "nur" wenn man sudo als: $ sudo -i
>> aufruft. Wenn man den -s Switch benutzt wie Luise das neulich geschrieben
>> hatte werden die root Dateien nicht gesourced.
> 
> Welche Gründe gibt es denn, "sudo -s" zu verwenden. Wie Nils verwende
> ich auch immer sudo su und glaube sudo -i sei vorzuziehen.
> 
> Aber für irgendwas muss es ja dieses -s geben :) 
> Also in welchen Fällen macht das Sinn?
> 
> Grüße,
> 
> Keywan

Ich kenn mich nicht gut genug aus um dir da eine profunde Antwort geben zu
können. Aber schauen wir doch mal:

man sudo:
<-----------------------------------------------------------------

Usage
sudo {-i | -s | command}

-i  The -i (simulate initial login) option runs the shell specified in
           the passwd(5) entry of the user that the command is being run as.
           The command name argument given to the shell begins with a `-' to
           tell the shell to run as a login shell.  sudo attempts to change
	   to that user's home directory before running the shell. ....

-s  The -s (shell) option runs the shell specified by the SHELL envi-
           ronment variable if it is set or the shell as specified in
           passwd(5).
----------------------------------------------------------------->

$ sudo -s
# env > env-s.txt
# exit
$ sudo -i
# env > env-i.txt
# colordiff -ruN --ignore-blank-lines env-s.txt env-i.txt
--- env-s.txt   2008-05-03 11:44:58.000000000 +0200
+++ env-i.txt   2008-05-03 11:45:12.000000000 +0200
.
.

-PWD=/home/USER
+PWD=/root
.
.

-LANG=de_DE.UTF-8
+LANG=C

Der Unterschied ist wie schon festgestellt der Kontext in dem der Befehl
ausgeführt wird.
Um jetzt sagen zu können, was da technisch gesehen der Unterschied ist müsste
man den Source Code lesen (können).
-- 
bye Thilo

key: 0x4A411E09