Chcę uruchomić polecenie w powłoce w imieniu innego użytkownika. Polecenie jest następujące:
sudo -u USER cd /home/USER
dostaję
sudo: cd: command not found
Jaka jest poprawna składnia polecenia do przekazania do sudo?
sudo
cd-command
kubek kawy
źródło
źródło
cd
. OP prawdopodobnie chcesudo -i
.cd
nie jest poleceniem zewnętrznym, jest tylko wbudowaną powłoką, więcsudo
nie można go wykonać. Powodem, dla któregocd
istnieje tylko jako wbudowana powłoka, jest to, że proces nie może wpływać na bieżący katalog innego procesu; dlatego program, który zmienia bieżący katalog i natychmiast kończy działanie, jest bezużyteczny. (Prawie bezużyteczne:cd
program zwróci status wskazujący, czy się powiódł).Jeśli chcesz przejść do katalogu, a następnie uruchomić polecenia jako inny użytkownik, uruchom powłokę, która to wszystko robi.
źródło
Zwykle używam:
sudo su - USERNAME
a następnie robię to, czego potrzebujesz jako ten użytkownik. Aby wyjść, po prostu wpiszexit
źródło
USERNAME
a następnie wykonywanie polecenia różni się od bezpośredniego uruchamiania polecenia jakoUSERNAME