Ich habe Cygwin installiert, aber es fällt mir schwer, es bequem zu bedienen. Ich hätte gerne die Möglichkeit, beispielsweise „su peter“ zu verwenden, wobei Peter seine eigenen Präferenzen für das Home-Verzeichnis und die Shell hat. Sicherheit ist mir egal. Ich brauche diese „Benutzerkonten“ nicht, damit sie für die Windows-Mechanismen sichtbar sind.
Meine Bemühungen sind erfolglos geblieben. Ich weiß nicht, wie ich in /etc/passwd "kein Passwort erforderlich" einstelle. 'su' gibt Befehl nicht gefunden zurück.
(Übrigens habe ich Cygwin vor einigen Jahren problemlos auf einem anderen Rechner installiert. Kämpfe ich gegen die jüngsten „Verbesserungen“?)
Lassen Sie mich meine Frage klarstellen. Die Möglichkeiten von /etc/passwd sind: * Zuweisen eines Home-Verzeichnisses. Ich möchte, dass George und Peter unterschiedliche Verzeichnisse haben. Es ist mir egal, ob George und Peter die Dateien des jeweils anderen ändern können oder nicht. * Ich möchte, dass George eine andere Shell als Peter verwenden kann. Ich möchte nicht, dass George für jede einzelne Shell, die aufgerufen wird, ** tcsh ** cd /home/george ** source .cshrc eingeben muss. Gibt es eine einfache Möglichkeit, dies zu erreichen? Verfügt die Windows-Funktion überhaupt über das Konzept einer bevorzugten Cygwin-Shell?
Antwort1
Sicherheit ist mir egal.
Ich brauche diese „Benutzerkonten“ nicht, damit sie für die Mechanismen von Windows sichtbar sind.
Jeder Cygwin-Benutzer muss einen entsprechenden Windows-Benutzer haben.
Wie füge ich in Cygwin einen neuen Benutzer hinzu?
- Erstellen eines Windows-Benutzers
- Erstellen Sie den Benutzer in Windows (Start > Systemsteuerung > Benutzerkonten verwalten > Hinzufügen…)
- Erstellen Sie den entsprechenden Cygwin-Benutzer
Führen Sie die folgenden Befehle aus:
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
Dadurch werden die Cygwin-Benutzer und -Gruppen mit dem Windows-Benutzerkonto synchronisiert.
Wenn Sie sich in einer Domäne befinden, verwenden Sie
-d
statt-l
- Festlegen der Benutzer-Shell
Ändern Sie die Standard-Shell des Benutzers nach Bedarf, indem Sie
/etc/passwd
(eine reine Textdatei) ändern.Das Format der Datei ist wie folgt:
Username:Password:UID:GID:Info:Home:Shell
- Passen Sie die Berechtigungen für das Home-Verzeichnis des Benutzers Ihren Anforderungen entsprechend an.
Ich weiß nicht, wie ich "kein Passwort erforderlich" einstelle
Wenn Ihnen die Sicherheit wirklich egal ist und Sie kein Passwort möchten, verwenden Sie:
password -p username
Aus der passwd
Dokumentation:
Zusammenfassung
passwd [OPTION] [USER]
Optionen
...
-p, --pwd-not-required
Für BENUTZER ist kein Passwort erforderlich.
Quellepasswd
Habe ich Probleme mit den jüngsten „Verbesserungen“?
Ab Cygwin-Version 1.7.34 /etc/passwd
wird es nicht mehr standardmäßig zur Verwaltung von Benutzerkonten verwendet.
Falls
/etc/passwd
vorhanden, wird es verwendet, aber nur, um vorhandenen Installationen und besonderen Situationen gerecht zu werden.Wenn
/etc/passwd
es nicht existiert, können Sie es trotzdem erstellen. SiehemkpasswdUndmkgruppefür mehr Informationen.
Seit Version 1.7.34 verwendet Cygwin die native Windows-Benutzerverwaltung.
- Active Directory, sofern verfügbar,
- Ansonsten SAM.
Sie sollten den neuen Mechanismus zum Verwalten von Benutzerkonten verwenden, anstatt /etc/passwd
:
Ab Cygwin 1.7.34 verwendet Cygwin eine automatische, interne Übersetzung von Windows SID in POSIX UID/GID. Dieser Mechanismus, der die bevorzugte Methode für die SID<=>UID/GID-Zuordnung ist, wird ausführlich beschrieben inZuordnen von Windows-Konten zu POSIX-Konten.
Vor Cygwin 1.7.34 wurde der letzte Teil der SID, der sogenannte „Relative IDentifier“ (RID), standardmäßig als UID und/oder GID verwendet, wenn Sie die Dateien /etc/passwd und /etc/group mit den Tools
mkpasswd
und erstellt habenmkgroup
. Diese Tools sowie das Lesen von Konten aus/etc/passwd
und/etc/group
Dateien sind in neueren Versionen von Cygwin noch vorhanden, Sie sollten jedoch auf die oben erwähnte automatische Übersetzung umsteigen, sofern Sie keine sehr speziellen Anforderungen haben. Siehe auch hier Zuordnen von Windows-Konten zu POSIX-Kontenfür die Einzelheiten.
QuellePOSIX-Konten, Berechtigungen und Sicherheit:
su
gibt Befehl nicht gefunden aus.
Installieren sshd
und ssh username@localhost
als su
Ersatz verwenden.
su
Um dies zu vereinfachen, können Sie einen Alias definieren .
Warum funktioniert su nicht?
Der
su
Befehl wurde in Cygwin-Distributionen verwendet und wieder entfernt, wurde aber nicht auf Cygwin portiert und hat nie funktioniert. Er ist derzeit als Teil von installiertsh-utils
, funktioniert aber auch hier nicht.Sie sollten es lieber als Ersatz installieren
sshd
und verwenden .ssh username@localhost
su
Um mehr über die technischen Hintergründe zu erfahren, warum
su
das nicht funktioniert, lesen SieÜber den Befehl „su“und zugehörige Mailarchivnachrichten.