এমন কোনও এসএসএইচ ব্যবহারকারী তৈরি করতে যার কাছে কেবল নির্দিষ্ট ফোল্ডারে অ্যাক্সেসের অনুমতি রয়েছে


47

আমি এসএসএইচ ইনস্টল করেছি, তবে আমি আবিষ্কার করেছি যে আমি যদি আমার মূল অ্যাকাউন্টটি উবুন্টুতে লগইন করতে ব্যবহার করি তবে এতে অনেক বেশি অনুমতি রয়েছে।

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

উত্তর:


49

এটি সহজ। আপনার অ্যাক্সেস পাওয়ার জন্য তার প্রয়োজন অনুসারে তার হোম ডিরেক্টরি সেট করে একটি নতুন ব্যবহারকারী তৈরি করুন (এই কমান্ডটি অবশ্যই sudoরুট শেলের নীচে বা চালানো উচিত ):

adduser --home /restricted/directory restricted_user

এটি একটি ব্যবহারকারী restricted_user, ডিরেক্টরি তৈরি করবে /restricted/directoryএবং তারপরে ডিরেক্টরিতে অনুমতি নির্ধারণ করা হবে যাতে ব্যবহারকারী এতে লিখতে পারেন। এটি ডিফল্টরূপে অন্য কোনও ডিরেক্টরিতে লেখার ক্ষমতা রাখে না।

আপনার যদি ইতিমধ্যে ডিরেক্টরিটি থাকে তবে আপনি adduserএকটি --no-create-homeবিকল্প সংযোজন করে কমান্ড চালাতে পারেন এবং ম্যানুয়ালি অনুমতিগুলি সেট করতে পারেন (মূল অধিকারগুলি সহ) যেমন:

chown restricted_user:restricted_user /restricted/directory
chmod 755 /restricted/directory

আপনার যদি এই ব্যবহারকারীর পক্ষে এমনকি বিশ্ব-লিখনযোগ্য ডিরেক্টরিগুলি অ্যাক্সেসযোগ্যও করা দরকার হয় তবে দুটি বৈকল্পিক রয়েছে।

1) আপনি যদি ব্যবহারকারীকে একটি ইন্টারেক্টিভ শেল সেশন সরবরাহ করতে চান, তবে ক্রুট জেল তৈরি করার বিষয়ে এই ম্যানুয়ালটি অনুসরণ করার বিষয়টি বিবেচনা করুন (আপনার /restricted/directory)।

এর পরে, আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন sshd_config:

Match user restricted_user
  ChrootDirectory /restricted/directory

2) যদি আপনার কেবল তার সংযোগের শেষ পয়েন্ট এবং আপনার হোস্টের মধ্যে ফাইলগুলি অনুলিপি করার প্রয়োজন হয় তবে সবকিছুই খুব সহজ। আপনার শেষে এই লাইনগুলি যুক্ত করুন sshd_config:

Match user restricted_user
  ForceCommand internal-sftp
  ChrootDirectory /restricted/directory

Subsystem       sftp    internal-sftp

তারপরে শুরুতে Subsystem sftp /usr/lib/openssh/sftp-serverএকটি হ্যাশ ( #) চিহ্ন রেখে মন্তব্য করুন ।

আপনার এসএসএইচ সার্ভারটি পুনঃসূচনা করার পরে (এটি পুনরায় আরম্ভের সময় ইন্টারেক্টিভ সেশনগুলি হত্যা করে না, সুতরাং এটি নিরাপদ এমনকি যদি আপনি কোনও কিছুর ভুল কনফিগার করেছেন; এছাড়াও, আপনি এখনও লগ ইন করতে সক্ষম হয়েছেন কিনা তা পরীক্ষা করে দেখার আগে আপনার চলমান সেশনটি বন্ধ না করে), সমস্ত কিছু কাজ করা উচিত উদ্দেশ্যে.


1
আমি চেষ্টা করেছি, তবে মনে হচ্ছে আমি এখনও সিডি করতে পারি .. এবং উপরের ডিরেক্টরিটি ব্রাউজ করতে পারি। এবং যখন আমি উচ্চ ডিরেক্টরিতে vi a.txt ব্যবহার করি তবে এটি প্রদর্শিত হয়: চালিয়ে যেতে enter বা কমান্ড টিপুন এবং আমি vi ছাড়তে পারি না
বোকা

1
ব্যবহারকারীর যদি কেবল এসএসএফএস অ্যাক্সেস থাকতে পারে তবে আমি কি বিকল্প # 2 ব্যবহার করতে পারি?
ফ্লিকফ্লিফ্লি

1
সবকিছু ঠিকঠাক কাজ করে, এ ছাড়া আমার লেখার অনুমতি নেই। এই সীমাবদ্ধ ডিরেক্টরিটির জন্য আমি কীভাবে লেখার অনুমতি সেট করতে পারি। যদি আমি chmod 775 ব্যবহার করি তবে ব্যবহারকারী আর লগইন করতে পারবেন না।
আমার নাম-ই

3
Subsystem sftp internal-sftpআপনার Matchব্লকের উপরে দ্বিতীয় উদাহরণে লাইনটি লিখতে হবে । অন্যথায় ssh একটি ত্রুটি মুদ্রণ করবে এবং শুরু হবে না।
টিক0

1
স্পোলার সতর্কতা:
সাইকেল

5

সীমাবদ্ধ ব্যবহারকারী তৈরি করার সহজ উপায় যা প্রদত্ত ডিরেক্টরিটি (যেমন, উপরের ডিরেক্টরিতে ইত্যাদি) ঘুরে বেড়াতে পারে না এবং ব্যবহারের জন্য সীমিত / বাছাই করা কমান্ডের সেট রয়েছে, সেগুলি সীমাবদ্ধ শেল ব্যবহার করা। সূত্র:

http://man.he.net/man1/rbash

প্রথমে rbash(মূল ব্যবহারকারী হিসাবে চালানো) নামক একটি সিমিলিংক তৈরি করুন ।

ln -s /bin/bash /bin/rbash

তারপরে এই সীমাবদ্ধ শেলটি দিয়ে কেবল একটি সাধারণ ব্যবহারকারী তৈরি করুন এবং এটি পছন্দসই ফোল্ডারে বাড়ির দির সেট করুন:

useradd -s /bin/rbash -d /home/restricted_folder username

এমনকি সীমাবদ্ধ শেল ব্যতীত, আপনি যদি স্পষ্টভাবে এই ব্যবহারকারীকে সুডোরের তালিকায় বা কোনও বিশেষ গোষ্ঠীতে যুক্ত না করেন তবে এটি ডিফল্টরূপে সীমাবদ্ধ থাকবে।

সীমাবদ্ধ শেলটির সাহায্যে, নিম্নলিখিতগুলি অনুমোদিত বা সম্পাদিত নয়:

  • সিডি সহ ডিরেক্টরি পরিবর্তন করা হচ্ছে

  • শেল, পাথ, এনভি, বা বাস_এনভির মান নির্ধারণ বা আনসেট করা

  • কমান্ডের নাম উল্লেখ করে /

  • একটি / যুক্তি হিসাবে একটি ফাইলের নাম উল্লেখ করে। বিল্টিন কমান্ড

  • হ্যাশ বিল্টিন কমান্ড--অপশনটির জন্য আর্গুমেন্ট হিসাবে একটি স্ল্যাশযুক্ত ফাইলের নাম উল্লেখ করুন

  • শুরুতে শেল পরিবেশ থেকে ফাংশন সংজ্ঞা আমদানি করা হয়

  • শুরুতে শেল পরিবেশ থেকে SHELLOPTS এর মান পার্স করা ars

  • >,> |, <>,> &, &> এবং >> রিডাইরেক্ট আয়ন অপারেটর ব্যবহার করে আউটপুট পুনঃনির্দেশ

  • এক্সেল বিল্টিন কমান্ড ব্যবহার করে শেলটি অন্য কমান্ডের সাথে প্রতিস্থাপন করতে হবে

  • সক্ষম বিল্টিন কমান্ডটিতে -f এবং -d বিকল্পের সাথে বিল্টিন কমান্ড যুক্ত বা মুছুন

  • অক্ষম শেল বিল্টিনগুলি সক্ষম করতে সক্ষম বিল্টিন কমান্ড ব্যবহার করুন

  • কমান্ড বিল্টিন কমান্ডে -p বিকল্প উল্লেখ করা হচ্ছে

  • সেট + আর বা সেট + ও বাধা সহ সীমাবদ্ধ মোড বন্ধ করে দেওয়া হচ্ছে।

এই নিষেধাজ্ঞাগুলি যে কোনও প্রারম্ভিকালীন ফাইলের পরে প্রয়োগ করা হয়

তদ্ব্যতীত / allyচ্ছিকভাবে, ব্যবহারকারীকে ব্যবহারের জন্য সীমিত / বাছাই করা কমান্ডের সীমাবদ্ধ করতে, আপনি সেই ব্যবহারকারীর কাছে।

PATH=$HOME/bin

এবং সেই ব্যবহারকারীর জন্য commands / বিন ফোল্ডারে আপনি যে কমান্ডের অনুমতি দেবেন তা সিমিলিং করুন:

ln -s /bin/ls /home/restricted_folder/bin/ls
ln -s /bin/mkdir /home/restricted_folder/bin/mkdir
ln -s /bin/rm /home/restricted_folder/bin/rm

প্রভৃতি

আছে HTH


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