Bir dizine root olarak nasıl cd yazabilirim?


10

Diyelim ki erişim iznim olmayan bir dizin var. Açıkçası sudo cd fooişe yaramaz, çünkü cdher kabukta bir kabuk yerleşiktir.

Şimdiye kadar, sadece sudo bashbir kök istemi almak için (evet daha iyi yollar olduğunu biliyorum) kullanıyorum. Sonra, cddizinin içine sokabilirim.

Bunu yapmanın daha iyi bir yolu var mı?


Neden cdkök olarak almak istersiniz (aslında bir kök kabuğunda değilseniz)?
Üçlü

Eğer bir dizinin kökü size
aitse

1
Bu gerçekten geçerli bir durum değil. Dizini okuyabilmeniz yararlı olabilir, ancak bu dizinin çalışma dizininiz olmasını gerektirmez, yani ihtiyacınız yoktur cd.
Üçlü

evet, kabul edilen cevap sadece yapabileceğimi işaret edene kadar bunun farkında değildim sudo ls.
13'te strugee

Yanıtlar:


12

Hayır, cdbir dizinin root olmadan kök olmasına izin vermenin bir yolu yoktur . Bu sınırlamaya sahip çok fazla dizin olmamalıdır. Çoğu zaman, /etc/shadowdosya veya altındaki belirli günlük dosyaları gibi sınırlı olan belirli bir dosyaya erişimdir /var/log.

Bunları sudo ls <dir>görmek yerine kullanabilirsiniz bash. Ayrıca sudokök olmak için kullanırken , genellikle kullanıcı ( sukomut) yerine ayarlamak istersiniz, bunun yerine bashbu komutu kullanın:

$ sudo su -

Aynı şeyi bir sudo -ianahtarıyla da yapabilirsiniz:

$ sudo -i

ilgili man sayfasından alıntı sudo -i

-İ (ilk oturum açmayı simüle et) seçeneği, hedef kullanıcının passwd (5) girişinde oturum açma kabuğu olarak belirtilen kabuğu çalıştırır. Bu, .profile veya .login gibi girişe özgü kaynak dosyalarının kabuk tarafından okunacağı anlamına gelir. Bir komut belirtilirse, yürütme için kabuğa geçirilir. Aksi takdirde, etkileşimli bir kabuk yürütülür.

Erişemediğiniz dosyalar için aşağıdaki sudokomutlardan birini kullanabilirsiniz :

$ sudo tail /var/log/messages

$ sudo less /etc/shadow

3
Neden kullanmak sudo su -yerine sudo -i? İhtiyacınız olan tek şey CAP_DAC_READ_SEARCH yeteneği olsa da her ikisi de size tüm süper kullanıcı ayrıcalıklarını verir.
Stéphane Chazelas

@StephaneChazelas - Bu anahtarı daha önce hiç fark etmedim. Benim ilk sudogirişim Solaris ortamları üzerinden yapıldı ve bunun sürümü de sudobu anahtarı içermiyordu. Sudo changelog bakarak bu seçenek 2004 yılında eklendi gibi görünüyor. Sanırım ben kendimi bu tarih çıkıyor ama sen 8-) sordum. Cevabı her ikisini de içerecek şekilde değiştireceğim, teşekkürler!
slm

@ StéphaneChazelas katılıyorum. Giriş sudo -Hidizinini de ayarladığı için tercih ediyorum (dağıtımımda varsayılan olarak eve ayarlanmadı, varsayılan değişiklik gösterebilir). Bunu yapmazsanız, orada yeni dosyalar oluşturuyorsa, evinizde kök sahip olunan dosyalarla sonuçlanabilir.
doug65536

5

Hayır, yok. Kök olarak çalışan bir kabuğa ihtiyacınız var.


Yorumlarda cdbelirtildiği gibi, bir kabuk veya karşılaştırılabilir bir süreç çalıştırmadığınız sürece oldukça anlamsızdır .
Üçlü

0

Doğru, yapamazsın. İşte bir geçici çözüm:

sudo sh -c "cd restricted-dir; some_command"
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.