Woher kenne ich die Berechtigungen eines bestimmten Benutzers unter Linux mit Root-Zugriff?

7

Ich habe Root-Zugriff auf meinen lokalen Server. Und vor einigen Tagen hat mein Kollege einen Benutzer auf diesem Server erstellt, der mir den Namen und das Passwort gegeben hat. Der Benutzer verfügt jedoch über minimierte Berechtigungen. Als ob der Benutzer nicht einmal eine Datei in seinem eigenen Home-Verzeichnis erstellen kann.

Gibt es ein Konzept zu "den Berechtigungen eines Benutzers"? Wenn ja, wie überprüfe / ändere ich es?

AGamePlayer
quelle

Antworten:

7

Es kann vorkommen, dass Ihr Kollege beim Erstellen des Kontos das Basisverzeichnis "von Hand" erstellt hat, was dazu führte, dass es im Besitz von war root. Versuchen Sie Folgendes wie folgt auszuführen root:

chown -R username ~username
chgrp -R $(id -gn username) ~username

Wo usernameist der Name des problematischen Kontos?

Bearbeiten

Wenn sich herausstellt, dass dies Ihr Problem ist, möchten Sie den -mSchalter der useraddBefehlszeile hinzufügen, die zum Erstellen des Benutzerkontos verwendet wird, um dies in Zukunft zu vermeiden . Dadurch wird sichergestellt, dass das vom Benutzer ausgewählte Basisverzeichnis erstellt wird, wenn es nicht vorhanden ist. Dadurch wird das Home-Verzeichnis mit den "richtigen" Eigentumsrechten und Berechtigungen erstellt, sodass Sie nicht mit solchen Problemen konfrontiert werden.

Bearbeiten 2

Der chgrpoben hinzugefügte Befehl ändert den Gruppenbesitz des gesamten Home-Verzeichnisses der primären Gruppe von usernameto username. Abhängig von Ihrer Umgebung ist dies möglicherweise nicht genau das, was Sie möchten, und Sie müssen möglicherweise den Gruppenbesitz bestimmter Unterverzeichnisse im Basisverzeichnis "manuell" ändern, wodurch unterschiedliche Gruppenbesitzverhältnisse für verschiedene Unterverzeichnisse festgelegt werden. Dies ist normalerweise bei PCs nicht der Fall, aber da Sie "einen Kollegen" erwähnt haben, gehe ich davon aus, dass es sich um eine vernetzte Büroumgebung handelt. In diesem Fall ist der Besitz von Gruppen für gemeinsam genutzte Verzeichnisse wichtig.

Joseph R.
quelle
1

Es gibt in Unix eigentlich keine Methode, um dies systematisch zu tun, wie Sie es wünschen. Wenn Sie davon Gebrauch machen sudo, können Sie etwas erstellen, nach dem Sie fragen, aber es wird völlig künstlich und sehr einschränkend sein, wie gründlich eine Liste sein kann. In können sudoSie Befehlsgruppen erstellen und dann dem Benutzer (oder Benutzergruppen) Zugriff auf diese Befehlsgruppen gewähren.

Beispiel

# /etc/sudoers
someuser ALL=/sbin/service, /sbin/chkconfig

Sie können den Befehl dann sudo -lals Benutzer verwenden, um zu sehen, welche Befehle sie ausführen dürfen.

$ sudo -l
...

User someuser may run the following commands on this host:
    (ALL) ALL
    (root) /sbin/service, (root) /sbin/chkconfig, (root)
slm
quelle
1

Wie Joseph R. vorschlägt, ist die wahrscheinliche Erklärung, dass das Home-Verzeichnis nicht mit dem richtigen Eigentum erstellt wurde. In 99% der Fälle sind Zugriffsprobleme nur eine Frage des Eigentums und die Erlaubnis bekommen Bits richtig eingestellt, die mit chownund chmodBefehle. (In einigen exotischen Fällen spielen andere Faktoren eine Rolle, z. B. SELinux, AppArmor, ACLs des Dateisystems oder Zuordnung der Anmeldeinformationen des Netzwerkdateisystems. Wie ich bereits sagte, ist es jedoch sehr unwahrscheinlich, dass solche Situationen auf Sie zutreffen.)

Um den Rest Ihrer Frage zu beantworten ... ja, Sie können selbst sehen, wie es fehlschlägt. Als root können Sie vorübergehend ein anderer Benutzer werden, und Sie können dies tun, ohne das Kennwort dieses Benutzers zu kennen - führen Sie es einfach aus /bin/su - username. Dadurch wird eine Shell mit dem anderen Benutzer ausgeführt, als hätten Sie sich mit diesem Benutzernamen und Kennwort angemeldet. Wenn Sie mit dieser Shell fertig sind, kehren exitSie in Ihre ursprüngliche Root-Shell zurück.

200_Erfolg
quelle