এসএফটিপি অনুমতি www- ডেটার মালিকানাধীন ফাইলগুলিতে অস্বীকৃত


23

আমার কাছে অ্যাপাচি এবং পিএইচপি চালানোর জন্য একটি দুর্দান্ত স্ট্যান্ডার্ড সার্ভার রয়েছে। আমি যে অ্যাপটি চালাচ্ছি সেগুলি ফাইল তৈরি করে এবং এগুলি অ্যাপাচি ব্যবহারকারীর মালিকানাধীন www-data। এসএফটিপি-এর মাধ্যমে আমি যে ফাইলগুলি আপলোড করি সেগুলি আমার নিজস্ব ব্যবহারকারীর charlesr। সমস্ত ফাইল www-dataগ্রুপের অংশ । আমার সমস্যাটি হ'ল আমি গ্রুপের অংশ থাকা www-dataসত্ত্বেও এসএফটিপি-র মাধ্যমে মালিকানাধীন যে কোনও ফাইলের সংশোধন বা ওভাররাইট করতে পারি না । আমি কোনও এসএসএইচ সেশনের মাধ্যমে কোনও সমস্যা ফাইলগুলিকে সংশোধন করতে পারি।charlesrwww-data

তাই আমি কী করব তা নিশ্চিত নই। মালিকানাধীন ফাইলগুলি সংশোধন করার জন্য আমি কীভাবে আমার এসএফটিপি সেশনের অনুমতি দেব www-data?

কিছুটা ব্যাকগ্রাউন্ডের জন্য, সার্ভারটি সেট আপ করার সময় আমি নিজেই এই নোটগুলি লিখেছিলাম:

Now set up permissions on `/var/www` where your files are served from by
default:

$ sudo adduser $USER www-data
$ sudo chgrp -R www-data /var/www
$ sudo chmod -R g+rw /var/www
$ sudo chmod -R g+s /var/www

Now log out and log in again to make the changes take hold.

The previous set of commands does the following:

1. adds the current user ($USER) to the `www-data` group;
2. changes `/var/www` to belong to the `www-data` group;
3. adds read/write permissions to the group that `/var/www` belongs to;
4. sets the SGID bit on `/var/www`; this final point bears some explaining.

এবং তারপরে আমি নিজের কাছে এসজিআইডি বিট সেট করার অর্থ কী তা বোঝাতে চলেছি (অর্থাত্ তৈরি হওয়া সমস্ত ফাইল স্বয়ংক্রিয়ভাবে গ্রুপের /var/wwwঅংশ হয়ে যায় www-data)।


হালনাগাদ

মনে হচ্ছে যে সমস্যা অ্যাপ্লিকেশনের বা, আরো নির্দিষ্টভাবে, অ্যাপ্লিকেশন ফ্রেমওয়ার্ক (সৃষ্টি হয়েছিল Kohana ) নির্দিষ্ট ফাইল সেটিং এটা 0644 থেকে লিখেছেন (RW-R - r--); অর্থাৎ গ্রুপ লিখনযোগ্য নয়। এটির সাথে এই ফাইলটিও মালিকানাধীন www-dataছিল যে লগ ইন করার সময় আমি এসএফটিপি-র মাধ্যমে ফাইলগুলি সম্পাদনা করতে পারিনি charlesr। আমি নিশ্চিত না কেন আমি এসএসএইচের মাধ্যমে ফাইলগুলি সম্পাদনা করতে পারি। আমার অনুমান যে আমি অবশ্যই sudo ব্যবহার করা উচিত।

এখানে আমি এখন মার্টি ফ্রিডের অক্লান্ত সহায়তার জন্য ধন্যবাদ ব্যবহার করি , যিনি আমার আগের কৌশলটির ত্রুটিগুলি চিহ্নিত করেছিলেন এবং অবশেষে আমি এটি তৈরি না করা পর্যন্ত লিনাক্স অনুমতিগুলির জগতে আমাকে মেরিনেডে সহায়তা করেছিল। ধন্যবাদ মার্টি!

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

  • ফাইল এবং ডিরেক্টরিগুলির /var/wwwমালিকানা উচিত shouldroot:webmasters
  • সমস্ত ডেভস webmastersগ্রুপের সদস্য হওয়া উচিত
  • এর সমস্ত ডিরেক্টরি এতে /var/wwwসেট করা উচিত: 2775বা u=rwx,g=rwxs,o=rx(rwxrwx-rx)
  • এর সমস্ত ফাইল /var/wwwসেট করা উচিত: 0664বা ug=rw,o=r(rw-rw-r--)

নিম্নলিখিতগুলির মালিকানাধীন হওয়া উচিত www-data:webmasters(অর্থাত্‍ এগুলি সেই ডিরেক্টরিগুলি যা অ্যাপাচি লিখতে সক্ষম হতে হবে):

  • আবেদন / ক্যাশে
  • আবেদন / লগ
  • আপলোড
  • client_helpers / আপলোড

কিভাবে

/var/wwwআপনার ফাইলগুলি যেখানে ডিফল্টরূপে দেওয়া হয় সেখানে অনুমতি সেট আপ করতে :

  1. sudo addgroup webmasters
  2. sudo adduser $USER webmasters
  3. sudo chown -R root:webmasters /var/www
  4. sudo find /var/www -type f -exec chmod 664 {} \;
  5. sudo find /var/www -type d -exec chmod 775 {} \;
  6. sudo find /var/www -type d -exec chmod g+s {} \;
  7. sudo chown -R www-data:webmasters application/cache/ [ইত্যাদি ...]

পরিবর্তনগুলি ধরে রাখতে লগ আউট এবং আবার লগ ইন করুন।

পূর্ববর্তী কমান্ডগুলি নিম্নলিখিতটি করে:

  1. নামে একটি নতুন গ্রুপ তৈরি করুন webmasters; যে সমস্ত ব্যবহারকারীদের অ্যাপ্লিকেশন ফাইলগুলিতে রাইটিং অ্যাক্সেস দরকার তারা এই গ্রুপে যুক্ত করা হবে।
  2. বর্তমান ব্যবহারকারী ( $USER) কে webmastersগ্রুপে যুক্ত করুন।
  3. মালিক পরিবর্তন /var/wwwকরার rootএবং গ্রুপ webmastersগ্রুপ।
  4. যোগ করা 664 অনুমতি (-rw-RW-r--) এ সমস্ত ফাইল /var/www
  5. যোগ করা 775 অনুমতি সমস্ত ডিরেক্টরি করার জন্য (drwxrwxr-X) /var/www
  6. এসজিআইডি বিট সেট করে /var/wwwএবং এতে সমস্ত ডিরেক্টরি; এই চূড়ান্ত পয়েন্ট কিছু ব্যাখ্যা বহন করে। এটিও নোট করুন যে আপনি একই জিনিসটি করতে আপনার chmod অষ্টালের সামনে (যেমন 2644) একটি 2 রাখতে পারেন put
  7. মালিককে www-data(অ্যাপাচি এর ব্যবহারকারী) এবং সরবরাহিত ডিরেক্টরিগুলির গোষ্ঠীতে সেট করে webmaster। এটি নিশ্চিত করে যে ডিরেক্টরিটি আপাচি এবং webmastersগ্রুপের যে কেউ লিখেছেন able অন্যান্য সমস্ত ডিরেক্টরি যা লিখনযোগ্য হতে হবে তার জন্য একই করুন।

উত্তর:


10

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

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

সম্ভবত আমি কিছু মিস করছি তবে আপনার সমস্যাটি মোটামুটি সোজা হওয়া উচিত। Sftp ব্যবহার করে লগইন করা ব্যবহারকারীকে গ্রুপ www-ডেটার সদস্য হওয়া দরকার এবং আপনি যে ফাইলগুলি সংশোধন করতে চেষ্টা করছেন সেটি অবশ্যই গ্রুপ www-ডেটার জন্য লেখার অনুমতি থাকতে হবে। আমার কাছে এটি বোধগম্য নয় যে আপনি ফাইলগুলি এসএসএস ব্যবহার করে সংশোধন করতে পারবেন তবে এসএফটিপি ব্যবহার করবেন না; আপনি কি নিশ্চিত যে আপনি উভয়ের জন্য একই অ্যাকাউন্টে লগ ইন করছেন? Sftp এ, আপনি !groupsআপনার গ্রুপগুলি তালিকাভুক্ত করতে বা !whoamiআপনি কোন লগইন নামটি ব্যবহার করছেন তা যাচাই করার মতো কমান্ড সন্নিবেশ করতে পারেন । ফলাফলগুলি আপনি ssh ব্যবহার করে যা দেখছেন তার সাথে মিলবে (একই কমান্ড বিয়োগ বিস্মৃতিতে) with

আপনার যদি sftp থেকে chmod, chown, chgrp ব্যবহার করতে সক্ষম হন তবে আপনার যদি এটি করার অনুমতি পান।

যাইহোক, আমি মনে করি আপনার তালিকায় কমপক্ষে একটি সুন্দর বাজে কমান্ড রয়েছে:

sudo chmod -R g+rw /var/www

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

দ্রষ্টব্য: এটি আমার পক্ষে একটি ত্রুটি ছিল। এটি নির্দেশ করার জন্য ডোনালালফার্টিকে ধন্যবাদ, এটি "g" নির্দিষ্ট করে, "ক" নয়, সুতরাং এটি কেবল গোষ্ঠী অনুমতিগুলি পরিবর্তন করে। আমার ক্লান্ত পুরাতন চোখ (বা একটি খারাপ ফন্ট) অবশ্যই এটি "ক" হিসাবে পড়েছে।

স্পষ্টির জন্য সম্পাদনা

সাধারণত, অ্যাপাচি দ্বারা নির্মিত ফাইলগুলি কেবলমাত্র www-ডেটা গ্রুপ এবং অন্যান্য সমস্ত ব্যবহারকারীর জন্যই কেবল পঠনযোগ্য, / var / www-এ মূল মালিকানাধীন ফাইলগুলির মতো। সুতরাং, কাউকে www-ডেটাতে সদস্য করার কোনও কারণ থাকতে হবে না। ইস্যুটি সবাইকে লেখার অ্যাক্সেস দিচ্ছে, এটি একটি ভিন্ন ঘটনা। এটি আপনার সাইটের মধ্যে নির্দিষ্ট ডিরেক্টরি উপলভ্য করে করা উচিত এবং এটি chmod ব্যবহার করে করা যেতে পারে হয় হয় sudo দিয়ে, সম্ভবত এটি রুটের মালিকানাধীন, অথবা মালিক নিজে তৈরি করে এবং sudo ব্যবহার না করে।

আপনার যদি এমন আরও ডেভস থাকে যা পুরো সাইটের অ্যাক্সেসের প্রয়োজন হয়, যখন আপনি কোনও ব্যবহারকারী + গোষ্ঠী যেমন "ওয়েবমাস্টার" তৈরি করতে চান, তখন তাকে সাইটের মালিক বানান, সেই গোষ্ঠীকে লেখার অনুমতি দিন এবং সমস্ত ডেভস সদস্য বানাতে চান যে দলের। তাই সাইট ডিরেক্টরিগুলির তালিকা এমন কিছু হবে:

drwxrwxr-x  ##  webmasters     webmasters   #### ####-##-## ##:##  mysite.com

আরও সম্পাদনা

আমি তখন থেকেই বুঝতে পেরেছি যে আপনাকে কেবল একটি গ্রুপ "ওয়েবমাস্টার" তৈরি করার দরকার নেই। তারপরে ফাইলগুলি রুটের দ্বারা মালিকানাধীন হতে পারে: ওয়েবমাস্টারগুলি, অর্থাৎ রুটের মালিক, তবে ওয়েবমাস্টারগুলি গ্রুপ।

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

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

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

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

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


হাই @ শহীদ-ভাজা, উত্তরের জন্য ধন্যবাদ, এটি আমাকে চেষ্টা করার জন্য প্রচুর পরিমাণে দেয়। করছেন। তোমার প্রশ্নগুলো. আমি বিভিন্ন উত্স থেকে একসাথে তথ্য পাইস করেছি (তাই কেন আমি এটি নিজের ব্যবহার-নির্দেশিকাতে লিখেছিলাম) এবং সঠিক উত্সটি মনে করতে পারি না। যদিও আমি এই নির্দিষ্ট উত্সটি (সমাধান 1) ব্যবহার করি নি (আমি কেবল এটি সন্ধান করেছি), এটি আমার সিদ্ধান্তের জন্য একটি ভাল যুক্তি দেয়। আপনি যে অ্যাপাচি গাইডের উল্লেখ করেছেন তাতে এটি 'ওয়েবমাস্টারস' নামে একটি গ্রুপ তৈরি করার পরামর্শ দেয়, তবে আমি যদি তা করি তবে আপাচি /var/wwwসেই গ্রুপে যুক্ত না করে কীভাবে লিখবেন ?
চার্লস রোপার

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

1
ধন্যবাদ মার্টি অ্যাপাচি কুকবুকের এই অংশটি আমাকে হাসিয়ে তুলেছে: "আপনার সচেতন হওয়া উচিত যে আপনি যদি 12 জন লোককে আপনার আপাচি সার্ভারে ফাইল অনুমতি সেট করার সঠিক উপায়ের জন্য জিজ্ঞাসা করেন তবে আপনি এক ডজন আলাদা উত্তর পেয়ে যাবেন।" এখনি অগ্রগতি করার জন্য আমার সবচেয়ে বেশি প্রয়োজন আপনি আমাকে দিয়েছেন। আপনার সময়ের জন্য আপনাকে অনেক ধন্যবাদ। :-)
চার্লস রোপার

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

1
আফাইক, সুডো চমড -আর জি + আরডাব্লু / ভার / www 'গ্রুপ' অ্যাক্সেস দেয়। বিশ্ব অ্যাক্সেসের জন্য 'a + rw' ব্যবহার করুন।
ডোনাল লাফার্টি

7

আমি লক্ষ্য করেছি আপনি ব্যবহার করেন নি chown

ফাইল / ফোল্ডারগুলির মালিকানা সঠিকভাবে সেট করতে আপনি পুরো ডিরেক্টরিটি এভাবে সেট করতে পারেন: chown -R www-data:www-data

এটি গোষ্ঠী www-dataএবং ব্যবহারকারীকে মালিকানা সেট করেwww-data

এছাড়াও, আপনি এটি একটি অস্থায়ী workaround হিসাবে করতে পারেন:

chmod 777 /var/data/<filename> অথবা chmod 777 /var/data/<foldername>

প্রয়োজন অনুযায়ী ফাইল (গুলি) সম্পাদনা করুন

chmod 644 /var/data/<filename> অথবা chmod 755 /var/data/<foldername>

"-আর" স্যুইচটি ব্যবহারের ক্ষেত্রে সাবধান থাকুন, কারণ এটি সমস্ত সাব ফাইল এবং ফোল্ডারগুলির অনুমতিও পরিবর্তন করে।

664 হ'ল অ্যাপাচি স্ট্যান্ডার্ড ফাইল অনুমতি এবং 755 স্ট্যান্ডার্ড ফোল্ডারের অনুমতি।

আশাকরি এটা সাহায্য করবে :)

তারকা


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

কী /var/data? এছাড়াও, আপনি কমান্ডটি ব্যবহার করার নির্দেশ দিচ্ছেন chown -R www-data:www-data? আশা করি না /var/www
মার্টি ফ্রাইড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.