আপনি কীভাবে আপনার সিস্টেম থেকে সৌম্য ব্যবহারকারীকে লাথি মারবেন?


66

আমি কিছুক্ষণ আগে এটি গুগল করছিলাম এবং বেশ কয়েকটি উপায় লক্ষ্য করলাম, তবে আমি অনুমান করছি যে গুগল সমস্ত কিছুই জানে না। সুতরাং কিভাবে কি আপনি আপনার Linux বক্স বন্ধ ব্যবহারকারীদের পদাঘাত? এছাড়াও তারা প্রথম স্থানে লগ ইন করা দেখে আপনি কীভাবে যাবেন? এবং সম্পর্কিত ... যদি ব্যবহারকারী কোনও এক্স 11 ডি-তে লগ ইন করে থাকে (তবে আমি প্রয়োজনীয় যাবতীয় প্রয়োজন না) আপনার পদ্ধতি কি কাজ করে?


3
গ্রহণযোগ্য উত্তর দেওয়া অনুমানগুলি প্রতিফলিত করার জন্য পরিবর্তিত প্রশ্ন। সুরক্ষা লঙ্ঘনের প্রসঙ্গে, আপনার সিস্টেম থেকে দূষিত ব্যবহারকারীকে লাথি মারার একমাত্র উপায় হ'ল সেই ব্যবহারকারীর চেয়ে অনেক বেশি স্মার্ট। এক চতুর ব্যবহারকারী নিজেদের utmp দেখা বা যত তুচ্ছ কিছু পাওয়া যাক যাচ্ছে না who(1)বা w(1)। ইনস্টল করা যেতে পারে এমন কোনও সম্ভাব্য রুটকিটস থেকে মুক্তি পাওয়ার একমাত্র বোকা উপায় হ'ল সিস্টেমটি পুরোপুরি মুছতে এবং পুনরায় ইনস্টল করা।
jw013

উত্তর:


139

সম্ভবত একটি সহজ উপায় আছে, কিন্তু আমি এটি করি:

  1. আপনার মেশিনে কারা লগ ইন হয়েছে দেখুন - ব্যবহার করুন whoবা w:

    > who  
    mmrozek  tty1         Aug 17 10:03  
    mmrozek  pts/3        Aug 17 10:09 (:pts/2:S.0)
    
  2. তাদের টিটিওয়াই সংযুক্ত রয়েছে শেলের প্রসেস আইডি দেখুন:

    > ps t  
    PID   TTY      STAT   TIME COMMAND  
    30737 pts/3    Ss     0:00 zsh
    
  3. তাদের আসন্ন সংযোগটি হেসে নিন (এই পদক্ষেপটি ,চ্ছিক, তবে উত্সাহিত)

    > echo "HAHAHAHAHAHAHAHA" | write mmrozek pts/3
    
  4. সংশ্লিষ্ট প্রক্রিয়াটি হত্যা করুন:

    > kill -9 30737
    

আমি শুধু আপনাকে পদক্ষেপ দিয়ে 1 এবং 2 একত্রিত করতে পারেন আবিষ্কৃত পতাকা; পিআইডি হ'ল নম্বরটি ডানদিকে বন্ধ:who-u

> who -u
mmrozek  tty1         Aug 17 10:03 09:01        9250
mmrozek  pts/18       Aug 17 10:09 01:46       19467 (:pts/2:S.0)

61
"তাদের আসন্ন সংযোগ কাটাতে হাসি (এই পদক্ষেপটি ,
জোশ

9
kill -9, হাহ? আপনি সত্যই এটিতে BOFH মোডে রয়েছেন।
জান্ডার

12
@ জেন্ডার আপনি একটি ব্যবহারকারীকে সিস্টেমের বাইরে লাথি মারছেন; তোমার কত সুন্দর হওয়া দরকার?
মাইকেল মরোজেক

6
সাধারণত, আমি বলব যে লোকদের দুর্ব্যবহার করতে উত্সাহিত করবেন নাkill -9 , এবং পরিবর্তে মৃদু সংকেত দিয়ে শুরু করুন, তবে আমি মনে করি এই প্রসঙ্গে এটি এতটা গুরুত্বপূর্ণ নয়। লোকেরা যদি রসিকতাটি মিস করে তবে আমি কেবল একটি মন্তব্য করছি।
jw013

5
মূলত পুরো প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে
চালিত করে

32

মিশেল যেমন ইতিমধ্যে চিহ্নিত করেছে, আপনি whoকে লগ ইন করেছেন তা জানতে আপনি এটি ব্যবহার করতে পারেন However তবে তাদের যদি একাধিক প্রক্রিয়া থাকে তবে প্রতিটি প্রক্রিয়া পৃথকভাবে হত্যার চেয়ে আরও সুবিধাজনক উপায় আছে: আপনি killall -u usernameসেই ব্যবহারকারীর দ্বারা সমস্ত প্রক্রিয়া হত্যার জন্য ব্যবহার করতে পারেন ।


+1 টি। killallগ্রাফিকাল পরিবেশে ব্যবহার করা কিছুটা বেশি উপযুক্ত হবে, যেহেতু মারার জন্য কেবল একটি শেল ছাড়াও আরও কিছু রয়েছে।
জন ডব্লিউ এইচ স্মিথ

3
সতর্কতা: আপনি যদি এটি রুট ব্যবহারকারীর জন্য ব্যবহার করেন তবে আপনি সমস্ত রুট প্রক্রিয়া বন্ধ করে দেবেন এবং আপনাকে সার্ভারটি শারীরিকভাবে পুনঃসূচনা করতে হবে।
কুনোক

@ কনোক আপনি কোন সিটেশন এর অধীনে মেশিন থেকে মূল ব্যবহারকারীকে লাথি মারতে চান? পছন্দ করে যদি সেই অ্যাকাউন্টটি ছিনতাই হয় বা কিছু?
আলেকজ মাগুরা

23

জাদুবিদ্যা!

আমি গৃহীত উত্তরের হাস্যরসটির প্রশংসা করি, তবে পেশাগতভাবে আমি এটির পক্ষে যেতে পারি না।

আমি সবচেয়ে সচেতন পদ্ধতি সম্পর্কে অবগত যা একটি ব্যবহারকারী হ্যাঙ্গআপ অনুকরণ করার জন্য শেলটিতে একটি -HUP প্রেরণ। আপনি এটি ব্যবহারকারীর অলস sshd এ তাদের সংযোগটি হারিয়ে যাওয়ার অনুকরণের জন্য প্রেরণ করতে পারেন, যা পুরো শেল পরিবেশের (শিশু শাঁস সহ) একটি ক্লিনআপ ট্রিগার করে বা নির্দিষ্ট নেস্টেড শেলগুলিতে এটি প্রেরণ করতে পারে (বলুন, সংযোগ বিচ্ছিন্ন টার্মিনাল মাল্টিপ্লেক্সারের অভ্যন্তরে সেট করা আছে যে আপনি যদি সত্যই সুনির্দিষ্ট হতে চান তবে আপনাকে কোনও ফাইল সিস্টেম আনমাউন্ট করা থেকে বিরত রাখছে।

ব্যবহার writeকরার আগে আপনি তাদের বুট বাঁচার অলস ptys বার্তা পাঠাবে হয় একটি মজার শখ যদিও।


1
যদিও ছদ্ম-সর্বশক্তিমান অনুভূতি যা একটি হত্যার -9-এর সাথে আসে মজাদার তবে এই পরামর্শ সম্ভবত আরও ভাল। আমার কাছ থেকে একটি ভোট।
অ্যান্ড্রু ফালঙ্গা

4
এই উত্তরটি সুস্পষ্ট করার জন্য, আমি যা করেছি তা হল: echo "Hasta la vista, baby" | write user_name pty_name && sleep 30 && killall -u user_name -HUP(
ঘুমটি

13

ব্যবহারকারী 'ব্যবহারকারীর নাম' লগআউট করুন:

skill -KILL -u username

দেখা man skill


3
আমি মনে করি এটি কেবল তাদের শেল নয়, এই ব্যবহারকারীর দ্বারা সমস্ত প্রক্রিয়া মেরে ফেলবে , তবে আপনি যদি এটি চান তবে এটি অবশ্যই সহজ
মাইকেল মরোজেক

আমি সত্যিই এটি আরএইচইএল 7
এন্টিভাইর্টেল

11

অন্যান্য দরকারী কমান্ড pkillএখানে pkill -u username && pkill -9 -u usernamekillallঅসুবিধা আছে যে সোলারিস আইআইআরসি-তে এর অর্থ সম্পূর্ণ ভিন্ন কিছু also এছাড়াও pkillকিছুটা আরও উন্নত বিকল্প রয়েছে।


8
সোলারিসে 'কিল্লাল' সার্ভারের সমস্ত প্রক্রিয়া (প্রায়) হত্যার জন্য শাটডাউন স্ক্রিপ্টগুলি দ্বারা ব্যবহৃত হয়। "এটা কি টিনের না."
ডাঃ-জান

লোকেরা, আপনি এত বেশি কেন সাইন কিল করেন? চলমান প্রোগ্রাম এবং অ্যাপ্লিকেশনটিতে ডেটা সংরক্ষণ এবং কিছুটা পরিষ্কার করার সুযোগও থাকবে না। সিগনেটার (যেমন শাটডাউনে ব্যবহৃত হয়) বা সাইনআপ এটিও করবে এবং এটি আরও মনোমুগ্ধকর। (গ্রেস পিরিয়ডের মেয়াদ শেষ হওয়ার পরেও আপনি সইগিল পাঠাতে পারেন))
কাউন্টারমড

3

প্রথমত, এটি একটি বৃহত্তর সমস্যা নির্দেশ করে। আপনার যদি এমন ব্যবহারকারী থাকে যা আপনি আপনার সিস্টেমে বিশ্বাস করেন না, আপনার সম্ভবত এটি স্তর এবং পুনরায় চিত্র নেওয়া উচিত।

এই বিষয়টি মনে রেখে আপনি নীচের কিছু বা সমস্ত কিছু করতে পারেন:

# পরিবেশ স্থাপন করুন
AD BADUSER = foo # যেখানে foo হ'ল ব্যবহারকারীর নাম
$ ব্যবহারকারীলাইন = $ (গ্রেপ '^ $ AD ব্যাডুসার}:' / ইত্যাদি / পাসডাব্লু)
AD BADUID = $ (প্রতিধ্বনি $ {USERLINE} | awk -F: '{মুদ্রণ $ 3}')
AD BADGID = $ (প্রতিধ্বনি {{USERLINE} | awk -F: '{মুদ্রণ $ 4}')
AD BADHOMEDIR = $ (প্রতিধ্বনি {{USERLINE} | awk -F: '{মুদ্রণ $ 6}')
$ বিডিআইআর = "~ / ব্যাকআপ / হোম-ব্যাকআপ /"
ST টিএসটিএএমপি = $ (তারিখ +% এফ)
$ TAR_FILENAME = "$ AD BADUSER} - $ {টিএসটিএএমপি tar .tar.bz2"
W OWNED_FILENAME = "$ AD BADUSER}-ফাইলস - $ {TSTAMP} .txt"

# ব্যবহারকারীর ভবিষ্যতের লগইন অক্ষম করুন
do সুডো চ্যাশ-এস / বিন / মিথ্যা "$ AD ব্যাডুসার}"

# ব্যবহারকারীর সমস্ত প্রক্রিয়া মেরে ফেলুন
$ BADPROCS = $ (পিএইউউক্স | গ্রেপ '^ $ {বাদুড়}' | অ্যাওভ '{মুদ্রণ $ 2}')
$ সুডো কিল -9 $ AD BADPROCS}

# ব্যাক আপ / ব্যবহারকারীর হোম ডিরেক্টরি সাফ করুন
$ এমকেডির -পি {D বিডিআইআর
do sudo tar -cfj $ D BDIR} / $ AR TAR_FILENAME} $ AD BADHOMEDIR
do sudo rm -rf $ AD BADHOMEDIR} /.* $ AD বাধোমিদির} / *

# ব্যবহারকারীর মালিকানাধীন সমস্ত ফাইল সন্ধান করুন
$ sudo / ইউজার-AD BADUSER}> ~ / ব্যাকআপ / {{OWNED_FILENAME find সন্ধান করুন}

# ব্যবহারকারীকে সরান
do সুডো ইউজারডেল {AD ব্যাডার ER

আমি জানি না যে আমি "লেভেল ইট রিমিজ" এর সাথে একমত হব এটি ইউনিক্স নয় উইন্ডোজ ... আমার আসলেই এই সমস্যা নেই ... আমি কেবল জিজ্ঞাসা করছিলাম।
xenoterracide 21

3
এছাড়াও, কেবলমাত্র আপনাকে কোনও ব্যবহারকারীকে লাথি মারতে হবে তার অর্থ এই নয় যে তারা অবিশ্বস্ত। সম্ভবত তারা লগ আউট করতে ভুলে গেছেন।
ডেভিড জেড

xenoterracide: সম্ভবত আমি আমার রক্ষণাবেক্ষণ করা সিস্টেমগুলির মধ্যে কেবল প্রতিরক্ষামূলক, তবে আমার যদি এমন একজন ব্যবহারকারী থাকতেন যাকে আমার নিয়ন্ত্রণাধীন একটি সিস্টেম থেকে জোরপূর্বক অপসারণ করা দরকার বলে মনে হয়, তবে মারাত্মক কিছু ঘটতে হত।
সিজ্যাক

প্রশ্নটিতে এমন জিনিস পড়ার জন্য -1 যা প্রশ্নোত্তরের সাথে প্রশ্ন / এ-অফ-টপিকটিকে যৌক্তিকভাবে অনুসরণ এবং টেনে না নেয়।
ওয়েসলি

you have users that you don't trust on your system... অথবা এটি এমনই হতে পারে যে আপনি একজনকে অন্যকে বার্তা হিসাবে হত্যা করছেন। সর্বোপরি, সিসাদমিনের ধর্মকে "প্রেম করার চেয়ে ভয় করা ভাল কি" না? সমস্ত কৌতুক একদিকে রেখে, ম্যাকিয়াভেলির একটি ও'রিলি বইটি লেখা উচিত।
পার্থিয়ান শট

0

আমি চারপাশে তাকিয়েছি এবং এই কাজটি স্বয়ংক্রিয় করার জন্য একটি স্ক্রিপ্ট খুঁজে পাইনি।

সুতরাং, এখানে প্রস্তাবিত সমাধানগুলির উপর ভিত্তি করে আমি একটি ইন্টারেক্টিভ বাশ স্ক্রিপ্টে সমস্ত কিছু মিশ্রিত করেছি যা who -uব্যবহারকারীর জন্য পছন্দ করতে ব্যবহারকারীদের এবং সেশনগুলি তালিকাভুক্ত করে do

এরপরে আপনিও পারেন:

  • কোনও ব্যবহারকারীর জন্য সমস্ত সেশন মেরে ফেলুন killall -u <username> -HUP
  • একটি নির্দিষ্ট সেশন হত্যা kill <PID>

সমস্ত প্রয়োজনীয় তথ্য আসে who -uএবং তারপরে mapfileএবং ব্যবহার করে পার্স করা হয় awk

আমি writeপরে ব্যবহার করে একটি বার্তা প্রেরণের সম্ভাবনাটি যুক্ত করব (বিলম্বের সাথে প্রক্রিয়াটি ফোরকিং)।

আমি সম্ভবত kill -9পাশাপাশি একটি নির্দিষ্ট সেশন মারার বিকল্প যুক্ত করব । তবে আমি ন্যায়সঙ্গত killএবং অন্যদের দ্বারা নির্দেশিত হিসাবে কোনও সমস্যা ছিল না , kill -9সম্ভব হলে এড়ানো উচিত।

আপনি যদি গিথুবটিতে কোডটি দেখতে চান বা আপনি এটি স্বয়ংক্রিয় উপায়ে কীভাবে করছেন সে সম্পর্কে আরও জানতে চাইলে আপনি কোডটি চেক করতে পারেন:


0

সুতরাং আপনি কীভাবে [লেনিন] ব্যবহারকারীদের আপনার লিনাক্স বাক্সটি বন্ধ করবেন?

শেষ পর্যন্ত এটি ব্যবহারকারীর আইডি থেকে মালিকানাধীন, সম্পর্কিত, বা তৈরি হওয়া প্রক্রিয়াগুলি চিহ্নিতকরণ এবং শেষ করতে নেমে আসে। আপনি এই লক্ষ্যে পৌঁছানোর জন্য যে কোনও আদেশ ব্যবহার করেন না কেন যতক্ষণ না আপনি সেখানে পৌঁছাবেন ততক্ষণ তা গুরুত্বপূর্ণ নয়।

মূলত দুটি উত্তর ...

বিকল্প এ: কথিত ব্যবহারকারীর লগ আউট সৃষ্টি করে, যার জন্য সর্বদা এবং তবে তাদের অনেকগুলি লগইন রয়েছে। সুতরাং এর অর্থ হ'ল সেই প্রক্রিয়াগুলি চিহ্নিত করা যা কোনও ব্যবহারকারীর মালিকানাধীন, ইউআইডি দ্বারা সন্ধানযোগ্য এবং আপনি যে লিনাক্স ডিস্ট্রো চালিয়ে যাচ্ছেন তার জন্য কিছু লগইন প্রক্রিয়ার অংশ হিসাবে শ্রেণিবদ্ধ করা হয়েছে। উপলব্ধি করুন যে "লগইন" এর আগে এসএসএইচ বা ভিএনসি এবং "লগইন" এর পরে জিডিএম এর মতো শিশু প্রক্রিয়াগুলি যেমন পিতামাতার প্রক্রিয়াগুলি সাধারণত পিতামাতার প্রক্রিয়াটিকে হত্যা করা শিশু প্রক্রিয়াটিকে মেরে ফেলবে, তবে সবসময় নয়। সুতরাং আপনি এই অন্যান্য প্রক্রিয়াগুলি হত্যা করতে চাইবেন যা লগ আউট করার পরে স্পষ্টতই আর প্রয়োজন নেই। এই সমস্ত কিছু করার ক্ষেত্রে এটি পটভূমির কাজগুলি চালিয়ে যাবে ... কারণ এটি সৌম্য ব্যবহারকারী এবং সম্ভবত আপনি কেবল তাদের লগ আউট করতে চান। আমি যতদূর জানি, /usr/bin/wএবং /usr/bin/whoকে লগ ইন প্রক্রিয়াটি পেরিয়ে গেছে কে প্রতিবেদন করবে।

বি বি: একটি নির্দিষ্ট ইউডের মালিকানাধীন সমস্ত প্রক্রিয়া সম্পূর্ণরূপে শেষ করুন, যার অর্থ হ'ল ইউজারের মালিকানাধীন যে কোনও এবং সমস্ত প্রক্রিয়া হত্যার অর্থ হ'ল, তারা লগ ইন থাকলে এইগুলি লগ আউট করে This এটি সিস্টেমের বাইরে থাকা কিককে সন্তুষ্ট করবে । এটি কেবল একটি সরল হতে হবে ps -ef | grep <uid>এবং তারপরে যা কিছু গ্রহণযোগ্য তা এই সমস্ত প্রক্রিয়া শেষ করে।

এসএইলএস ১১-এ ফিজিউইউ এটি রিপোর্ট করেছে

ম্যান দক্ষতা ... এই সরঞ্জামগুলি সম্ভবত অপ্রচলিত এবং অপ্রয়োজনীয়। কমান্ড সিনট্যাক্সটি খারাপভাবে সংজ্ঞায়িত করা হয়েছে। পরিবর্তে কিল্লাল, পিকিল এবং পিগ্রিপ কমান্ডগুলি ব্যবহার করার বিষয়ে বিবেচনা করুন।

kill -9 এফটিডব্লিউ!


-1

আমার মতে এটি ব্যবহার করা সত্যই কার্যকর নয় killall -u usernameকারণ এটি যদি আপনার মতো একই ব্যবহারকারী হয় তবে আপনি নিজেকে লাথি মারবেন। সুতরাং killপ্রক্রিয়া একটি ভাল সমাধান হবে।


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

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

-2

এই আদেশটি জিইউআইয়ের জন্য দুর্দান্ত কাজ করেছে আমার "উল্লেখযোগ্য" সাইন আউট করতে অস্বীকার করেছে ...

leaves@me:/# skill -HUP -u username
  • কি হয়েছে জানি না।
  • অবশ্যই একটি আপডেট হয়েছে।
  • "গুগল" আবার ডাউন ছিল।
  • এটি ইন্টার ওয়েবে ভাইরাস ছিল।

আপনার যদি প্রয়োজন হয় তবে কিছু বিবর্তন।


1
এটি ইতিমধ্যে বিএসডি এর উত্তরে উল্লেখ করা হয়েছে।
স্টিফেন কিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.