Başka bir kullanıcı olarak sudo ile cd çalıştırmayla ilgili sorun


12

Başka bir kullanıcı adına bir kabuk üzerinde bir komut çalıştırmak istiyorum. Komut aşağıdaki gibidir:

sudo -u USER cd /home/USER

alırım

sudo: cd: command not found

Komutun sudo'ya geçmesi için doğru sözdizimi nedir?

Yanıtlar:


14

cdbir 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'

1
Bu gerçekten yararlı bir şey yapmaz --- kabuk hemen sonra çıkacaktır cd. Muhtemelen OP istiyor sudo -i.
derobert

5

cdharici bir komut değildir, yalnızca bir kabuk yerleşikidir, bu yüzden sudoçalıştırılamaz. cdYalnı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 cdprogram 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'

1

Kullanmaya eğilimliyim: sudo su - USERNAMEve sonra o kullanıcı olarak ihtiyacınız olanı yapın. Çıkmak için sadece şunu yazınexit


3
olarak günlüğe kaydetme USERNAMEve ardından komutu yürütme, komutu doğrudan çalıştırandan farklıdırUSERNAME
Pandya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.