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.
-l
/--login
opcja su, ale nie sudo. (A co w takim razie robi --login? Uruchamia powłokę z opcją -l.