Belirli bir kullanıcıya ait, tercihen hedeflenmiş bir dizindeki tüm dosyaların sahipliğini, belirtilen bir kullanıcıya değiştirebilecek bir Linux komutu arıyorum.
Benim rüyamdaki emir bunun gibi bir şey olurdu
chuser -R --olduser tom --newuser jerry
veya
chuser -R --olduser 1066 --newuser 1492
Bu benim senaryomu ... İçinde kullanıcı ve grup bilgileri bulunan bir yedek dosyam (.tgz) var. Apache ve MySQL çalıştıran bir web sunucusundan alındı. Yedeklemedeki dosyalar sistem genelindedir ve birkaç farklı kullanıcıdan ve birkaç sistem türü hesabından dosya içerir ve yeni sunucuya geri yüklendiğinde ayarların kaybolmaması önemlidir. Sorun, makinedeki kullanıcıların geri yüklenen kullanıcıların yedekleme dosyasındakilerle eşleşmemeleridir. Örneğin, her iki makinenin de bir MySQL kullanıcısı vardı, ancak farklı kullanıcı kimlikleri var ve her iki makinede de farklı kullanıcılara ait birkaç kullanıcı kimliği var. Bu, yeni makinedeki kullanıcıları eski makinedekilerle senkronize etmenin bir yolu olmadığı anlamına gelir.
Tüm kullanıcı dosyalarını bu şekilde find komutu ile bulabilirim ...
find /decompressed-backup-dir -uid 1050
veya
find /decompressed-backup-dir -user tom
Eğer şüphelendiğim gibi, tek bir komutla istediğimi yapmanın bir yolu yoksa, belki de sahip olma değişikliğini ele almak için find komutunun sonuçlarını başka bir komuta aktarmanın bir yolu olabilir mi?
Bunu bir PHP betiği ile yapabilirim ama 4GB'lık ve on binlerce dosya var, bu yüzden PHP veya Perl kullanmak istemiyorum ama işleyebilecek bir kabuk betiği ile mutlu olurdum.
-uid
kullandım-user