প্রশ্ন Apache 2 এর ব্যবহারকারী www-data / var / www এর জন্য অনুমতিগুলির পরিচালনা করার সেরা উপায় কী?


কেউ ফাইল পরিচালনার জন্য একটি চমৎকার সমাধান পেয়েছেন /var/www? আমরা নাম ভিত্তিক ভার্চুয়াল হোস্ট এবং অপাচি 2 ব্যবহারকারী চলমান হয় WWW-ডেটা

আমরা দুটি নিয়মিত ব্যবহারকারী এবং রুট পেয়েছেন। সুতরাং ফাইল সঙ্গে messing যখন /var/www, থাকার পরিবর্তে ...

chown -R www-data:www-data

... সব সময়, এই পরিচালনা করার একটি ভাল উপায় কি?

সম্পূরক প্রশ্ন: তাহলে আপনি কিভাবে অনুমতিতে যান?

এই এক সবসময় সহযোগী উন্নয়ন পরিবেশে একটি সমস্যা হয়েছে।


211
2018-05-11 05:13


উত্স


এছাড়াও দেখুন: আমার ওয়েবসাইটের জন্য ব্যবহার করার জন্য সেরা linux অনুমতি কি কি? - Zoredache


উত্তর:


@ জর্ডচেস এর প্রসারিত করার চেষ্টা করছেন উত্তর, আমি এই একটি নিজেকে যেতে দিতে হিসাবে:

  • একটি নতুন গ্রুপ তৈরি করুন (www-pub) এবং সেই গোষ্ঠীতে ব্যবহারকারীদের যুক্ত করুন

    groupadd www-pub

    usermod -a -G www-pub usera  ## বিদ্যমান গ্রুপগুলিতে যোগ করার জন্য -a ব্যবহার করতে হবে

    usermod -a -G www-pub userb

    groups usera  ## ব্যবহারকারীর জন্য প্রদর্শন গ্রুপ

  • / Var / www এর অধীনে সবকিছুর মালিকানাটি রুট করুন: www-pub

    chown -R root:www-pub /var/www  ## -R recursive জন্য

  • সকল ফোল্ডারের অনুমতি 2775 এ পরিবর্তন করুন

    chmod 2775 /var/www  ## 2 = সেট গ্রুপ আইডি, 7 = মালিকের (রুট), 7 = গ্রুপের জন্য RWX (www-pub), 5 = বিশ্বের জন্য RX (apache www-data ব্যবহারকারী সহ)

    সেট গ্রুপ আইডি (SETGID) বিট (2) সেই ফোল্ডারে তৈরি করা সমস্ত নতুন ফাইল / ফোল্ডারগুলিতে গোষ্ঠী (www-pub) অনুলিপি করে। অন্যান্য বিকল্পগুলি SETUID (4) ব্যবহারকারী আইডি অনুলিপি করতে এবং STICKY (1) যা আমি মনে করি শুধুমাত্র মালিককে ফাইলগুলি মুছতে দেয়।

    একটি আছে -R recursive বিকল্প, কিন্তু যে ফাইল এবং ফোল্ডার মধ্যে পার্থক্য হবে না, তাই আপনি আছে খুঁজে ব্যবহার করুন, তাই ভালো:

    find /var/www -type d -exec chmod 2775 {} +

  • সব ফাইল 0664 এ পরিবর্তন করুন

    find /var/www -type f -exec chmod 0664 {} +

  • আপনার ব্যবহারকারীদের 0002 যাও umask পরিবর্তন করুন

    Umask ডিফল্ট ফাইল তৈরির অনুমতিগুলি নিয়ন্ত্রণ করে, 0002 এর অর্থ ফাইলগুলিতে 664 এবং ডিরেক্টরি 775. এটি স্থাপন করা (সম্পাদনা করে umask নীচে লাইন /etc/profile আমার ক্ষেত্রে) অর্থ একটি ব্যবহারকারী দ্বারা তৈরি ফাইলগুলি www-group এর অন্যান্য ব্যবহারকারীদের দ্বারা লিখিতযোগ্য হবে না chmod তাদের।

ফাইল এবং ডিরেক্টরি তৈরি করে এবং মালিক, গোষ্ঠী এবং অনুমতিগুলি যাচাই করে এটি সব পরীক্ষা করুন ls -l

দ্রষ্টব্য: আপনার গ্রুপগুলি কার্যকর করার জন্য আপনাকে লগআউট / ইন করতে হবে!


201
2017-09-15 05:11



@ টম গ্রেট আপনি এটি ব্যবহার করার পরামর্শ দিচ্ছেন findএই জন্য কমান্ড। যদি আপনার প্রচুর ফাইল / ডিরেক্টরি থাকে এবং আপনি GNU সন্ধান ব্যবহার করেন তবে একটি ছোট পারফরম্যান্স টিপ আমি ব্যবহার করব + পরিবর্তে \; যাতে কমান্ড হবে একাধিক ফাইল কাজ কারণ "প্রতিবার ফাইলের পরিবর্তে একবারে যতটা সম্ভব ফাইলগুলিতে কমান্ড চালানো দ্রুত। এটি করার সময় প্রতিটি সময় কমান্ডটি শুরু করার সময় এটি সংরক্ষণ করে।" এছাড়াও, টাইপ করা সহজ, কারণ এটি ব্যাকস্ল্যাশের প্রয়োজন নেই। - aculich
@ অকলিচের পরামর্শের সাথে আপডেট করা ++ ব্যবহার করা হয়েছে; - Tom
@SunnyJ। এটি (বাইরের উদ্ধৃতি ছাড়াই) চেষ্টা করুন: "খুঁজুন / var / www -type f -exec chmod 0664 '{}' \ +" এটি চেষ্টা করুন। '{}' এবং \+ এর মধ্যে একটি স্থান আছে। - Buttle Butkus
@ টম- এটা ভাঙার উপায়, ধন্যবাদ। শুধু একটি নোট- আমি মনে করি "ব্যবহারকারীর আইডি অনুলিপি করার জন্য SETUID (4)" আপনার উত্তর হিসাবে অন্তর্ভুক্ত করা হয়েছে ভুল- সেটিকে লিনাক্স / ইউনিক্সগুলিতে ডিরেক্টরিগুলিতে প্রয়োগ করার পরে উপেক্ষা করা হয় - সূত্র - Yarin
ঠিক আছে, তাই দ্বারা usera এবং userb তুমি বোঝাতে চাচ্ছ www-data এবং ftpuser ? আমি কোনো উল্লেখ সঙ্গে এই খুব বিভ্রান্তিকর খুঁজে পাওয়া যায় নি www-data, যা মূল প্রশ্ন ছিল। এছাড়াও, মালিক সেটিং করার পয়েন্ট / সুবিধা কি root? আমরা এটা সেট করা উচিত ftpuser? - gskema


আমি পুরোপুরি নিশ্চিত নই যে আপনি অনুমতিগুলি কীভাবে কনফিগার করতে চান, তবে এটি আপনাকে একটি সূচনা দিবে। সম্ভবত ভাল উপায় আছে। আমি মনে করি আপনি উভয় ব্যবহারকারীরা / var / www /

  • একটি নতুন গ্রুপ তৈরি করুন (www-pub) এবং সেই গোষ্ঠীতে ব্যবহারকারীদের যুক্ত করুন।
  • / Var / www এর অধীনে সবকিছুর মালিকানাটি রুট করুন: www-pub।
  • সকল ফোল্ডারের অনুমতি 2775 এ পরিবর্তন করুন
  • সব ফাইল 0664 এ পরিবর্তন করুন।
  • আপনার ব্যবহারকারীদের 0002 যাও umask পরিবর্তন করুন

এর অর্থ আপনার ব্যবহারকারীদের দ্বারা তৈরি কোনও নতুন ফাইল ব্যবহারকারীর নাম হওয়া উচিত: www-pub 0664 এবং যে কোন ডিরেক্টরি তৈরি করা হবে ব্যবহারকারী নাম: www-pub 2775. অ্যাপাচি 'অন্যান্য ব্যবহারকারীর উপাদান' এর মাধ্যমে সবকিছুতে অ্যাক্সেস পড়বে। ডিরেক্টরিগুলির উপর SETGID বিট ফোল্ডারগুলি মালিকানাধীন গোষ্ঠীর মালিকানাধীন সমস্ত ফাইলকে বাধ্য করবে। লেখার বিট সেট করা আছে কিনা তা নিশ্চিত করতে উমস্ককে সামঞ্জস্য করা দরকার যাতে গোষ্ঠীর যে কেউ ফাইল সম্পাদনা করতে সক্ষম হবে।

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


59
2018-05-11 05:49



সম্ভাব্য সংযোজন - ওয়েব ক্যাশার দ্বারা www-data: www-data এবং 775 এ লিখতে হবে এমন ক্যাশে / আপলোড ডিআইআর সেট করুন। - gacrux
'অন্যান্য' অনুমতিগুলির উপর নির্ভর করার পরিবর্তে ব্যবহারকারীরা অপাচা গোষ্ঠীতে যুক্ত করতে এটিও কাজ করবে? যদি আপনি যা করছেন তা আপলোড করা হচ্ছে এবং সেগুলি ফাইলগুলিকে apache দ্বারা পাঠযোগ্য হতে হবে তবে একটি তৃতীয় গোষ্ঠী কেবল তখনই দরকারী বলে মনে হচ্ছে যদি আপনি সেগুলি সম্পাদনা করতে চান। - Simurr
কোন সুযোগ আপনি এই সামান্য @ Zoredache প্রসারিত করতে পারেন? আমি rwx বিট, chmod, chown, adduser, usermod মৌলিক ব্যবহার grok, কিন্তু আপনি octal অনুমতি, উমস্ক এবং অতিরিক্ত যে অতিরিক্ত অতিরিক্ত অঙ্ক দিয়ে আমাকে হারিয়েছেন। আপনার রূপরেখার পদ্ধতিতে বর্ণিত কিছু নমুনা কমান্ড ব্যাপকভাবে প্রশংসা করা হবে। - Tom
এই ভাবে প্রতিটি ব্যবহারকারীর প্রতিটি অন্যান্য ব্যবহারকারী ফাইল অ্যাক্সেস করতে পারেন! এর অর্থ ব্যবহারকারী A userb এর config.php পড়তে পারে ... উদাহরণস্বরূপ, এটির MySQL প্রমাণীকরণটি স্টোল করছে - drAlberT
Acl ব্যবহার করে আপনি নিরাপত্তা এবং সহযোগীতা উভয় হ্যান্ডেল করতে পারেন :) - drAlberT


আমি আপনাকে সহায়ক হতে POSIX ACL (এক্সেস কন্ট্রোল তালিকা) খুঁজে পেতে পারে মনে হয়। তারা ব্যবহারকারীর তুলনায় একটি সূক্ষ্ম-অনুমোদিত অনুমতি মডেলের অনুমতি দেয়: গ্রুপ: অন্যান্য মডেল। আমি সরাসরি তাদের মাথায় রাখা সহজ পেয়েছি কারণ আমি আরো স্পষ্ট হতে পারি এবং ফাইল সিস্টেমের শাখার জন্য "ডিফল্ট" আচরণও সেট করতে পারি।

উদাহরণস্বরূপ, আপনি প্রতিটি ব্যবহারকারীর অনুমতিগুলি স্পষ্টভাবে উল্লেখ করতে পারেন:

setfacl -Rm d:u:userA:rwX,u:userA:rwX /var/www
setfacl -Rm d:u:userB:rwX,u:userB:rwX /var/www

অথবা আপনি কিছু ভাগ করা গ্রুপের উপর ভিত্তি করে এটি করতে পারেন:

setfacl -Rm d:g:groupA:rwX,u:groupA:rwX /var/www

এবং সম্ভবত আপনি আপনার অ্যাপাচি ব্যবহারকারীকে শুধুমাত্র পঠন হিসাবে রাখতে চান

setfacl -Rm d:u:www-data:rX,u:www-data:rX /var/www

ম্যান পৃষ্ঠাগুলি:

অভিভাবকসংবঁধীয়


39
2018-05-11 16:26



এটা রাস্তা ! +1 টি - drAlberT
জয়ী জন্য এসিএল +1 ... আরো দেখুন serverfault.com/a/360120/41823 - Yarin
ACL বনাম মৌলিক অনুমতি বনাম কোন কর্মক্ষমতা downside আছে যদি আমি আশ্চর্য। - Buttle Butkus
দুর্ভাগ্যবশত, ACL প্রায়ই ইনস্টলেশনের / বিতরণে অনুপস্থিত। আমি পরিচালনা করি এমন প্রতিটি সার্ভারে কার্নেল সংকলন করা বা খারাপ, কখনও কখনও ফাইল সিস্টেম পরিবর্তন। প্লাস ব্যাক আপ করার সময় আপনি খুব সতর্কতা অবলম্বন করা আবশ্যক, বিশেষ করে যদি আপনি সার্ভার স্যুইচিং হয়। এসিএল দুর্দান্ত কিন্তু তার বর্তমান সমর্থন এত কম যে আমি সার্ভার এবং আশেপাশের সবকিছুতে সম্পূর্ণ নিয়ন্ত্রণ না থাকা সত্ত্বেও তার বিরুদ্ধে সুপারিশ করব। কিন্তু এসিএল ইঙ্গিত করার জন্য +1 যেখানে এটি সত্যিই জ্ঞান করে! - Ninj
ভাল উত্তর +1; Apache প্রক্রিয়া পরিবর্তন / লেখার অনুমতি পরিবর্তন সম্পর্কে একটি নোট (www-data উদাহরণস্বরূপ) সম্পূর্ণ সাইটের জন্য (শুধুমাত্র সেটফ্যাকল বা সিএমডোর মাধ্যমে - অথবা উভয়ই) -> এটি সম্ভবত সব লেখা ব্লক করবে (প্লাগইন / মডিউল আপলোড / উদাহরণস্বরূপ সর্বাধিক সিএমএস ব্রাউজারের দিক থেকে আপডেট করা)। আমি বিশ্বাস করি অনেকগুলি জনপ্রিয় ব্যক্তি শুধুমাত্র ব্যবহারকারী স্তরের স্তরের লেখার অ্যাক্সেসের জন্য গোষ্ঠী স্তরের জন্য পরীক্ষা করে না। আপনি এখনও আপডেট করতে পারেন তবে আপডেট অবশ্যই প্রয়োগ করা উচিত এবং লেখার ফোল্ডারগুলির জন্য কোনও কাস্টম অনুমতি (লগ / temp / আপলোড / ইত্যাদি)। শুধুমাত্র আপনার সাইটটি যদি এটির সাথে কাজ করে তবে শুধুমাত্র দুর্দান্ত সুরক্ষা .. সর্বাধিক সর্বাধিক নয়। - bshea


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


নিরাপদ ওয়েব সার্ভার এবং সহযোগী বিকাশের জন্য কেবলমাত্র ফাইলের অনুমতিগুলির চেয়ে আরও বেশি কিছু আছে:

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

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

  • ব্যবহার এসএসএইচ ফাইল ট্রান্সফার প্রোটোকল (এসএফটিপি)। নিরাপত্তার জন্য FTP ব্যবহার করা উচিত (যেমন এটি পাসওয়ার্ড এবং বিষয়বস্তু উভয়ই পাঠ্য পাঠ্য পাঠায়), এটি নিরাপদ বিকল্প SFTP এরও একটি বৈশিষ্ট্য রয়েছে যা সহযোগী ওয়েব ডেভেলপমেন্টের জন্য নিখুঁত সমাধান।

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

    প্রতিটি বিকাশকারী keypair উৎপন্ন এবং ব্যক্তিগত কী গোপন রাখতে পারেন। তারপর, পাবলিক কী যোগ করা হয় ~/.ssh/authorized_keys ডেভেলপার কাজ করছে প্রত্যেক ওয়েবসাইট ব্যবহারকারী অ্যাকাউন্টের জন্য ফাইল। এই পাসওয়ার্ড এবং লগইন পরিচালনার জন্য অনেক সুবিধা আছে:

    • প্রতিটি ডেভেলপার ব্যবহারকারীর প্রতি-সাইট ব্যবস্থাপনার সাথে জড়িত সমস্ত পাসওয়ার্ড মনে রাখার বা সঞ্চয় করার জন্য কোনও ওয়েব সাইটগুলিতে অ্যাক্সেস পেতে পারে।

    • প্রতিবার কেউ কোম্পানিকে ছেড়ে গেলে পাসওয়ার্ড পরিবর্তন এবং শেয়ার করতে হবে।

    • আপনি খুব শক্তিশালী পাসওয়ার্ড ব্যবহার করতে পারেন অথবা পাসওয়ার্ড ভিত্তিক লগইন সম্পূর্ণরূপে নিষ্ক্রিয় করতে পারেন।

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

    যেমন দেখুন NeverEndingSecurity এর লিনাক্সে পৃথক ব্যবহারকারী / ইউআইডি এবং গ্রুপের সাথে php-fpm চালান। HowtoForge এর মত টিউটোরিয়াল আছে উপুন্টু 16.04 এ আপাচারে পিএইচপি-এফপিএম ব্যবহার করে যে ব্যবহারকারী বিচ্ছেদ মাধ্যমে নিরাপত্তা বৃদ্ধি করার জন্য পিএইচপি-এফপিএম ব্যবহার করে না, সার্ভার জুড়ে একটি একক এফপিএম সকেট ব্যবহার করার নির্দেশিকা।


7
2018-05-10 10:03