जवाबों:
आपको मैन्युअल रूप से फ़ाइलों को ढूंढना होगा, जो कि संभवतया deluserऐसा होगा।
कृपया ध्यान दें --remove-all-filesकि ऐसा नहीं है rm -r /home/user। उत्तरार्द्ध केवल होमेडिर को हटा देता है (जिसमें उस उपयोगकर्ता के स्वामित्व वाली फाइलें शामिल नहीं हो सकती हैं, हालांकि सामान्य नहीं हैं), पूर्व सिस्टम से उस उपयोगकर्ता के स्वामित्व वाली सभी फ़ाइलों को हटा देता है। कम से कम अगर मैनपेज पर भरोसा किया जाए ।
जीएनयू findका एक -userपरीक्षण है, इसलिए आप find / -user xxxउपयोगकर्ता के स्वामित्व वाली सभी फ़ाइलों को खोजने के लिए कर सकते हैं xxx। xxxउपयोगकर्ता नाम होगा, और (और इस मामले में कर सकते हैं करेंगे उपयोगकर्ता के रूप में अब मौजूद नहीं है, के लिए है) होना उपयोगकर्ता की अंकीय आईडी। findएक -deleteविकल्प भी है , इसलिए
find / -user xxx -delete
यह करना चाहिए, हालांकि मैंने एक ही समय में सभी विकल्पों के साथ कमांड का परीक्षण नहीं किया है।
EDIT: न्यूमेरिक आईडी: इस कारण से मैंने आपको एक संख्यात्मक आईडी का उपयोग करने के लिए कहा है, क्योंकि जैसा कि आपने पहले ही उपयोगकर्ता /etc/passwdको हटा दिया था , उसका प्रवेश हटा दिया गया था (यह अन्य सामान के साथ, उपयोगकर्ता आईडी, उसके उपयोगकर्ता नाम के साथ) ।
इसलिए, यदि आपने उसका होमडायर नहीं निकाला है, तो सबसे आसान तरीकों में से एक उस होमडायर के मालिक की आईडी के लिए क्वेरी करना है:
stat -c %u /home/user/
( statफाइलसिस्टम डेटा पढ़ने के लिए एक उपकरण है। यह -c %uबताता है statकि इसका आउटपुट कैसे लिखना है, यहाँ मैं इसे यूजर आईडी बनाने के लिए कह रहा हूँ)
यदि आप एक-लाइनर पसंद करते हैं, तो आप दोनों कमांड को भी चेन कर सकते हैं:
find / -user $(stat -c %u /home/user/) -delete
(निश्चित रूप से आप इसे पहले से ही चलाना पसंद कर सकते हैं, यह -deleteसुनिश्चित करने के लिए कि आप कुछ भी नहीं रखना चाहते हैं, और किसी भी गलती को पकड़ने के लिए जो आपने बाकी कमांड को लिख कर दिया है। गलतियों को हटाते समय पुनरावर्ती ऑपरेशन करना गलत /नहीं है। दिल का।)
rmउपयोग करने के लिए xargs(लेकिन यह संभवतः तर्क सीमा को मार देगा यदि बहुत अधिक परिणाम हैं), लेकिन -depthजानकारी मैनुअल को उद्धृत करते हुए देखें: "यदि आपका` कमांड 'निर्देशिकाओं को हटाता है, तो आप पा सकते हैं कि जब आपको 'खोज' एक निर्देशिका में पुन: प्राप्त करने का प्रयास करता है, तो आपको एक त्रुटि संदेश मिलता है, जो `-डेप 'विकल्प का उपयोग करके सामान्य रूप से इस समस्या को हल करेगा।" (और बाद में एक ही खंड पर, "(` -delete 'का अर्थ है
find: 'user' is not the name of a known use
/etc/passwdउपयोगकर्ता और उसकी आईडी को सूचीबद्ध करने में कोई मैपिंग नहीं है । आपको संख्यात्मक आईडी ढूंढनी होगी। क्या stat -c %u /home/user/, यह आपको संख्यात्मक उपयोगकर्ता आईडी दे सकता है, जैसा कि xxxऊपर बताया गया है।
एक अन्य विकल्प यह होगा adduserकि पुराने UID को निर्दिष्ट करते हुए, फिर deluserसे, इस बार --remove-all-filesध्वज के साथ , उपयोगकर्ता को पुनः जोड़ें ।
उदाहरण के लिए, मान लीजिए कि उपयोगकर्ता के पास उपयोगकर्ता नाम aliceऔर UID था 1001:
sudo adduser --uid 1001 alice
sudo deluser --remove-all-files alice
gnu find के पास विकल्प -nouser और -nogroup हैं, इसे ऊपर देखें man find। इन विकल्पों के साथ आप अपने फाइलसिस्टम (ओं) में सभी फाइलें पा सकते हैं जिनके पास / etc / passwd में कोई संगत उपयोगकर्ता नहीं है। यदि आपने अपने हटाए गए उपयोगकर्ताओं के पुराने uids के साथ एक नया उपयोगकर्ता नहीं बनाया है, तो इन अनाथ फ़ाइलों को खोजने की संभावना है।
हालाँकि, आपको अधिक फ़ाइलें मिल सकती हैं - न केवल वे जो आपके डिलीट किए गए हैं।
-execयदि आप अपने विलोपनों पर थोड़ा अधिक नियंत्रण चाहते हैं, तो आप कस्टम rm कमांड चलाने के लिए खोज के विकल्प का भी उपयोग कर सकते हैं , लेकिन मैंने कभी भी ऐसा प्रयास नहीं किया है ताकि YMMV हो।