मैं एक ऐसे लिनक्स कमांड की तलाश में हूं जो किसी दिए गए उपयोगकर्ता से संबंधित सभी फाइलों के स्वामित्व को बदल सकता है, अधिमानतः किसी लक्षित उपयोगकर्ता को, किसी अन्य निर्दिष्ट उपयोगकर्ता को।
मेरा ड्रीम कमांड कुछ इस तरह दिखेगा ...
chuser -R --olduser tom --newuser jerry
या
chuser -R --olduser 1066 --newuser 1492
यह मेरा परिदृश्य है ... मेरे पास उपयोगकर्ता और समूह में संरक्षित जानकारी के साथ एक बैकअप फ़ाइल (.tgz) है। यह Apache और MySQL चलाने वाले एक वेब सर्वर से लिया गया था। बैकअप में फ़ाइलें सिस्टम से होती हैं और कई अलग-अलग उपयोगकर्ताओं और कई सिस्टम प्रकार के खातों से फाइलें होती हैं और यह महत्वपूर्ण है कि जब नए सर्वर पर पुनर्स्थापित किया जाता है तो सेटिंग्स खो नहीं जाती हैं। समस्या यह है कि मशीन पर उपयोगकर्ताओं को बैकअप फ़ाइल में मेल नहीं खाने के लिए फ़ाइलों को पुनर्स्थापित किया जा रहा है। उदाहरण के लिए दोनों मशीनों में एक MySQL उपयोगकर्ता था, लेकिन उनके पास अलग-अलग उपयोगकर्ता आईडी हैं और कई उपयोगकर्ता आईडी हैं जो दोनों मशीनों पर मौजूद हैं जो विभिन्न उपयोगकर्ताओं से संबंधित हैं। इसका मतलब यह है कि नई मशीन पर पुरानी मशीन पर उपयोगकर्ताओं को सिंक करने का कोई तरीका नहीं है।
मैं सभी उपयोगकर्ता फ़ाइलों को इस तरह की खोज के साथ पा सकता हूं ...
find /decompressed-backup-dir -uid 1050
या
find /decompressed-backup-dir -user tom
यदि, जैसा कि मुझे संदेह है, एक एकल कमांड के साथ जो मैं चाहता हूं, वह करने का कोई तरीका नहीं है, तो शायद स्वामित्व परिवर्तन को संभालने के लिए किसी अन्य कमांड के लिए खोज कमांड के परिणामों को पाइप करने का एक तरीका है?
मैं एक PHP स्क्रिप्ट के साथ ऐसा कर सकता था, लेकिन बैकअप में 4GB और हजारों फाइलें हैं, इसलिए मैं PHP या पर्ल का उपयोग नहीं करना चाहता हूं, लेकिन मैं एक शेल स्क्रिप्ट के साथ खुश रहूंगा जो इसे संभाल सकती है।
-uid
मैंनें इस्तेमाल किया-user