Yanıtlar:
cd
bir kabuk yerleşiktir . Kabuk yerleşiklerini yürütmek için kabuğu çağırmanız gerekir:
sudo -u USER sh -c 'cd /home/USER'
VEYA
sudo -u USER bash -c 'cd /home/USER'
cd
harici bir komut değildir, yalnızca bir kabuk yerleşikidir, bu yüzden sudo
çalıştırılamaz. cd
Yalnızca kabuk yerleşimi olarak var olmasının nedeni , bir işlemin başka bir işlemin geçerli dizinini etkileyememesidir; bu nedenle, geçerli dizini değiştiren ve hemen çıkan bir program işe yaramaz. (Neredeyse işe yaramaz: Bir cd
program başarılı olup olmadığını gösteren bir durum döndürür.)
Bir dizine geçmek ve sonra komutları başka bir kullanıcı olarak çalıştırmak istiyorsanız, tüm bunları yapan bir kabuk çalıştırın.
sudo -u SOMEUSER sh -c 'cd /path/to/directory && dosomething'
Kullanmaya eğilimliyim: sudo su - USERNAME
ve sonra o kullanıcı olarak ihtiyacınız olanı yapın. Çıkmak için sadece şunu yazınexit
USERNAME
ve ardından komutu yürütme, komutu doğrudan çalıştırandan farklıdırUSERNAME
cd
. Muhtemelen OP istiyorsudo -i
.