এই ব্যবহারকারীর মালিকানাধীন কোনও ব্যবহারকারী এবং সমস্ত ফাইল মুছুন


12

আমি deluserপ্যারামিটার ছাড়াই ব্যবহার করেছি --remove-all-files:

$ deluser 'user'

rm -r /home/userএখন কোনও ব্যবহারকারীর মালিকানাধীন সমস্ত ফাইল অপসারণ করা ছাড়া অন্য উপায় আছে (যেহেতু আমি ইতিমধ্যে ডিলারটি কার্যকর করেছি)?

উত্তর:


19

আপনাকে ম্যানুয়ালি ফাইলগুলি সন্ধান করতে হবে যা সম্ভবত এটি ছিল deluser

দয়া করে মনে রাখবেন --remove-all-filesহয় না হিসাবে একই rm -r /home/user। পরেরটি কেবল হোমডিরকে সরিয়ে দেয় (এর মধ্যে এটি ব্যবহারকারীর মালিকানাধীন ফাইলগুলি অন্তর্ভুক্ত থাকতে পারে, যদিও তা সাধারণত নয়), প্রাক্তন সিস্টেম থেকে ব্যবহারকারীটির মালিকানাধীন সমস্ত ফাইল সরিয়ে দেয় । অন্তত ম্যানপেজটি যদি বিশ্বাস করতে হয়

জিএনইউর findএকটি -userপরীক্ষা রয়েছে, যাতে আপনি find / -user xxxব্যবহারকারীর মালিকানাধীন সমস্ত ফাইল সন্ধান করতে পারেন xxxxxxব্যবহারকারীর নাম হবে এবং (এবং এই ক্ষেত্রে করতে হবে ব্যবহারকারী হিসাবে আর বিদ্যমান নেই, আছে) হতে ব্যবহারকারীর সাংখ্যিক আইডি। findএছাড়াও একটি -deleteবিকল্প আছে, তাই

find / -user xxx -delete

এটি করা উচিত, যদিও আমি একই সাথে সমস্ত বিকল্পের সাথে কমান্ডটি পরীক্ষা করেছি না।

সম্পাদনা: সংখ্যাসূচক আইডি: আমি কেন বললাম যে আপনি একটি সংখ্যার আইডি ব্যবহার করতে হবে কারণ আপনি ইতিমধ্যে ব্যবহারকারীকে মুছে ফেলা হিসাবে, তার প্রবেশকরণটি /etc/passwdমুছে ফেলা হয়েছে (এটির সাথে অন্যান্য ব্যবহারকারীর আইডি, তার ব্যবহারকারীর নামও ছিল) ।

সুতরাং, আপনি যদি তার বাড়ির গাজীটি সরিয়ে না ফেলে থাকেন তবে একটি সহজ উপায় হ'ল সেই বাড়ির মালিকের আইডি অনুসন্ধান করা:

stat -c %u /home/user/

( statফাইল সিস্টেমের ডেটা পড়ার একটি সরঞ্জাম its এটির আউটপুট কীভাবে লিখতে হয় তা -c %uজানায় stat, এখানে আমি কেবল ব্যবহারকারী আইডি আউটপুট করতে বলছি)

যদি আপনি ওয়ান-লাইনার পছন্দ করেন তবে আপনি উভয় কমান্ড চেইন করতে পারেন:

find / -user $(stat -c %u /home/user/) -delete

(অবশ্যই আপনি রাখতে চান -deleteযে কিছুই নেই তা নিশ্চিত করেই আপনি প্রথমে এটি চালানো পছন্দ করতে পারেন, এবং বাকী কমান্ডটি লিখেছেন এমন কোনও ভুল ধরা দিতে। পুনরাবৃত্তি মোছার অপারেশনগুলি করার সময় ভুলগুলি ম্লান হওয়ার /জন্য নয়) হৃদয়ের.)


আপনি -execযদি নিজের মোছার উপর আরও কিছুটা নিয়ন্ত্রণ চান তবে আপনি কাস্টম আরএম কমান্ড চালানোর জন্য সন্ধানের বিকল্পটিও ব্যবহার করতে পারেন, তবে আমি এর আগে কখনও ওয়াইএমএমভি চেষ্টা করি নি।
agc93

সত্য, হয় বা এটি rmব্যবহার করে আউটপুটটি পাস করা xargs(তবে এটি যদি খুব বেশি ফলাফল পাওয়া যায় তবে সম্ভবত এটি যুক্তির সীমাতে আঘাত করবে), তবে -depthতথ্য ম্যানুয়ালটির উদ্ধৃতি দিয়ে দেখুন : "যদি আপনার` find "কমান্ড ডিরেক্টরিগুলি সরিয়ে দেয় তবে আপনি এটি পেতে পারেন "সন্ধান করুন" যখন এখন সরিয়ে ফেলা একটি ডিরেক্টরিতে পুনরাবৃত্তি করার চেষ্টা করে আপনি একটি উদ্দীপনাজনিত ত্রুটি বার্তা পান `-পথ 'বিকল্পটি ব্যবহার করা সাধারণত এই সমস্যার সমাধান করবে" " (এবং পরে একই বিভাগে, "(lete -ডিলেট 'যাইহোক way -পথ' বোঝায়)")
এনজেএসজি

@njsg ভাল আমি পেয়েছি:find: 'user' is not the name of a known use
pl1nk

1
@ pl1nk: যেমনটি আমি বলেছি, আপনাকে ব্যবহারকারীর সংখ্যাসূচক আইডি ব্যবহার করতে হবে - আপনি ইতিমধ্যে ব্যবহারকারীকে মুছে ফেলা হিসাবে, /etc/passwdব্যবহারকারী এবং তার আইডি তালিকাভুক্ত কোনও ম্যাপিং নেই । আপনাকে সংখ্যার আইডিটি খুঁজতে হবে। করুন stat -c %u /home/user/, এটি আপনাকে সংখ্যার ব্যবহারকারী আইডি দেবে, xxxউপরের মতো এটি ব্যবহার করুন ।
এনজেএসজি

@njsg আপনি ঠিক বলেছেন আমি আপনার প্রশ্নের শেষ অংশটি পড়িনি।
pl1nk

5

আরেকটি বিকল্প adduserহ'ল ব্যবহারকারীকে পুরাতন ইউআইডি নির্দিষ্ট করে পুনরায় যুক্ত করা এবং তারপরে deluserআবার চালানো , --remove-all-filesপতাকা সহ এবার ।

ধরুন, উদাহরণস্বরূপ, ব্যবহারকারীর ব্যবহারকারীর নাম aliceএবং ইউআইডি ছিল 1001:

sudo adduser --uid 1001 alice
sudo deluser --remove-all-files alice

3

gnu ফাইন্ডে বিকল্পগুলি -নিউসার এবং -নোগ্রুপ রয়েছে, এটি সন্ধান করুন man find। এই বিকল্পগুলির সাহায্যে আপনি আপনার ফাইল সিস্টেমে সমস্ত ফাইল সন্ধান করতে পারেন যা / ইত্যাদি / পাসডাব্লুডিতে কোনও সম্পর্কিত ব্যবহারকারী নেই। আপনি যদি নিজের মুছে ফেলা ব্যবহারকারীদের পুরানো উয়েড সহ কোনও নতুন ব্যবহারকারী তৈরি না করেন তবে এই অনাথ ফাইলগুলি খুঁজে পাওয়ার সম্ভাবনা।

তবে, আপনি আরও ফাইলগুলি খুঁজে পেতে পারেন - যারা কেবল আপনার মুছে ফেলা ফাইলগুলির সাথে সম্পর্কিত।


আমি বিশ্বাস করি আপনার কাছে সর্বোত্তম উত্তর আছে! ... "/ Find / \ (-Nouser -o -nogroup \) -প্রিন্ট0 | xargs -0 rm -rf" কমান্ডটি এমন সমস্ত ফাইল সন্ধান করেছে যার ব্যবহারকারী বা গোষ্ঠী নেই এবং এগুলি স্বয়ংক্রিয়ভাবে সরান।
ড্যাংলিংপয়েন্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.