অ্যাকাউন্টটি অক্ষম না করে কোনও ব্যবহারকারীর লগইন অক্ষম করুন


87

ধরা যাক আমি adduserকমান্ডটি ব্যবহার করে "বোগাস" নামে একটি ব্যবহারকারী তৈরি করি । আমি কীভাবে নিশ্চিত করতে পারি যে অ্যাকাউন্টটি অক্ষম না করে এই ব্যবহারকারী কোনও কার্যকর লগইন বিকল্প হবেন না। সংক্ষেপে, আমি অ্যাকাউন্টটি অ্যাক্সেসযোগ্য হয়ে যেতে চাই su - bogus, তবে আমি চাই না যে এটি নিয়মিত লগইন প্রম্পটের মাধ্যমে অ্যাক্সেসযোগ্য হয়।

চারপাশে অনুসন্ধান করে, মনে হচ্ছে আমাকে সেই ব্যবহারকারীর পাসওয়ার্ডটি অক্ষম করতে হবে, কিন্তু করা passwd -d bogusসাহায্য করে না। আসলে, এটি জিনিসগুলি আরও খারাপ করে দিয়েছে, কারণ আমি এখন একটি পাসওয়ার্ডও টাইপ না করে বগাসে লগইন করতে পারি।

কোনও দেওয়া অ্যাকাউন্টের জন্য নিয়মিত লগইন অক্ষম করার কোনও উপায় আছে কি?

দ্রষ্টব্য: কেবল স্পষ্ট করে বলতে গেলে, আমি জানি যে জিডিএম এর মতো গ্রাফিক্যাল লগইন স্ক্রিনগুলির মেনু বিকল্পগুলি থেকে কোনও ব্যবহারকারীকে কীভাবে সরিয়ে ফেলা যায়, তবে এই পদ্ধতিগুলি লগইনকে অক্ষম না করে কেবল অ্যাকাউন্টটি আড়াল করে। আমি নিয়মিত লগইন সম্পূর্ণরূপে অক্ষম করার একটি উপায় খুঁজছি, পাঠ্য-মোড অন্তর্ভুক্ত।


2
তোমার -dপাসওয়ার্ড মুছে ফেলতে পতাকা। এটি এটি অক্ষম করা থেকে আলাদা (লক হিসাবে উল্লেখ করা হয়, চাদের উত্তর দেখুন)।
কালেব

1
আপনি সম্ভবত এগুলি সম্পূর্ণরূপে অক্ষম করতে চান: unix.stackexchange.com/questions/7690/… এছাড়াও এই উবুন্টু প্রশ্নটি জিজ্ঞাসা করুন: Askubuntu.com/questions/282806/how-to-enable-or-disable-a-user
সাইমন উডসাইড

উত্তর:


102
passwd -l user

আপনি কি চান

এটি ব্যবহারকারীর অ্যাকাউন্টটি লক করে দেবে। তবে আপনি এখনও সক্ষম হবেন

su - user

তবে আপনাকে su - userরুট করতে হবে ।

বিকল্পভাবে, আপনি !ব্যবহারকারীর পাসওয়ার্ড এ প্রিপেন্ড করে একই জিনিসটি সম্পাদন করতে পারেন /etc/shadow( passwd -lপর্দার আড়ালে এটিই ঘটে)। এবং passwd -uএটি পূর্বাবস্থায় ফিরবে।


27
passwd -lবিকল্পটি ব্যবহার করে আপনার সচেতন হওয়া উচিত যে ব্যবহারকারী অন্য প্রমাণীকরণ টোকেন ব্যবহার করে লগইন করতে পারে (যেমন একটি এসএসএইচ কী)।
pl1nk

2
এটি কীভাবে এড়ানো যায় সে সম্পর্কে প্রস্তাবিত সমাধানের জন্য দয়া করে নীচে আমার উত্তরটি দেখুন
জার্গ গটসচ্লিচ

2
এটি উবুন্টু 16.04 এ কাজ করে না। এটি মেয়াদ শেষ হওয়ার তারিখ পরিবর্তন করবে এবং সু-ব্যবহারকারীর আর অনুমতি দেবে না।
মার্লিন

1
এটি --disabled-passwordদেওয়া বিকল্প হিসাবে কি একই adduser? ছাড়া একটি ব্যবহারকারী তৈরির কথা দেয় --disabled-passwordএবং তারপর চলমান passwd -lচলমান হিসাবে একই ফলাফল অর্জন ব্যবহারকারীকে উপর adduserদিয়ে --disabled-passwordপ্রথম স্থানে?
haridsv

39

ম্যান পেজ passwd(1)সম্পর্কে বলেছেন passwd -l:

মনে রাখবেন এটি অ্যাকাউন্টটি অক্ষম করে না। ব্যবহারকারী এখনও অন্য প্রমাণীকরণ টোকেন ব্যবহার করে লগইন করতে সক্ষম হতে পারে (যেমন একটি এসএসএইচ কী)। অ্যাকাউন্টটি অক্ষম করার জন্য প্রশাসকদের ব্যবহারকারীর মডেল - এক্সপায়ারড 1 ব্যবহার করা উচিত (এটি অ্যাকাউন্টের মেয়াদ শেষ হওয়ার তারিখ 2 জানুয়ারী, 1970 এর মধ্যে রয়েছে)।

সুতরাং

usermod --expiredate 1 [LOGIN]

আমার কাছে মনে হয় কোনও অ্যাকাউন্টটি অক্ষম করার সঠিক উপায়টির মতো ব্যবহারকারীর আর ব্যবহার করা উচিত হবে না (উদাহরণস্বরূপ কারণ তিনি সংস্থাটি ছেড়ে গেছেন)।


4
আমার CentOs 6.3 এ কোনও ব্যবহারকারীর জন্য সংযোগ passwd -lব্লক করে, না! sshusermod --expiredate 1
fduff

1
আমার CentOS 7.4 এ, passwd -lকোনও sshব্যবহারকারীর জন্য আর সংযোগগুলি usermod --expiredate 1 userঅবরুদ্ধ করে না এবং অবরুদ্ধ করে। প্রতি man passwdআপনি chage -E 0 userএকজন ব্যবহারকারীকে ব্লক করতেও ব্যবহার করতে পারেন । আবেদন করার পরে usermodবা chageআমি সক্ষম হয়েছিsudo su user
ব্যবহারকারী 12345

usermod --expiredate 0 [LOGIN]এটিও কাজ করে, এটি মেয়াদ শেষ হওয়ার তারিখটি জানুয়ারি 1 1970 এ সেট করে যেখানে 1 জন সেট করে জানুয়ারী 2 2 1970
স্ল্যাম

"মান 0 ব্যবহার করা উচিত নয় কারণ এটি কোনও মেয়াদোত্তীর্ণ অ্যাকাউন্ট নয় বা 1 জানুয়ারী, 1970-এ মেয়াদোত্তীকরণ হিসাবে ব্যাখ্যা করা হয়েছে।" - ছায়া (5)
জোহানেস

28

কোনও ব্যবহারকারীকে লগইন করতে সক্ষম হতে বাধা দেওয়ার জন্য দুটি পদ্ধতি রয়েছে:

  1. আপনি সম্পাদনা করে ব্যবহারকারীকে লক করতে পারেন /etc/passwd
  2. স্যুইচ passwdদিয়ে সরাসরি কমান্ড জারি করে-l

দ্বিতীয় ক্ষেত্রে ব্যবহারকারী অন্য প্রমাণীকরণ টোকেন ব্যবহার করে লগইন করতে পারে (যেমন একটি এসএসএইচ কী)।

পদ্ধতি # 1

  1. নোলোজিন কোথায় রয়েছে তা সন্ধান করুন: / বিন / নোলজিন বা / বিন / এসবিিন / নোলোগিন
  2. একটি টার্মিনাল খুলুন এবং রুট হিসাবে লগইন করুন
  3. আদর্শ vi /etc/passwd

এখন আপনি passwdফাইলটি Insসম্পাদনা করতে ফাইল প্রেসে আছেন ।

nologinবিকল্পের সাথে নীচের লাইনটি পরিবর্তন করুন (এর /bin/bashঅর্থ ব্যবহারকারী লগইন করতে সক্ষম)।

root:x:0:0:root:/root:/bin/bash

এই। nologinমানে ব্যবহারকারী লগইন করতে অক্ষম।

root:x:0:0:root:/root:/bin/nologin

(বা / বিন / এসবিন / নোলোগিন সহ)

  1. Vi বন্ধ করুন Esc :wq

পদ্ধতি # 2

ব্যবহারকারীকে লক করতে: passwd -l username

ব্যবহারকারীকে আনলক করতে: passwd -u username


1
একটি উবুন্টু 14.04 সিস্টেমে আমি এর /usr/sbin/nologinপরিবর্তে খুঁজে পেয়েছি /bin/nologin
ডেনিস উইলিয়ামসন

7

এটি বেশ সহজ কাজ আপনি কেবল /etc/passwdফাইলের মধ্যে কিছু পরিবর্তন করতে হবে।

কেবলমাত্র আপনি শেল যা সাধারণত ডিফল্ট দ্বারা পরিবর্তন করতে হবে /bin/bashঅর্থাত আপনি এই শেল পরিবর্তন ব্যবহার লগইন করতে পারেন /bin/nologinবা /bin/false। এটি পুরানো হওয়ার /bin/nologinকারণে এটিতে পরিবর্তন করার পরামর্শ দেওয়া /bin/falseহচ্ছে।


4

/bin/falseশেল হিসাবে সেট করুন/etc/passwd


18
যখন কেউ শেলটি সেট করে /bin/false, কেউ সেই ব্যবহারকারী হিসাবে কাজ করতে su ব্যবহার করতে বাধা দেয়। তদ্ব্যতীত, /bin/falseব্যবহারটি কোনও ত্রুটি বা ঠিক কী ভুল হয়েছে তার অন্য ইঙ্গিত তৈরি করে না - যে ক্ষেত্রে যদি কেউ এমনকি ইউ কে হিসাবে শেল পেতে ব্যবহার করতে বাধা দিতে চায় তবে শেলটি পরিবর্তন করা উচিত /sbin/nologinযা ত্রুটি তৈরি করে।
হেজমেজ

8
না, suএখনো ব্যবহারকারীদের জন্য সম্ভব /bin/falseমধ্যে শাঁস passwd- ঠিক বিকল্প ব্যবহার --shell: su - --shell /bin/sh bogus
মতেজ কোভাক

1
/usr/sbin/nologinএর একই প্রভাব রয়েছে /bin/falseতবে এটি একটি দরকারী তথ্যমূলক বার্তাও দেখায়।
রার্ড

0

আমরা যখন passwd -l userকমান্ডটি ব্যবহার করে ব্যবহারকারীকে লক করি , " !!" /etc/shadowফাইলটিতে নির্দেশিত হয় । তবে আমরা এখনও রুট অ্যাকাউন্ট থেকে একটি ব্যবহারকারী শেলটিতে স্যুইচ করতে সক্ষম করতে পারি, তবে অন্যান্য সাধারণ ব্যবহারকারী লগইন শেল ব্যবহারকারীর অ্যাকাউন্টে স্যুইচ করতে সক্ষম নই।

ফাইল সরবরাহ /bin/nologinবা /bin/falseইন-ইন করে আমরা অ্যাকাউন্টটি অক্ষম করতে পারি /etc/passwd। সুতরাং ব্যবহারকারী লগ ইন করতে সক্ষম নাও হতে পারে।


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