খারাপ মালিকানা বা ক্রুট ডিরেক্টরি উপাদানটির মোডগুলি


57

আমি MY_USER ব্যবহারকারী তৈরি করেছি। তার বাড়ির দিরটিকে / var / www / RESTRICTED_DIR এ সেট করুন, এটিই সেই পথেই সীমাবদ্ধ থাকতে হবে। তারপরে আমি sshd_config সম্পাদনা করে সেট করেছি:

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

তারপরে আমি আবার শুরু করলাম ssh। RESTRICTED_DIR এর MY_USER মালিক (এবং গ্রুপের মালিক) তৈরি করেছেন এবং এটি 755 এ ছোড করেছেন I

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

আমি sshd_config থেকে 2 টি লাইন সরিয়ে ফেললে ব্যবহারকারী সফলভাবে লগইন করতে পারে। অবশ্যই এটি সমস্ত সার্ভার অ্যাক্সেস করতে পারে যদিও। সমস্যা কি? এমনকি আমি RESTRICTED_DIR কে মূলের কাছে ছুঁড়ে ফেলার চেষ্টা করেছি (যেহেতু আমি কোথাও পড়েছি যে কেউ এটির ফলে একই সমস্যাটি সমাধান করেছে)। ভাগ্য নেই..

উত্তর:


73

থেকে পৃষ্ঠা :man

ChrootDirectory
প্রমাণীকরণের পরে chroot (2) এর ডিরেক্টরিতে একটি নামের পাথের নাম নির্দিষ্ট করে। পাথনামের সমস্ত উপাদান অবশ্যই মূল-মালিকানাধীন ডিরেক্টরি হতে হবে যা অন্য কোনও ব্যবহারকারী বা গোষ্ঠী দ্বারা লিখনযোগ্য নয় । ক্রুটের পরে, sshd (8) কার্যকারী ডিরেক্টরিটি ব্যবহারকারীর হোম ডিরেক্টরিতে পরিবর্তন করে।

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


এটা আমাকে পাগল করছে। আমি "কাওন রুট: রুট-আর / ভার / www" করেছি; "chmod 775 -R / var / www /"; "ব্যবহারকারীর -a -G মূল www-ডেটা"। তবে আমি এখনও MY_USER
মাল্টিফর্মইঞ্জেনো ২

1
প্রয়োজন পাথ উপাদান হয় ( /, /var, /var/www, এবং /var/www/RESTRICTED_DIRসর্বোপরি নিরাপত্তা প্রয়োজনীয়তা পূরণ করতে হবে)। এটি সত্যিকারের ক্রোট (ম্যান পেজটি পর্যালোচনা করুন) - আপনার ব্যবহারকারীর হোম ডিরেক্টরিটি /bin
ক্রুটের

2
ঠিক আছে! সমাধান। আমি ক্রোয়েটেড দিরকে একটি স্তর স্থাপন করেছি। তারপরে আমি আসল ক্রোয়েট_ডিরকে 7 777 পার্স দিয়েছি। এটি কাজ করছে :)
মাল্টিফর্মআইঙ্গেনি

1
ম্যানপেজ যা বলছে তা সত্ত্বেও, এবং এমনকি গোষ্ঠীটি 'রুট'-এ সেট করা সত্ত্বেও, এটি কাজ করার আগে আমাকে gw অনুমতি সেট করতে হয়েছিল (উবুন্টু ১৪.০৪)। র manpage বলা উচিত পথনাম সকল উপাদান রুট মালিকানাধীন ডিরেক্টরি যে সব অন্য কোন ব্যবহারকারী বা কোনো গোষ্ঠী দ্বারা লিখনযোগ্য নয় হতে হবে sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
mmell

3
আমি জানি এটি বেশ পুরানো, তবে /var/wwwসরাসরি পাথের জন্য অনুমতিগুলি পরিবর্তনের পরিবর্তে , যা অ্যাপাচি ভেঙে যেতে পারে, আপনি আপনার এসএফটি ডিরেক্টরিটি অন্য কোনও পথে রাখার চেয়ে আরও ভাল হবেন, তারপরে অন্য ডিরেক্টরিতে নির্দেশ করতে অ্যাপাচে ইউআরএল ম্যাপিং ব্যবহার করে । এখানে ডকুমেন্টেশন চেক করুন httpd.apache.org/docs/2.4/urlmapping.html এর অধীনেFiles Outside DocumentRoot
ড্যানিয়েল

32

ক্রুটডাইরেক্টরি ডিরেক্টরি অবশ্যই মূলের মালিকানাধীন এবং 755 মোড থাকতে হবে:

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

ঠিক আছে, এখন সমস্ত ফাইলের /var/www/RESTRICTED_DIRমালিকানা অবশ্যই MY_USERআবশ্যক, যা অবশ্যই www-dataগ্রুপের অন্তর্গত , এবং এর মতো গোষ্ঠী অনুমতিগুলির অনুমতি দেওয়ার জন্য 775 মোড থাকতে হবে:

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

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


3
খুব নিশ্চিত যে এটি sudo usermod -a -G www-data MY_USERগ্রুপ হিসাবে আসার পরে যেমন হওয়া উচিত-G
সিমাইল

এটি কাজ করে তবে আমি ডিরেক্টরিতে নতুন ফাইলগুলি আপলোড করতে পারি না, আমি কেবলমাত্র রুট অ্যাকাউন্ট এবং ব্যবহারকারীর মালিকানার সাথে আগে তৈরি ফাইলগুলি সংশোধন করতে পারি।
dlopezgonzalez

3

আজ কিছু সমস্যা সমাধানের পরে, আমি বুঝতে পারি যে রুট অবশ্যই ডিরেক্টরিতে লিখতে সক্ষম হবে ।

নিম্নলিখিতগুলি কাজ করে না:

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

এটি ঠিক করার সাথে সাথে আমার ক্রুট কাজ শুরু করে।

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.