Sudo nasıl bir konuma çıkış yönlendirme için kullan ı't yazma izni yok?
Kalkınma RedHat linux kutusu üzerinde sudo erişim verildi ve kendimi normalde yazma erişimi yok bir yere çıkışı yeniden yönlendirme, gerek oldukça sık buluverdim.
Sorun şu ki, bu yapmacık örnek çalışmıyor
sudo ls -hal /root/ > /root/test.out
Ben sadece yanıt almak:
-bash: /root/test.out: Permission denied
Bunu nasıl çalıştırabilirim?
CEVAP
Sizin komut yeniden yönlendirme yazma izni yok hangi kabuk tarafından 8 ** yapıldığı için çalışmıyor. Çıkış yönlendirmedeğilsudo tarafından yapıldı.
Birden çok çözümü vardır:
Sudo ile bir kabuk çalıştırın ve
-c
seçeneği kullanarak bu komutu verin:sudo sh -c 'ls -hal /root/ > /root/test.out'
Komutları ile bir komut dosyası oluşturmak ve sudo ile bir komut dosyası çalıştırın
#!/bin/sh ls -hal /root/ > /root/test.out
sudo ls.sh
çalıştırın. Bakın Steve Bennett eğer geçici bir dosya oluşturmak istiyorsanız Eğer ... answer.sudo -s
ile bir kabuk sonra komutları çalıştırmak başlatmak:[nobody@so]$ sudo -s [root@so]# ls -hal /root/ > /root/test.out [root@so]# ^D [nobody@so]$
sudo tee
-c
seçeneği kullanırken çok kaçış (varsa):sudo ls -hal /root/ | sudo tee /root/test.out > /dev/null
/dev/null
yönlendir ekrana yazdırılıyor tee durdurmak için gereklidir. İçinekleyinçıktı dosyası üzerine yerine (>>
) kullanıntee -a
tee --append
(Son GNU coreutils özgüdür).
Teşekkürler ikinci, üçüncü ve dördüncü çözümler için Jd, Adam J. Forster Johnathan git.
Nasıl jQuery Ajax çağrısından sonra bi...
Nasıl sekme yerine boşluk kullan için ...
Nasıl çıkış için MySQL csv biçiminde s...
Nasıl/çıkış/python virtualenv devre dı...
Nasıl bir dosya oluşturmak ve Java ile...