Wszystko, co muszę zrobić, to uruchomić określony skrypt jako konkretny użytkownik, który ma nologin/false
wskazaną powłokę /etc/passwd
.
Uruchomiłbym skrypt jako root i powinien on działać jako inny użytkownik. Bieganie:
~# su -c "/bin/touch /tmp/test" testuser
działałoby, ale potrzebuję poprawnej powłoki dla testuser. Wiem, że mogę wyłączyć hasło passwd -d testuser
i pozostawić powłokę w /bin/bash
ten sposób, by trochę zabezpieczyć, ale muszę mieć nologin/false
powłokę.
Zasadniczo potrzebuję tego, co robię, crontab
gdy ustawiamy zadania tak, aby działały jako konkretny użytkownik, niezależnie od tego, czy ma on nologin/false
powłokę.
ps Znalazłem ten wątek Wykonywanie polecenia jako użytkownik nologin , ale nie mam pojęcia, jak wykonać concatenate
polecenie su -s /bin/sh $user
do skryptu, który muszę uruchomić.
root:root -rwsr-x---
?su -s /bin/bash -c 'exec /path/to/your/script &' test
runuser
, chciałbym zaznaczyć, żesu -s SHELL
parametr sprawia, że polecenie runuser jest prawie bezużyteczne :) Dzięki Jan!Możesz to zrobić,
sudo -u
jeśli masz zainstalowany:źródło
sudo -u apache whoami
?sudo -u
prawdopodobnie nie jest dobrym pomysłem do uruchamiania poleceń jako użytkownik nologin, ponieważ narażaSUDO_USER
środowisko, które jest tym, które wywołuje polecenie. Może po prostu to przemyślam.Podając skrypt jako argument do wykonania w / bin / sh:
źródło
właśnie zrealizowałem:
su -s "/ bin / bash" -c "/ bin / touch / tmp / testuser" testuser
może jest lepszy sposób?
źródło
tak naprawdę najlepszym sposobem na to jest skorzystanie z Runuser
zobacz stronę podręcznika, aby uzyskać szczegółowe informacje
to narzędzie służy do radzenia sobie z sytuacją, jak powiedział deweloper w swoim bolg
Ilekroć usługa działa jako root i chce zmienić UID za pomocą powłoki, powinna używać runuser.
http://danwalsh.livejournal.com/55588.html
zamieściłem tę odpowiedź w wielu pałacach, wybacz mi, jeśli uznasz to za denerwujące
źródło
Użyj sudo -u, aby określić użytkownika. Użyj także flagi -i, aby ustawić zmienne środowiskowe docelowego użytkownika.
źródło
This account is currently not available.
Użyj polecenia su z poleceniem shell -s i -c. Jak pokazano niżej
źródło