Erstellen Sie ein neues SSH-Benutzerkonto, um nur auf einen bestimmten Ordner zuzugreifen

7

Ich habe einen Apache2-Server unter Ubuntu 16.04. Jedes Mal, wenn ich auf meine Projektdateien in einem bestimmten Ordner zugreife, verwende ich den Root-Benutzer zum Ausführen der PHP-Funktion und zum Bearbeiten einiger Dateien. Nach Abschluss muss ich chown -R www-data:www-data .in einem Terminal ausgeführt werden, da ich nach dem Ausführen meine PHP-Funktion der Dateibesitzer wird Benutzer: Benutzer (root: root). Was ich brauche ist:

  1. Erstellen Sie einen neuen Benutzer für meinen Server
  2. Wenn dieser Benutzer mit ssh auf meinen Server zugreift, befindet er sich automatisch in einem bestimmten Ordner
  3. Gewähren Sie diesem Benutzer die Berechtigung, in diesem bestimmten Ordner etwas zu tun

Beispiel: Erstellen Sie einen Benutzer mit dem Namen tonya . Wenn jemand mit dem Benutzer tonya auf den Server zugreiftssh [email protected] , wird er zu / var / www / specific_folder umgeleitet. Der Benutzer tonya kann alles in diesem Ordner tun, und wenn tonya den Eigentümer oder Ordner der PHP-Datei darauf setzt, wird dies der Fall tonya:www-datasein funktionieren wie wenn ich den Dateieigentümer auf setzewww-data:www-data

einfacher Kerl
quelle

Antworten:

7

Sie sollten dies mit erreichen können

adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya
  • adduser wird verwendet, um einen Benutzer hinzuzufügen

  • --home Gibt das Ausgangsverzeichnis an, in dem sich der Benutzer befindet, wenn er sich anmeldet

  • --shellist die Shell anzugeben, standardmäßig ist es in der Regel nur, /bin/shwas nicht so benutzerfreundlich ist wie/bin/bash

  • --no-create-home Das Basisverzeichnis wird nicht erstellt, daher müssen Sie eines verwenden, das bereits vorhanden ist

  • --ingroup Fügt den Benutzer der angegebenen Gruppe hinzu

  • Das letzte Argument ist der Benutzername

Mit diesem Handbuch können Sie den Benutzer inhaftieren:

Bitte denken Sie daran, dass es sehr gut möglich ist, einem Gefängnis zu entkommen, selbst wenn Sie einen Benutzer ins Gefängnis bringen. Wenn Sie einem Benutzer Zugriff auf Ihr System gewähren, können Sie ihm auch Root-Zugriff gewähren, da es fast immer möglich ist, Root-Zugriff zu erhalten, sobald er über Shell-Zugriff verfügt. Das Einrichten eines Gefängnisses verhindert höchstwahrscheinlich, dass ein einfacher Benutzer etwas zu Schädliches tut, tut aber wenig bis gar nichts, um einen böswilligen Benutzer davon abzuhalten, schädliche Dinge zu tun.

Desultory
quelle
Warum gibt es 2 Ingroup? Wie kann dieser Benutzer meinen Root-Zugriff erhalten?
einfacher Kerl
Eine Ingruppe für SSH und eine für WWW-Daten, und ich sage nicht, dass sie Root-Zugriff erhalten können, aber Sie sollten niemals einen Benutzer auf Ihrem System zulassen, wenn Sie ihm nicht vertrauen, da er einmal Shell-Zugriff hat In Ihrem System sind sie zu 50% der Weg zum Rooten. Täglich werden neue Exploits entdeckt. Aus diesem Grund können Sie ein System niemals als sicher betrachten.
Desultory
@Desultroy, wenn ich meinen PHP-Dateibesitzer von www-data: www-data zu tonya: www-data ändere, gibt es mir einen Dateiberechtigungsfehler, wenn ich versuche, über den Browser auf das PHP zuzugreifen
einfacher Typ
Sie sollten wahrscheinlich die Berechtigungen der Datei so ändern, dass sie gruppenbasiert und nicht inhaberbasiert ist. Ich weiß nicht, ob PHP die Ausführungsberechtigung benötigt, aber es benötigt definitiv die Leseberechtigung. Berechtigungen können hier erklärt werden: help.ubuntu.com/community/FilePermissions
Desultory