সুরক্ষার কারণে ব্যবহারকারীর শেল অক্ষম করুন


58

আমাদের বেশ কয়েকটি ব্যবহারকারীর অ্যাকাউন্ট রয়েছে যা আমরা স্বয়ংক্রিয় কর্মের জন্য তৈরি করি যার জন্য সূক্ষ্ম-দানযুক্ত অনুমতিগুলির দরকার হয়, যেমন সিস্টেমগুলির মধ্যে ফাইল স্থানান্তর, পর্যবেক্ষণ ইত্যাদি require

এই "ব্যবহারকারীর" কোনও শেল না থাকায় এবং লগইন করতে না পারার জন্য আমরা কীভাবে এই ব্যবহারকারীর অ্যাকাউন্টগুলিকে লক করব? আমরা এই ব্যবহারকারীর অ্যাকাউন্টগুলির মধ্যে একটি হিসাবে এসএসএইচ করতে পারে এমন সম্ভাবনাটি প্রতিরোধ করতে চাই।

উত্তর:


63

আপনি usermodব্যবহারকারীর লগইন শেল পরিবর্তন করতে কমান্ডটি ব্যবহার করতে পারেন ।

usermod -s /sbin/nologin myuser

অথবা

usermod -s /usr/sbin/nologin myuser

যদি আপনার ওএস / sbin / nologin সরবরাহ না করে, আপনি শেলটি একটি NOOP কমান্ডে সেট করতে পারেন যেমন / বিন / মিথ্যা:

usermod -s /bin/false myuser

1
/bin/falseচেয়ে বেশি প্রচলিত বলে মনে হয় /bin/true
jw013

@ jw013 আমি আমার উত্তর আপডেট করেছি তবে দুজনেরই ঠিকঠাক কাজ করা উচিত।
জর্দান

1
মনে রাখবেন যে, উপর Debians, nologinআসলে এ পাওয়া যেতে হয়/usr/sbin/nologin
xebeche

এটি আমার প্রথম ধারণা ছিল, দুর্ভাগ্যক্রমে কিছু ব্যবহারকারীর অ্যাকাউন্টগুলির 'বৈধ' ব্যবহারটি সেটিংস করার সময় অক্ষম করা হয়েছেnologin
জাভিয়ের

2
@ jw013 আসলে আমার কাছে দুজনের মধ্যে /usr/local/bin/maybeকোনটি /dev/urandomনির্বাচন করে। হতে পারে আমার এটি ব্যবহার করা উচিত: ডি
হেজেজ

21

লগইন শেল পরিবর্তন করা অগত্যা ব্যবহারকারীদের সত্যায়িত হওয়া থেকে বিরত রাখে না (কিছু পরিষেবাদি যা ব্যবহারকারীর শেলের উল্লেখ রয়েছে কিনা তা যাচাই করে /etc/shells)।

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

শেল পরিবর্তন /bin/falseবা /usr/sbin/nologinশুধুমাত্র তাদের সেই পরিষেবাগুলি (কনসোল লগইন, SSH, Telnet rlogin, rexec ...) কমান্ড চালানোর জন্য ব্যবহার করা যেতে পারে যে কমান্ড চলমান থেকে বিরত হবে, তাই প্রভাবিত অনুমোদন শুধুমাত্র কিছু পরিষেবার জন্য।

জন্য sshউদাহরণস্বরূপ, যে এখনও তাদের পোর্ট ফরওয়ার্ড করার অনুমতি দিয়েছে।

passwd -lপাসওয়ার্ড প্রমাণীকরণ অক্ষম করবে, তবে ব্যবহারকারীর এখনও অন্য প্রমাণীকরণ পদ্ধতি (যেমন পছন্দ authorized_keysকরে ssh) ব্যবহার করার অনুমতি দেওয়া যেতে পারে ।

সঙ্গে pamঅন্তত লিনাক্স ব্যবহার করতে পারেন pam_shellsএকটি অনুমোদিত শেল (যাদের উল্লেখ ব্যবহারকারীদের প্রমাণীকরণের বা অনুমোদন সীমিত করতে মডিউল /etc/shells)। এর জন্য ssh, আপনি অন্যান্য অনুমোদন পদ্ধতি (যেমন ) এর পাশাপাশিaccount প্রমাণীকরণের sshdব্যবহার হিসাবে অনুমোদনের ( ) পর্যায়ে এটি করতে চাইবেন বা আপনি এটি (যেমন এবং বন্ধুদের) নির্দেশিকা দিয়ে করতে পারেন ।pam authorized_keyssshd_config/etc/ssh/sshd_configAllowUsers

সতর্কতা অবলম্বন করুন যে বিশ্বব্যাপী প্যাম অনুমোদনে কিছু বিধিনিষেধ যুক্ত cronকরা সেই ব্যবহারকারীদের হিসাবে চলমান চাকরিগুলি সম্ভাব্যরূপে প্রতিরোধ করবে ।


ধন্যবাদ. তারপরে আপনি নীচের স্কিমাটি দিয়ে কী প্রস্তাব করবেন: আমার এমন একটি ব্যবহারকারী তৈরি করতে হবে যা sftp বা sshfs এর মাধ্যমে তার হোম ফোল্ডারে অ্যাক্সেসের প্রয়োজন, তবে সে অবশ্যই শেল দিয়ে লগইন করতে সক্ষম হবে না। এটা কি সম্ভব? আমি পিএএম মডিউলগুলির মতো হয়ে গেলাম :|
গোটো

@ স্টাফেন আপনি আরএসএস - manpages.ubuntu.com/manpages/trusty/man1/rssh.1.html
হার্ট

4

আপনার সম্পাদনা /etc/passwdফাইল এবং পরিবর্তন ব্যবহারকারীদের কাছ থেকে শেল /bin/bash, অথবা /bin/shকরার/sbin/nologin


8
উত্তরটি সঠিক, তবে হাত সম্পাদনা / ইত্যাদি / পাসডাব্লুডি কখনই সুপারিশ করা উচিত নয়।
জর্ডানম

3
কেন? আমি পেশাদার পেশাদার অ্যাডমিন থাকাকালীন এটি এমন কিছু যা আমরা করছিলাম। (এখন প্রায় ২০ বছর) বাস্তবে, সমস্ত লিনাক্স / ইউনিক্স ডিস্ট্রোজে / ইত্যাদি / পাসডাব্লুডি বা / ইত্যাদি / গোষ্ঠী পরিবর্তন করার সরঞ্জাম নেই .. যদি না আপনি ইয়াস্ট বা স্মিটের মতো কিছু ব্যবহার করেন যা সরঞ্জাম যা সেটিংসকে ক্যাশে করে এবং অতিরিক্ত লেখায় এগুলি হাত সম্পাদনার কোনও ক্ষতি নেই।
মার্ক কোহেন

6
একক ব্যবহারকারীর চেয়ে হাতের সম্পাদনা দ্বারা "সবার লগইন ভাঙা" ভুল করা আরও সহজ।
জর্দান

2
@ জর্ডানম: এমন একটি vipwভুল রয়েছে যা প্রতিরোধ করে preven
eudoxos

4

প্রথমে, পাসওয়ার্ডটি ব্যবহার করে অক্ষম করুন passwd -l username

বিকল্পের জন্য manপৃষ্ঠাতেও নোট করুন :passwd-l

   -l, --lock
       Lock the password of the named account. This option disables a password by changing it to a value which matches no
       possible encrypted value (it adds a ´!´ at the beginning of the password).

       Note that this does not disable the account. The user may still be able to login using another authentication token
       (e.g. an SSH key). To disable the account, administrators should use usermod --expiredate 1 (this set the account's
       expire date to Jan 2, 1970).

       Users with a locked password are not allowed to change their password.

1
এটি পছন্দসই নাও হতে পারে। উদাহরণস্বরূপ ইমেল অ্যাক্সেস করতে তাদের সিস্টেম অ্যাকাউন্টে একটি পাসওয়ার্ডের প্রয়োজন হতে পারে।
জর্ডানম

1
কিছু ইমেল সিস্টেম তাদের নিজস্ব পাসওয়ার্ড পদ্ধতি ব্যবহারের অনুমতি দেয়। আমি কেবল ইমেল পাসওয়ার্ড দিয়ে ডোভকোট এবং এক্সিম ব্যবহার করি। এটি সার্ভারগুলিতে ওয়েবমেল ব্যবহারের অনুমতি দেয় আমি আমার সিস্টেমের পাসওয়ার্ডটি ব্যবহার করব না। ভার্চুয়াল ইমেল ডোমেনগুলির নিজস্ব পাসওয়ার্ড প্রয়োজন কারণ তারা সার্ভারের পাসওয়ার্ড সিস্টেমে সংযুক্ত হয় না।
বিলথোর

2

আপনি chsh কমান্ড ব্যবহার করতে পারেন:

~# chsh myuser

অনুরোধ করা হলে নতুন শেল বিশদ লিখুন:

Login Shell [/bin/sh]: /bin/nologin

বা সংক্ষিপ্ত সংস্করণ:

~# chsh myuser -s /bin/nologin

0

ব্যবহারকারীকে ssh এর মাধ্যমে লগিং এবং এমনকী প্রমাণীকরণ থেকে আটকাতে পোর্ট ফরোয়ার্ডিং সক্ষম করে (যেমন স্টিফেন এখানে বর্ণিত হয়েছে ), আমি ব্যবহারকারীকে সিস্টেমের nobodyব্যবহারকারীর মতো হতে পারি :

  • /etc/shadow( যথাযথ ক্ষেত্রে *বা এর সাথে !!) অবরুদ্ধ পাসওয়ার্ড প্রমাণীকরণ
  • অক্ষম শেল এতে /etc/passwd(যেমন /sbin/nologinসঠিক ক্ষেত্রে)
  • কেবলমাত্র পঠনযোগ্য হোম দির ইন /etc/passwd(উদাহরণস্বরূপ /উপযুক্ত ক্ষেত্রে)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.