Jak dodać parametry powłoki podczas wykonywania poleceń za pomocą su?


0

Sytuacja. Debuguję środowisko użytkownika z ograniczonym dostępem, który jest przeniesiony do specjalnej powłoki. Aby to zrobić, muszę uruchomić polecenie jako ten użytkownik w pełnym kontekście, używając su w następujący sposób:

su - $user -c "echo hello world" --shell /bin/custom_shell

Mogę oczywiście zmienić komendę i parametry komendy, którą wykona / bin / custom_shell, ale jak dodać parametr, z którym będzie wykonywany custom_shell? Przykładowy odpowiednik dodania parametru „--debug”:

root->su - $user
$user->/bin/custom_shell --debug --command "echo hello world"

Uwaga: sudo nie będzie działać z tego powodu, ponieważ podczas logowania jest wiele zmiennych profilu i zmian w katalogu roboczym. Dlatego używam su. Jest to również dziwny, sporadyczny problem, który wymaga skryptu i uruchomienia w inny sposób, su - $ user i ręczne uruchomienie polecenia może działać .. Jednak nie mam tego luksusu.


Ale czy nie są ładowane wszystkie te niestandardowe zmienne profilu przez powłoka użytkownika? Czy to naprawdę ma znaczenie, czy jest wywoływane przez su -shell, a nie w inny sposób?
grawity

Tak .. To ma znaczenie. sudo -u $ użytkownik echo 1 różni się bardzo od kontekstu bezpieczeństwa i roboczego katalogu niż su - $ user --command "echo 1".
Rusty Weber

Myślę, że to głównie dlatego, że mijasz -l / --login opcja su, ale nie sudo. (A co w takim razie robi --login? Uruchamia powłokę z opcją -l.
grawity
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.