Ich habe meinen allerersten Ubuntu-Server eingerichtet und mich sofort (als myuser
) angemeldet, um mit der Anpassung zu beginnen. Ich gehe zu /opt
und führe aus mkdir sandbox
.
mkdir: Verzeichnis „Sandbox“ kann nicht erstellt werden: Berechtigung verweigert
Zugriff verweigert?!? Okay. Also führe ich es aus sudo -i
und gebe myuser
das Passwort von ein. Führe den mkdir
Befehl erneut aus und voilà! Das Verzeichnis wird erstellt. Ich melde mich ab.
Ich melde mich wieder an myuser
, navigiere zu /opt
und führe aus ls
: nichts! Keine sichtbaren Verzeichnisse darin /opt
! Was!?!?
Also verwende ich erneut sudo sudo -i
und führe es erneut aus ls
.Jetztes sieht sandbox/
.
Ich glaube, mir fehlen grundlegende Linux-Kenntnisse in Bezug auf Benutzer und Roots. Während der Serverkonfiguration/-installation wurde ich aufgefordert, einen Benutzer anzulegen, was ich auch getan habe ( myuser
). IchvermutetDies wäre auch der Root-Benutzer (mit vollständigen Administratorrechten), da dies nicht nur der Benutzer ist, den ich während der Installation erstellt habe, sondern der allererste Benutzer im System!
Warum ist das also myuser
nicht möglich:
- Verzeichnisse außerhalb von erstellen,
/home/myuser
ohne sudo zu verwenden? - Im „Sudo-Modus“ erstellte Verzeichnisse anzeigen
Auch der Unterschied zwischen und dem Benutzer ist mir sudo
nicht su
klar root
.
Letztendlich möchte ich neben dem vollständigen Verständnis dieser Grundlagen auch eine Reihe von Serversoftware installiert haben, /opt/sandbox/
die rund um die Uhr laufen und mit dem lokalen Dateisystem interagieren kann. Jetzt bin ich mir nicht sicher, ob ich diese Anwendungen installieren soll, während ich einfach als angemeldet bin, myuser
als sudo myuser
oder auf eine andere Weise.
Diese Server befinden sich in einem gesicherten, privaten Heim-LAN, daher brauche ich keinen „echten Administrator“ und keine verrückten Sicherheitskontrollen. Ich richte nur eine einfache Entwicklungsumgebung für ein kleines Softwaretool ein, das ich schreibe. Vielen Dank im Voraus für jede Hilfe bei den obigen Fragen.
Antwort1
/opt ist standardmäßig Eigentum des Benutzers root
und der Gruppe root
.
Versuchen Sie es und Sie werden sehen, dass der Ordner /opt dem Benutzer bzw. der Gruppe l /
" " gehört .root root
Wenn Sie als Nicht-Root-Benutzer wirklich Dateien in /opt erstellen und ändern möchten, müssen Sie dort einen Ordner erstellen und dessen Berechtigungen so ändern, dass ein Nicht-Root-Benutzer frei darauf zugreifen kann.
Beispiel:
sudo mkdir /opt/sandbox
sudo chown myuser:users /opt/sandbox
Der erste Befehl erstellt den Ordner, aber sein Eigentümer ist root
eine Gruppe root
. Der zweite Befehl ändert den Eigentümer ( chown
) zu Ihrem Benutzernamen myuser
und macht ihn zu einem Teil der Gruppe users
(die myuser
Teil von ist).
Antwort2
Warum kann mein Benutzer also nicht: ...
Versuchen
ls -l sandbox
getfacl sandbox
Wenn die Ausgabe nicht klar ist oder nicht erklärt, was Sie sehen, schneiden Sie die Ausgabe aus und fügen Sie sie in eine Bearbeitung Ihrer Frage ein.
Auch der Unterschied zwischen sudo, su und dem Root-Benutzer ist mir nicht klar.
sudo
gibt Ihnen erhöhte Root-Rechte (also Administratorrechte) für nur einen Befehl. Es gibt eine Konfigurationsdatei für sudo, in der Sie steuern können, welche Benutzer was tun dürfen.
su
gibt Ihnen erweiterte Privilegien für mehrere Befehle, indem Ihnen eine neue Shell-Sitzung mit der effektiven Benutzer-ID „root“ zugewiesen wird.
Der Root-Benutzer ist ein spezieller Benutzer namens root, den Sie in /etc/passwd sehen können. Es gibt etwa ein Dutzend anderer Benutzer, die Sie in einem Unix- oder Linux-System immer haben. Normalerweise haben die Leute ein normales Konto und verwenden dieses für alle Arbeiten außer den Aktionen, die unbedingt Root-Berechtigungen erfordern (z. B. das Installieren von Software zur Verwendung durch alle Benutzer des Systems). Dies macht es für Malware schwieriger, schädliche Dinge anzurichten, und erschwert es Ihnen, irreparable Fehler zu machen.
Ich möchte eine Reihe von Serversoftware installiert haben
Ich finde es am besten, den Paketmanager des Systems zum Installieren von Paketen zu verwenden. Ich würde es vorziehen, Ordner in /opt nicht manuell zu erstellen, das wäre meine allerletzte Wahl.