Bir Dizinin Sahibi Nasıl Değiştirilir


14

DÜZENLEME : Sorun, Apple'ın yedeklemeleri işaretlemek için izinler kullanması ve bunları değiştirmenizi engellemesiydi (muhtemelen bir güvenlik özelliği). Kullanarak chmod -RN <dir>, önemli veriler içeren tüm klasörlerdeki ACL verilerini kaldırdım ve bu da kendimi sahip yapmama ve uygun izinleri uygulamama izin verdi.

Orijinal soru
Şu anda yanlış izinlere (temiz kurulum, uzun hikaye sırasında değiştirdiğim UID'im) sahip son derece büyük bir yedeklemem (> 700GB) var ve bunları değiştirmem gerekiyor. Zaman alıcı seçenek, her bir klasörü manuel olarak gözden geçirip izinleri değiştirmektir, ancak bu zaman alacaktır.

chownKendimi tüm önemli verilerimin sahibi yapmak için kullanmak ve sonra chmod 700tüm bu klasörlerde rwxyalnızca bana izin vermek için kullanmak istiyorum.

İdeal çözüm, finddüzenli ifadeyle eşleşen klasörleri (şimdiki adım .*/[DCV].*|Pictures|M[ou].*) özyinelemeli olarak aramak ve daha sonra UID'imi sahibi yapmak ve izinleri 700 olarak ayarlamak için kullanılan bir yöntemdir .

Anlayamadığım önemli nokta:
Ancak koşmaya çalıştığımda chown Me DirectoryNameanladım chown: DirectoryName: Operation not permitted.

Bulduğum her şey, bir dizinin değil , bir dosyanın izinlerini değiştirmekle ilgilidir . Belki de buna yanlış bakıyorum?
Bir şey bana UID'imi rwxve diğer ---herkese vermenin bir yolu olmadığını söylüyor .

Bunu nasıl başarabilirim? Mac OS X 10.10.3 kullanıyorum.

Bunun bir UNIX / Linux forumu (ve Mac koşuyorum) olduğunu biliyoruz ama bu soru çok daha fazla kabuk kullanmaktan ibarettir chown, chmodherhangi UNIX tabanlı işletim sistemi için geçerli olacak, izinler ve herhangi çözümleri ve burada yayınlanan. Gönderilen çözümlerin eski yedeklerimin Time Machine'de yeniden görünmesini sağlaması tercih edilir.

Hemen cevap veren herkese teşekkürler, ama chown nedense dizinler üzerinde çalışmıyor gibi görünüyor. Bunun .sparsebundlebir ağ sürücüsündeki bir disk görüntüsü olması önemli midir? Herhangi bir harici sürücü ile aynı olacağını varsaydım.


Ne tür bir ağ sürücüsü? NFS ise, root_squashetkinleştirilmiş olarak dışa aktarma şansı yüksektir , bu nedenle chownistemciden olduğu gibi yalnızca kök işlemleri gerçekleştiremezsiniz .
Toby Speight

Apple Time Capsule içindeki bir HDD. Temelde bir WiFi baz istasyonunun içindeki şifre korumalı bir disktir. Tek fark, HDD'nin bilgisayarınıza ethernet üzerinden bağlanmasıdır. Orada aslında olan bir USB bağlantı noktası ama bunu hiç kullanmadım.
Arc676

Aksi takdirde standart find . -user $other_uid -print0 | sudo xargs chown $USERçalışmalıdır.
Toby Speight

Hangi ağ dosya sistemi? df -hT <dirname>söylemeliyim.
Toby Speight

@TobySpeight df -hT <dir>, a) ağ HDD'sinin kök dizini b) ağ HDD'sindeki disk görüntüsünü c) ağ HDD'sindeki herhangi bir klasör için çıktı vermez . Belki de amaçladığınız davranış Mac'te ve Linux'ta farklı şekilde uygulanır?
Arc676

Yanıtlar:


23

Yanlış anlamış olabilirdim. Ancak özyineli olarak chmod ve chown kullanabilirsiniz.

chown -R username:username /path/directory

700 iznini yinelemeli olarak uygulamak için şunları kullanabilirsiniz:

chmod -r 700 /path/directory

Tabii ki yukarıdaki Linux içindir, bu yüzden mac osx'un aynı olup olmadığından emin değilim.

EDIT: Evet üzgünüm bir şey chown için kök olmalısın bahsetmeyi unuttum, sadece bunu bildiğini varsaydım ... benim kötü.


1
Mac OS aynı sözdizimini kullanır. Komutu root olarak yürütmek için Mac'te en kolay yol öneklemektir sudo, bu nedenle sudo chmod(Yönetici erişimine sahip bir parola istenir).
mjturner

2

kök olarak dene

 find wherever -type d -name ... -exec chown Me {} \;

nerede

  • -type d sadece dir için geçerli
  • -name ... normal ifaden
  • -exec chown Me {} \; dir bulmak chown kullanın.

chown için kök olmalısınız.

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.