Belirli bir kullanıcının tüm dosyalarının sahipliğini değiştirebilir miyim?


9

Bir kullanıcının sahip olduğu tüm dosyaları özyinelemeli olarak bulmanın ve Gnu / Linux'ta başka bir kullanıcı / gruba değiştirmenin bir yolu var mı?

Biraz sihirli bir astar olması gerektiğini varsayıyorum, ancak komut satırı sihirbazım becerileri bu kadar değil :)

Teşekkürler!

Yanıtlar:


14

Kullanım findile komutu -userseçeneği. Gibi bir şey:

find / -user john

sonunda "john" kullanıcısının sahip olduğu tüm dosyaları açar.

Sahipliklerini değiştirmek istiyorsanız (İstediğiniz findlisteye sahip olduğunuzdan emin olmak için yürütme olmadan çalıştırırım), o zaman şöyle bir şey:

find / -user john -exec chown harry {} \;

yapacağım.


1
chown harry:harryGrup üyeliğinin de doğru olduğundan emin olmam gerekirse genellikle UID kullanır ve çalıştırırım . Ancak bu büyük ölçüde buradaki uygulamaya bağlıdır.
ewwhite

UID'yi kullanmadığım sürece aslında benim için işe yaramaz. UID / etc /
passwd'de bulunabilir

7

Bu geç, ama benim çünkü bugün bu soruya rastladım rsyncyok --usermapseçeneği.

Benim chown(v. Chown (GNU coreutils) 8.13), yerleşik bir recurse ( -R) ve bir --fromseçenek sunar, böylece (ve benim) probleminiz de kullanılarak çözülebilir

chown -R --from=john harry /


Daha spesifik olarak bir sunucuyu OpenSuse'dan debian'a geçiriyorum ve apache2'nin kullanıcı ve grubu dağıtımlar arasında farklılık gösteriyor. OpenSuse'da kullanıcı wwwrun (id:30)ve grubu www (id:8), www-data (id: 33)her ikisi için debian dilinde . Dosyaları kullanarak kopyaladıktan sonra

rsync -az /path/to/files me@debian:/path/to/

kullandım

chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/

hedef (debian) makinede.


Not: rsync version 3.1.0 protocol version 31Yukarıda belirtilenler --usermapbu yüzden kaynak makinede bir komutla üç adımı da yapabilseydim:

rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/

Bunu, özellikle de grup değiştirme seçeneği için tercih ederim. Bir find -execbenim için bir liner sadece el şeyler yapmadan önce, en son çare olduğunu. (Ayrıca, yazmaktan nefret ediyorum {} \;, ama bu kişisel)
Tomasz Gandor
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.