Ist es möglich, eine Datei basierend auf der numerischen UID einem Benutzer zuzuweisen, der noch nicht existiert?

19

Zum Beispiel zum Verwalten einer Festplattenpartition für ein anderes System, auf dem der Benutzer vorhanden ist. Ich weiß, dass ich einen Benutzer nur vorübergehend erstellen kann, aber ich finde diese Frage interessant.

glarry
quelle

Antworten:

22

Ja, Sie können chowneine numerische UID verwenden, die keinen entsprechenden Benutzer hat.

DopeGhoti
quelle
Ich habe getestet, bevor ich gefragt habe: chown \#1005 filekehrt zurück chown: invalid user: ‘#1005’.
Glarry
5
Verwenden Sie keine Oktothorpe. Es ist keine Zahl. Verwenden Sie einfach die Nummer, z sudo chown 1005 /path/to/file.
DopeGhoti
Denkt nach dieser Logik, sudoes ist eine Zahl. Darüber hinaus hält es für Gruppen von Ziffern , die mit einem nicht starten Nummernzeichen nicht Zahlen sind. :)
Glarry
1
Ich habe es chown 1005 fileübrigens zuerst versucht . Es funktionierte aus einem anderen Grund nicht, aber ich gab dem fehlenden Nummernschild die Schuld. Zumindest muss man verwenden ./file, damit chown anscheinend erkennen kann, welcher der beiden der User ist. Nur damit Sie (Leser) wissen.
Glarry
2
@glarry muss ich nicht benutzen ./. Ist der Dateiname wirklich file?
Hauke ​​Laging
11

chown UID:GID fileName kann entweder mit Nummern oder Benutzernamen oder Gruppennamen erfolgen

ex: chown 1000:1000 dirnameist gültig

Möglicherweise müssen Sie die Verzeichnisberechtigung mit zurücksetzen chmod 755, um Zugriff darauf zu erhalten

Hinweise

  • Sie können die Benutzer-ID mit überprüfen id someUsername
  • Sie können die Gruppen-ID mit überprüfen gid someUsername
  • Sie können Berechtigungen nur für Verzeichnisse mit ändern find someLocation -type d -exec chown 1000:1000 {} \;
Philippe Gachoud
quelle
Die Verwendung von Variablen chown -R $HOST_USER_ID:$HOST_GROUP_ID /usr/bin/mariadb/install/datagibt mir einen Fehler chown: invalid spec: '1000:'sous `Lubuntu 16/04
Stephane
Ich könnte das Problem umgehen, indem ich zwei unterschiedliche Befehle ausführechown -R $HOST_USER_ID /usr/bin/mariadb/install/data; chgrp -R $HOST_GROUP_ID /usr/bin/mariadb/install/data;
Stephane,
@Stephane Ihre UID und GID muss die Nummer der Gruppe / ID sein, die Sie ändern möchten, und wird in /etc/groupund /etc/passwdoder durch ein anderes System wie ldap festgelegt. Sie können auf Befehle wie gentent verweisen, um weitere Informationen zu diesem Thema zu erhalten.
Philippe Gachoud