Benutzerwechsel mit su nur via root ?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
zendak
Beiträge: 3
Registriert: 14.08.2005 02:32:23

Benutzerwechsel mit su nur via root ?

Beitrag von zendak » 14.08.2005 02:46:52

Debian Sarge: Ich kann mit su nicht zwischen normalen Usern wechseln. Passwort wird abgefragt, aber dann passiert nichts. Ich bleibe der "alte" User.
Die einzige Möglichkeit, von normalusera zu normaluserb zu wechseln ist über ein su (root). Als root geht's, doch dies ist a) ein Umweg und b) fühl ich mich dabei sehr unwohl.
Ist dies ein Debian-spezifisches Verhalten von su?

Benutzeravatar
berlinerbaer
Beiträge: 3339
Registriert: 28.04.2003 01:29:55
Wohnort: Sachsen, Krabatregion

Beitrag von berlinerbaer » 14.08.2005 08:00:04

das würde ich als normal ansehen. Stelle dir mal vor, ein User könne in einen anderen wechseln, ohne vorher root-Rechte zu haben. Das wäre ja schlimm. Ein solches System würde ich als fragwürdig ansehen (Windows XP :wink: )
Eventuell verwechselst du su mit sudo. Mit sudo, wenn es entsprechend eingerichtet ist, geht für den User, der in der sudo-Datei benannt ist, denn sudo heißt "tue es als superuser, quasi root".
Gruß
vom Bären

Endlich in Rente! Nur weg aus dem Irrenhaus.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 14.08.2005 09:02:49

Willkommen im Forum...

normalerweise sollte das funktionieren:

Code: Alles auswählen

check@tne:~$ su inken
Password: 
inken@tne:/home/check$
Wie sieht das bei dir konkret aus?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
zendak
Beiträge: 3
Registriert: 14.08.2005 02:32:23

Beitrag von zendak » 14.08.2005 15:26:22

peterschubert hat geschrieben:das würde ich als normal ansehen. Stelle dir mal vor, ein User könne in einen anderen wechseln, ohne vorher root-Rechte zu haben. Das wäre ja schlimm. Ein solches System würde ich als fragwürdig ansehen (Windows XP :wink: )
Hi Peter..Klar, ohne irgendeine Authentifizierung wäre das natürlich ein Horrorszenario. Aber soweit ich weiss gehört es zur Aufgabe von su, auch zwischen normalen Usern zu wechseln und das geht ja nicht, ohne das Passwort des Zielusers zu kennen.
Eventuell verwechselst du su mit sudo.
Nein, sudo ist auf der Box (noch) gar nicht installiert.
Savar hat geschrieben:Willkommen im Forum...
Danke, Savar :)
Ich hab inzwischen neue Erkenntnisse.. Zur Erklärung: Es handelt sich um einen remote virtual server, den ich als Webserver einrichte. Es gibt:
  • einen Standarduser mit shell, mit diesem logge ich mich ein und verrichte diverse non-root Aufgaben etc.
  • einen Webuser, dem ich keine shell gegeben habe (/bin/false in /etc/passwd); /home/webu/www ist die DocumentRoot für die website, die auf dem server läuft
  • natürlich root und diverse Systemuser (www-data, mysql usw)
Wenn ich nun als standarduser auf der Maschine bin, will ich oft nur zum webuser wechseln für Website-relevante Aufgaben. Dazu sollte der Umweg über root eigentlich entfallen.
Wie sieht das bei dir konkret aus?

Code: Alles auswählen

stan@vse:~$ su -s /bin/bash webu
Password:
stan@vse:~$
Es passiert also nichts. Passwort stimmt 100% und bei absichtlich falschem Passwort gibt's auch brav ein

Code: Alles auswählen

su: Authentication failure
Sorry.
Was ich nun festgestellt habe: Wenn ich dem webuser eine bash shell in /etc/passwd gebe, geht es mit su webu. Wenn ich ihm die shell wieder entziehe, geht's nicht wie oben gezeigt. Btw, die -s (auch --shell=) Option von su regelt das Problem, dass der Zieluser keine shell hat.
Ich suche also lediglich einen Weg, auf den webuser zu wechseln ohne dem Umweg über root. Was verpeile ich da?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 14.08.2005 15:48:12

Haste schon mal sowas probiert?

Code: Alles auswählen

su - programm



Natürlich den richtigen Usernamen einstezen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
berlinerbaer
Beiträge: 3339
Registriert: 28.04.2003 01:29:55
Wohnort: Sachsen, Krabatregion

Beitrag von berlinerbaer » 14.08.2005 18:27:10

zendak hat geschrieben: Hi Peter..Klar, ohne irgendeine Authentifizierung wäre das natürlich ein Horrorszenario. Aber soweit ich weiss gehört es zur Aufgabe von su, auch zwischen normalen Usern zu wechseln
Mmm. das wußte ich nicht, dafür habe ich su noch nie verwendet :?
Aber wie man sieht, stimmt es wohl:

Code: Alles auswählen

schubertp@debian-dell:~$ su --help
Usage: su [OPT] [-] [Benutzername [ARG]]
        -       Wechselt zu einer Login-Shell
        -c, --command=<Befehl>
                übergibt der gestarteten Shell einen Befehl
                option
       -m, -p, --preserve-environment
                Umgebungsvariablen nicht zurücksetzen, selbe
                Shell belassen
       -s, --shell=<Shell>
                <Shell> statt der in /etc/passwd Festgelegten starten
schubertp@debian-dell:~$
Na gut, wieder was dazu gelernt. :)
Gruß
vom Bären

Endlich in Rente! Nur weg aus dem Irrenhaus.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 14.08.2005 18:38:14

zendak hat geschrieben: Was ich nun festgestellt habe: Wenn ich dem webuser eine bash shell in /etc/passwd gebe, geht es mit su webu. Wenn ich ihm die shell wieder entziehe, geht's nicht wie oben gezeigt. Btw, die -s (auch --shell=) Option von su regelt das Problem, dass der Zieluser keine shell hat.
Ich suche also lediglich einen Weg, auf den webuser zu wechseln ohne dem Umweg über root. Was verpeile ich da?
Oh, das scheint subtil zu sein. Aber ich denke su handelt da korrekt. Wenn ich einem User in der passwd keine Shell gebe ist das ja mit der Idee dass er sich nicht einloggen kann. Von dem her scheint es mir nachvollziehbar wenn su das umgehen der nicht-gesetzten loginshell nur für root erlaubt.

Ist nur eine Vermutung dass das kein Bug sondern ein Feature sein könnte ;)

Jenau: Manpage sagt:
Manpeitsch hat geschrieben: The -m, -p and -s options are restricted by the target user’s shell
being listed in /etc/shells. If it’s not listed, then it’s assumed to
be a restricted account, a normal su is performed, and those options
are ignored silently.
d.h. *nur* wenn der Benutzer zu dem du hinsust eine Shell hat, die in /etc/shells stehst, *dann* darfst du eine andere angeben.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 14.08.2005 19:28:32

Was sagt denn "whoami" nach einem "erfolgreichen" su?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 14.08.2005 19:55:26

peterschubert hat geschrieben:
zendak hat geschrieben: Hi Peter..Klar, ohne irgendeine Authentifizierung wäre das natürlich ein Horrorszenario. Aber soweit ich weiss gehört es zur Aufgabe von su, auch zwischen normalen Usern zu wechseln
Ist ja auch normal das nur der User root seine Identität ohne Passort wechseln darf. Das wäre noch schöner wenn das jeder User dürfte. Obwohl man da auch nachhelfen kann.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
zendak
Beiträge: 3
Registriert: 14.08.2005 02:32:23

Beitrag von zendak » 15.08.2005 12:03:43

Joghurt hat geschrieben:Was sagt denn "whoami" nach einem "erfolgreichen" su?
Wie erwartet webu. Wie gesagt, wenn er eine Shell hat, verhält sich alles "normal."
peschmae hat geschrieben: Ist nur eine Vermutung dass das kein Bug sondern ein Feature sein könnte ;)

Jenau: Manpage sagt:
Manpeitsch hat geschrieben: The -m, -p and -s options are restricted by the target user’s shell
being listed in /etc/shells. If it’s not listed, then it’s assumed to
be a restricted account, a normal su is performed, and those options
are ignored silently.
d.h. *nur* wenn der Benutzer zu dem du hinsust eine Shell hat, die in /etc/shells stehst, *dann* darfst du eine andere angeben.
Oops, hätte ich die "Notes" der su man page genauer gelesen, wäre es gleich klar gewesen. Sorry :oops:. Das ist es also: Ein User ohne Shell wird als zugriffsbeschränkter (restricted) Account angesehen, und die -s Option geht ins Nirwana. Es darf also nur root zu einem Shell-losen User su'en.

Bliebe noch die Frage, was sicherheitstechnisch geschickter ist:
a) Webuser ohne Shell (wie momentan), login von aussen theoretisch unmöglich; jedoch mit der Bedingung für mich, nur als Subshell von root ranzukommen
b) Webuser mit (eigentlich überflüssiger) Login-Shell; komfortabler für mich und ohne root werden zu müssen

Ich vermute zwar a), aber lasse mich gern eines Besseren belehren. Nur-Passwort logins von aussen sind übrigens deaktiviert, geht nur mit ssh/PubKey Authentifizierung.

Antworten