PowerStore: Grundlegendes zu Shell-Einschränkungen aufgrund von rbash und anderen Sicherheitsimplementierungen
Summary: Um die allgemeine Sicherheit zu verbessern, wurde beschlossen, die PowerStore-Shell durch Aktivieren von rbash (restricted bash shell) und anderen Sicherheitsimplementierungen zu sperren. Ein weiteres Beispiel ist, dass der Stammordner des Servicenutzers /home/service/user und nicht „/home/service“ ist, wie möglicherweise erwartet. Dies ist einer der wenigen Orte, an denen der Servicenutzer Schreibberechtigungen hat. ...
Symptoms
Mögliche Fehler, die aufgrund dieser Maßnahmen festgestellt wurden:
rbash: cd: restricted(beim Versuch, durch die Verzeichnisse zu navigieren)rbash: xxxx: restricted: cannot redirect output(beim Versuch, mit „>“ Ausgaben in eine Datei umzuleiten)rbash: xxxx: command not found(beim Versuch, Befehle auszuführen, die nicht in der Liste der zulässigen Befehle enthalten sind)rbash: ./example_script: restricted: cannot specify `/' in command names(beim Versuch, Skripte auszuführen)- SFTP-Protokoll kann nicht initialisiert werden. Wird auf dem Host ein SFTP-Server ausgeführt? (beim Versuch, Dateiübertragungstools wie WinSCP einzurichten)
- Der Befehl cd „xxxx“ ist mit Rückgabecode 1 und Fehlermeldung fehlgeschlagen. -rbash: Zeile 47: cd: eingeschränkt (beim Versuch, Verzeichnisse mit WinSCP zu ändern)
Cause
Die Implementierung von rbash bedeutet, dass das Shell-Verhalten anders ist, da einige Aktionen und Funktionen deaktiviert werden, darunter:
- Ändern von Verzeichnissen mit dem integrierten „cd“.
- Festlegen oder Zurücksetzen der Werte der Variablen SHELL, PATH, ENV und BASH_ENV.
- Angeben von Befehlsnamen mit Schrägstrichen.
- Angabe eines Dateinamens mit einem Schrägstrich als Argument für den integrierten Befehl „.“.
- Angabe eines Dateinamens mit einem Schrägstrich als Argument für die Option „-p“ für den integrierten Hash-Befehl.
- Importieren von Funktionsdefinitionen aus der Shell-Umgebung beim Start.
- Analysieren des Werts von SHELLOPTS aus der Shell-Umgebung beim Start.
- Umleiten der Ausgabe mit den Umleitungsoperatoren >, > |, <>, > &, &> und >>.
- Verwenden der integrierten Exec, um die Shell durch einen anderen Befehl zu ersetzen.
- Hinzufügen oder Löschen von integrierten Befehlen mit den Optionen „-f“ und „-d“ zum integrierten Aktivieren.
- Verwenden des Befehls „enable builtin“, um deaktivierte Shell-Build-ins zu aktivieren.
- Angabe der Option „-p“ für den integrierten Befehl.
- Deaktivieren des eingeschränkten Modus mit „set + r“ oder „set + o restricted“.
Weitere Informationen finden Sie hier:
https://www.gnu.org/software/bash/manual/html_node/The-Restricted-Shell.html
Resolution
Es gibt einige Alternativen, um die Navigation und Interaktion mit dem System trotz der oben beschriebenen Einschränkungen zu erleichtern.
Dateiübertragungen
Denken Sie daran:
NutzerInnen können keine Verzeichnisse wechseln („cd“ ist nicht verfügbar), daher muss alles, was vom Node oder von der Appliance heruntergeladen werden soll, zuerst nach /home/service/user kopiert werden.
Die einzige Ausnahme hiervon sind die normalen Support-Materialien. Links werden automatisch im Stammverzeichnis für jeden verfügbaren Satz von Support-Materialien platziert, um den Download zu erleichtern.
Wenn Sie Dateien direkt aus dem Verzeichnis herunterladen möchten, in dem sie sich befinden, müssen Sie zuerst den vollständigen Pfad in der PowerStore-Shell suchen. Anschließend können Sie Tools wie PSCP (über Windows-CLI) oder SCP (in Linux) verwenden.
Windows-PSCP-Beispiel:
| Verwendung: pscp [options] [user@]host:source target pscp [options] source [source...] [Nutzer@] Host:Ziel |
Download-Beispiel:
| pscp -scp -P 22 service@<Appliance- oder Node-IP>:/path/to/file/to/download C:\Local\dowwnload-save\location pscp -scp service@xx.xx.xx.xx:/cyc_var/cyc_service/data_collection/xxxxxxxx/powerstore_xxxxxxxx_2020-05-06_00-00-00_service-data.tgz C:\LOGS service@xx.xx.xx.xx's password: powerstore_xxxxxxxxx | 10944 kB | x.x kB/s | ETA: 00:00:00 | 100% |
Upload-Beispiel:
| pscp -scp -P 22 C:\Logs\somefile.txt service@xx.xx.xx.xx:/home/service/user service@xx.xx.xx.xx's password: somefile.txt | 211 kB | 212.0 kB/s | ETA: 00:00:00 | 100% |
Navigation
Das gleiche Prinzip gilt auch für alles andere (grep usw.).
Beispiel für das Auflisten der Unterverzeichnisse im Verzeichnis der Supportmaterialien:
| [SVC:service@xxxxxxx-B user]$ ls -l /cyc_var/cyc_service/data_collection/ total 80 drwxrwsr-x+ 2 cyc cycg 4096 Apr 8 14:48 0941c91a-431d-4bfb-b5b2-062b02c45950 drwxrwsr-x+ 2 cyc cycg 4096 Apr 25 15:27 20439835-3654-4d93-af3b-ebfc0ae222fd drwxrwsr-x+ 2 cyc cycg 4096 Apr 19 15:27 3d2011a8-0aa2-48d7-9f3f-1f234df2abfb drwxrwsr-x+ 2 cyc cycg 4096 Apr 19 13:08 473ed1cb-0ebb-4bd6-bbf6-e87e61af8578 drwxrwsr-x+ 2 cyc cycg 4096 Apr 22 14:01 48a522ff-0aaa-4f83-a936-973f6f1097b2 drwxrwsr-x+ 2 cyc cycg 4096 Apr 22 15:26 4ba1375c-c23b-47c6-bc04-1498e3443b39 drwxrwsr-x+ 2 cyc cycg 4096 Apr 27 15:26 6faf6d88-58c6-4891-b001-8e0311e9e00d drwxrwsr-x+ 2 cyc cycg 4096 Apr 24 14:36 798b13df-70bb-4fd3-9691-608b735207e9 drwxrwsr-x+ 2 cyc cycg 4096 Apr 28 15:27 8187fc5d-d389-4676-a69f-23db20c06602 drwxrwsr-x+ 2 cyc cycg 4096 Apr 26 15:12 83cb57dc-dee3-4dae-8585-e3b670d4b52a drwxrwsr-x+ 2 cyc cycg 4096 Apr 18 12:50 a038d9ac-6ecc-4c49-8bb3-ae6623b418f6 drwxrwsr-x+ 2 cyc cycg 4096 Apr 21 13:43 b02e88fb-3f80-47a3-8f6d-3547afad7c35 drwxrwsr-x+ 2 cyc cycg 4096 Apr 24 15:26 b4bdd7c3-dbd0-4ac7-93ac-2e3e7ea1ff93 drwxrwsr-x+ 2 cyc cycg 4096 Apr 23 14:18 bf965b7e-e136-42ba-b46c-5fc565b6cf58 drwxrwsr-x+ 2 cyc cycg 4096 Apr 20 13:26 d96caca8-4395-4f15-aea1-60dd7a2490f5 drwxrwsr-x+ 2 cyc cycg 4096 Apr 23 15:26 e101bd57-fd3d-421a-b15a-341456a52f1f drwxrwsr-x+ 2 cyc cycg 4096 Apr 25 14:54 e57e625d-e393-4919-b0d1-5efd89042897 drwxrwsr-x+ 2 cyc cycg 4096 Apr 20 15:26 ea40f70d-3cbf-4c84-9643-627fdbf9f0bd drwxrwsr-x+ 2 cyc cycg 4096 Apr 21 15:26 ea9d95dd-1c72-4b2b-929a-ab6ec9cbedc1 drwxrwsr-x+ 2 cyc cycg 4096 Apr 17 12:34 fa02405b-ae24-4d7d-b178-97a99a2b717f [SVC:service@xxxxxxx-B user]$ |