Diese Antwort sollte Ihnen trotzdem weiterhelfen, auch wenn Sie die Änderungen an der Frage berücksichtigen. Insbesondere für ein Konto, das
--disabled-login
ohne festgelegtes Kennwort und ohne andere Anmeldemöglichkeiten erstellt wurde , sollte es dennoch möglich sein, sudo
Befehle oder eine Shell als Benutzer auszuführen (siehe unten). So wird das
root
Konto in Ubuntu eingerichtet.
Es gibt mehrere Probleme mit dem Befehl su - irssi
.
Dieser Befehl versucht, eine Shell zu starten, die einem Benutzer namens gehörtirssi
.
Es wird fehlschlagen, wenn:
- Es gibt keinen
irssi
Benutzer.
- Das
irssi
Benutzerkonto ist deaktiviert.
- Das
irssi
Benutzerkonto ist für die interaktive Anmeldung deaktiviert. Manchmal kann ein Konto Dienste wie FTP verwenden, es ist jedoch untersagt, sich normal anzumelden, indem seine Shell auf etwas gesetzt wird, das sofort beendet wird, wie z /bin/false
. Dann endet eine Anmeldung sofort ohne Nachricht.
- Das eingegebene Passwort ist für den
irssi
Benutzer nicht korrekt .
Das -
Flag macht es so, dass die Shell eine anfängliche Anmeldeshell simuliert - das heißt, es ist wirklich so, als würde man sich als anmelden irssi
. -
Wenn der su
Befehl erfolgreich ausgeführt wurde, erhalten Sie auch ohne das Flag eine Shell, deren Eigentümer irssi
Umgebungsvariablen HOME
jedoch unverändert bleiben.
Wenn Sie stattdessen ein Programm mit dem Namen ausführen möchtenirssi
, müssen Sie es su
anders aufrufen :
su username - -c irssi
Wenn Sie es weglassen , ist es dasselbe wie --it, wenn versucht wird, den Befehl als root auszuführen.-c username
-c root
Alternativ können Sie eine Shell starten und dann den Befehl ausführen :
- Starten Sie die Shell mit .
su username -
- Führen Sie in der Shell den Befehl (
irssi
) aus.
- Wenn Sie fertig sind, verlassen Sie die Shell, indem Sie ausführen
exit
.
Befehle ausführen als root
Wenn Sie ausführen möchten , irssi
wie root
, su
ist nicht der richtige Weg , es zu tun. Root-Logins sind unter Ubuntu standardmäßig deaktiviert, und es gibt nur selten einen Grund, sie wieder zu aktivieren . Wenn Sie root
Login aktiviert haben , sollten Sie in der Lage sein su
zu werden root
. Die Aktivierung des root
Kontos ist nicht erforderlich, da Sie unabhängig davon, ob Sie dies tun oder nicht, weiterhin Befehle wie root
mit ausführen können sudo
.
Wenn Sie Befehle mit ausführen sudo
, geben Sie Ihr Kennwort ein und nicht das Kennwort des Benutzers, unter dessen Identität der Befehl ausgeführt werden soll. Nur Administratoren können beliebige Befehle wie root
mit ausführen sudo
(es sei denn, Sie konfigurieren dies neu sudo
, damit andere dies tun können). Ein Benutzer, der das System nicht verwalten darf, darf also keine Befehle wie root
mit seinem eigenen Kennwort ausführen .
So laufen Sie irssi
wie root
mit sudo
:
sudo irssi
Und Sie würden Ihr Passwort eingeben, wenn Sie dazu aufgefordert werden, nicht root
's.
Mit Ausnahme des von Ihnen eingegebenen Passworts geschieht dies wie folgt:
su -c irssi
Es sei sudo
denn, die Version kann erfolgreich sein, da das root
Konto nicht aktiviert werden muss.
Wie bei su
, können Sie verwenden , sudo
um Befehle als eine andere, nicht laufen root
Benutzer . So laufen Sie irssi
wie username
mit sudo
:
sudo -u username irssi
Wenn Sie sudo
sich su -
in Bezug aufHOME
--das so verhalten möchten, dass Sie die HOME
Umgebungsvariablen des Zielbenutzers verwenden möchten , können Sie sudo
mit dem -H
Flag ausführen :
sudo -H irssi
sudo -H -u username irssi
Sie können eine ganze Shell mit starten sudo
, so wie Sie es mit können su
. Mit Ausnahme des von Ihnen eingegebenen Kennworts hat dieser Befehl die gleiche Wirkung wie su
:
sudo -s
Und dieser Befehl hat den gleichen Effekt wie su -
:
sudo -i
(Das i
steht für Initial Login Shell .)
Sie können eine Shell auch als anderer Benutzer starten:
sudo -u username -s
sudo -u username -i
Lesen Sie weiter sudo
Weitere Informationensudo
finden Sie unter:
Warum hat gksu
gearbeitet, wenn su
nicht?
gksu
Wahrscheinlich hat es beim Laufensudo
funktioniert .
gksu
ist ein Frontend für beide su
und sudo
. In Ubuntu wird standardmäßig verwendet sudo
(da in Ubuntu in der su
Regel nicht verwendet wird root
, um root
Benutzer zu werden , und dies nur eine sekundäre Methode ist, um andere Benutzer zu werden , die keine Benutzer sind).
Sie können machen gksu
Gebrauch , su
indem Sie als das Frontend gksu --su-mode
.
Sie können herausfinden, ob gksu
sich im su
Modus oder im sudo
Modus befindet, und diese Einstellung (falls gewünscht) durch Ausführen von ändern gksu-properties
. Dies ist eine Benutzereinstellung.
Wenn gksu
in ist sudo
Modus verhält es sich genauso wie gksudo
.
Lesen Sie weiter gksu
Post-Solution-Analyse
Sie haben festgestellt, dass Sie den erforderlichen Befehl ausführen können mit:
sudo -u username irssi
(Welche der oben aufgeführten Techniken ist.)
Letztendlich haben Sie zwei Informationen gemeldet, die ausreichen, um zu erklären, warum andere Techniken versagt haben, aber das war erfolgreich:
Das username
Konto wurde mit der --disabled-login
Flagge erstellt, wodurch es kein Kennwort (und keine andere Möglichkeit zum Anmelden) hat. Wenn Sie kein Passwort haben, können Sie sich nicht mit einem leeren Passwort anmelden . Dies bedeutet, dass kein Passwort zur Authentifizierung ausreicht. In Kombination mit der Eliminierung anderer Authentifizierungsmittel kann dieses Mittel username
überhaupt nicht authentifizieren.
So sind alle su
basierten Lösungen aus. sudo
kann jedoch funktionieren, da sudo
Sie sich bei der Authentifizierung nicht als der Benutzer authentifizieren, dessen Identität Sie annehmen möchten. Stattdessen müssen Sie autorisiert sein, sich als solche auszugeben, und Sie müssen sich als Sie selbst authentifizieren (dh Sie müssen Ihr eigenes Passwort eingeben, nicht ihr Passwort).
Es ist möglich, ein Passwort für das Konto festzulegen, wodurch diese Anmeldebarriere aufgehoben wird:
sudo passwd username
Es kann jedoch einen guten Grund dafür geben, dass sich der Benutzer nicht anmelden darf. Wenn sich dieser Benutzer beispielsweise anmelden und grafisch anmelden darf, ergeben sich schlechte Probleme aus der Umgebung des Benutzers oder Berechtigungen, die für die Ausführung von X11-Apps schlecht geeignet sind ? Wenn sich dieser Benutzer anmelden könnte, wäre es dann möglich, sich remote als dieser Benutzer anzumelden (für Computer, auf denen Sie Netzwerkdienste verfügbar gemacht haben)?
Wenn Sie es jemals wieder deaktivieren möchten:
sudo passwd -dl username
Verwandte Themen: Deaktivieren Sie das root
Konto erneut, nachdem Sie es vorübergehend aktiviert haben.
Das username
Konto hat /bin/false
als Login-Shell.
Wenn eine Shell wie diese bash
als Anmeldeshell ausgeführt wird, richtet sie Ihre Umgebung ein und gibt Ihnen eine interaktive Eingabeaufforderung, mit der Sie den Computer steuern können.
Wenn /bin/false
dagegen ausgeführt wird, geschieht nichts und es wird ein Fehler gemeldet . ( /bin/true
Tut nichts und meldet Erfolg.)
Die Befehle false
und true
sind nützlich für Skripterstellung und für verschiedene Testzwecke, aber auch zum Deaktivieren eines Kontos, sodass die Anmeldesitzung sofort beendet wird, wenn sich jemand anmeldet. Auf diese Weise kann ein Kennwort (oder eine andere Authentifizierungsmethode) aktiviert werden, und Benutzer können sich anmelden, nur nicht für den Shell-Zugriff . Wenn zum Beispiel ein FTP-Server vorhanden ist, können sie weiterhin über FTP auf ihr Konto zugreifen. Wenn es einen SSH-Server gibt, können sie zwar keine Shell über SSH abrufen, sie können jedoch weiterhin Dateien verwenden sftp
und scp
übertragen.
Da username
‚s Login - Shell nicht funktionsfähig war, Befehle wie , , und konnte nicht arbeiten.su username
su - username
sudo -u username -s
sudo -u username -i
Aber Befehle, die keine Shell geben, mögen oder könnten immer noch funktionieren.sudo -u username command
su username -c 'command'
Da Befehle ausgeführt werden können, Sie können den funktional Login - Shell , um etwas des Benutzers ändern:
sudo chsh -s /bin/bash username
Dies sollte jedoch auch mit Vorsicht geschehen, da es einen guten Grund geben kann, interaktive Anmeldungen für den Benutzer zu deaktivieren.
Hier hatten username
beide Passwort und "deaktiviert" Shell deaktiviert. Das Fehlen eines funktionierenden Kennworts verhinderte su
, dass alle auf der Shell basierenden Lösungen funktionieren, während das Fehlen einer funktionierenden interaktiven Anmeldeshell alle Shell-Spawning-Lösungen daran hinderte, zu funktionieren (mit Ausnahme des manuellen Aufrufs einer Shell wie ).sudo -u username bash
sudo -u username command
ist was geblieben ist.