সুনির্দিষ্ট / অ্যাডমিনের পরিবর্তে নতুন তৈরি ফাইল এবং ফোল্ডারগুলির www-ডেটার মালিক করুন


13

আমি এখন পর্যন্ত অনুমতি নিয়ে লড়াই করছি, এবং অন্য একটি প্রশ্ন পোস্ট করেছি তবে সমস্যাটি কী তা সনাক্ত করেছিলাম, এটি এখনও ঠিক করার কোনও উপায় ছাড়াই।

আমার সেটআপ:

  • ল্যাম্প স্ট্যাক সহ উবুন্টু ডেস্কটপ
  • ৫ টি "ব্যবহারকারী" আমি উবুন্টু সার্ভারে ব্যবহারকারীর তৈরি করেছিলাম sudo useradd -r -s /bin/false USERNAMEএবং যা স্থানীয় নেটওয়ার্ক শেয়ার্ড ফোল্ডারগুলি অ্যাক্সেস করতে ব্যবহার করা হয়, যেমন আমার নেটওয়ার্কের কম্পিউটারগুলিতে / var / www ফোল্ডারে সংযোগ করার জন্য, সাম্বা ব্যবহার করে ভাগ করা হয়েছে।
  • সম্পাদনা: উদ্দেশ্যটি এমন একটি "মাস্টার লোকালহোস্ট" তৈরি করা যেখানে আমার স্থানীয় নেটওয়ার্কের সমস্ত কম্পিউটার স্থানীয়ভাবে একই ওয়েবসাইটে কাজ করতে পারে (আমার কোনও স্থির আইপি ঠিকানা নেই তাই সার্ভারটি অন্য কোথাও থেকে অ্যাক্সেস করা যায় না) ।

আমার সমস্যা:

বর্তমানে যখন আমি /var/www/htmlনেটওয়ার্কের যে কোনও কম্পিউটার ব্যবহার করে একটি নতুন ফোল্ডার তৈরি করি (উদা: ফোল্ডারটি / var / www / html / testite1) তৈরি করে, এই ফোল্ডারটি স্বয়ংক্রিয়ভাবে মালিকানাধীন boris:www-data("বরিস" আমার উবুন্টু ডেস্কটপ ইনস্টলের প্রধান অ্যাডমিন ব্যবহারকারী হিসাবে রয়েছে) , এবং এটি প্রকৃতপক্ষে বোরিসগুলি দেখায়: ls -lনতুন তৈরি ফোল্ডারে চলার সময় www- ডেটা ) যা আমার বর্তমান সেটআপে সমস্যা সৃষ্টি করছে (লাইফইনডগ্রিডের ওয়ার্ডপ্রেসের জন্য ডুপ্লিকেটর প্লাগিন ব্যবহার করে)) তবে আমার /var/wwwএবং আমার দু'জনেরই /var/www/htmlমালিকানা রয়েছেwww-data:www-data

সুতরাং, আমি কীভাবে পারি তা জানতে চাই:

  • Www-ডেটাতে মালিকানা পরিবর্তন করুন: / var / www এবং / var / www / html এর নীচে সমস্ত ফাইল এবং ডিরেক্টরিগুলির www-ডেটা

  • আমার নেটওয়ার্কের যে কোনও ব্যবহারকারীর সাথে আমি যে কোনও ফাইল বা ফোল্ডার তৈরি করব তা স্বয়ংক্রিয়ভাবে www-ডেটা: www-ডেটা দ্বারা মালিকানাধীন হবে (এতে php স্ক্রিপ্টগুলির দ্বারা স্বয়ংক্রিয়ভাবে নির্মিত ফাইলগুলি অন্তর্ভুক্ত রয়েছে কারণ এটি হ'ল ডুপ্লিকেটর প্লাগইন যা করে ভুল না)।

এটা করার কোন উপায় আছে?

দ্রষ্টব্য: আমি লিনাক্স এবং কমান্ড লাইনের সাথে সম্পর্কিত জিনিসগুলির সাথে একটি সুপার নবাগত, তবে আমি দ্রুত ধরা।

দ্রষ্টব্য 2: উমাস্ক ইতিমধ্যে 0002 হিসাবে সেট করা আছে

সম্পাদনা করুন:

এটি চেষ্টা করে:

sudo chown -R www-data:www-data /var/www/

এবং তারপরে সেটুইড এবং সেটগিড বিট সেট করুন:

sudo chmod u+s /var/www/html
sudo chmod g+s /var/www/html

তারপরে লগ-অফ, অ্যাপাচি পুনরায় চালু এবং নেটওয়ার্ক আইপি (স্থানীয় আইপি, স্ট্যাটিক নয়) এর মাধ্যমে আমার সার্ভারের সাথে সংযুক্ত একটি ম্যাক ব্যবহার করে একটি নতুন ফোল্ডার তৈরি করার চেষ্টা করেছে।

আমি রান

ls -l on /var/www/html

আউটপুট এখনও রয়েছে:

drwxr-sr-x 2 boris   www-data  testsite1

বিঃদ্রঃ:

আমি ইতিমধ্যে আমার অ্যাপাচি কনফিগারেশনটি পরীক্ষা করে দেখেছি এবং এনভায়ার্স, এটি ইতিমধ্যে এতে সেট করা আছে:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

সম্পাদনা: আমি এটি পিছনের দিকে চেষ্টা করেছিলাম, উদাহরণস্বরূপ: বোরিসের মালিকানাধীন সবকিছু নির্ধারণ: www-ডেটা এবং আমার envvars অ্যাপাচি কনফিগারেশনটি বরিস: www-ডেটাতে সেট করে। এটা কাজ করেছে!

আমি যা করেছি তা এখানে:

Envvars এ পরিবর্তন করা হয়েছে

export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data

দৌড়ে

sudo chown -R boris:www-data /var/www/

অ্যাপাচেম পুনরায় চালু করেছেন, একটি নতুন ফোল্ডার তৈরি করেছেন, আমার ফাইলগুলি যুক্ত করুন, প্লাগইনটি চালালেন, এখন বলছেন এটি ভাল !!!


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

উত্তর:


11

প্রশ্নের উত্তর # 1: পুনরাবৃত্তিchown

একটি পুনরাবৃত্তির chownফলে আপনি যা চান তার উপর মালিকানা এবং গোষ্ঠী সেট করতে দেয় /var/www/...। আপনার এই আদেশটি ব্যবহার করা উচিত:

sudo chown -R www-data:www-data /var/www/

এটির সাথে, প্রতিটি ফাইল এবং ফোল্ডার সেই মালিকানার অনুমতি নিয়ে সেখানে অভ্যন্তরের হিসাবে সেট করা হবে।


প্রশ্নের উত্তর # 2 এর অর্ধ-উত্তর: setgidবিট

আপনি যদি ফাইলে ডিফল্ট গোষ্ঠীর মালিকানা চান setgidতবে /var/www/htmlফোল্ডারে কিছুটা সেট করুন । ফোল্ডারে উল্লিখিত অনুসারে নতুন গ্রুপগুলি সেই গ্রুপের সাথে তৈরি করা উচিত।

sudo chmod g+s /var/www/html

আপনাকে লেখার অনুমতিগুলি নির্ধারণ করতে হবে, যদিও অন্য যে কোনও ব্যবহারকারী www-dataডিরেক্টরিতে লিখছেন এবং যদি আপনি সতর্ক না হন তবে এটি আপনাকে দু'একটি সুরক্ষা গর্তে খুলতে পারে।

আপনি অনুমতি থাকা শেষ $USER:www-data; তারপরে মালিককে পরিবর্তন করতে আপনি chownপদ্ধতি # 1 তে নির্দেশিত হিসাবে একটি ব্যবহার করুন (যা বলেছে যে সঠিক সেটআপে আপনাকে ওয়েব ফাইলগুলিতে অ্যাক্সেসের জন্য ব্যবহারকারীর মালিকের অনুমতিগুলি নয়, গোষ্ঠী অনুমতিগুলির উপর নির্ভর করা উচিত)।


পিএইচপি ওয়ার্ডপ্রেস সদৃশ সমস্যা

অনুমতিগুলির সাথে সমস্যা হ'ল ব্যবহারকারী / গোষ্ঠী পিএইচপি প্রয়োজন অনুসারে লেখার এবং পড়ার প্রয়োজন হয় এবং সম্ভবত +xডিরেক্টরিতে ডায়ার কাঠামো এবং এগুলি সম্পাদনা করতে পারে।

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

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


আমি
সেটুইড

আমি যা খুজছিলাম ঠিক এইটাই !!!! কেবলমাত্র সমস্যা: এটি কাজ করে না :-( আমি আমার ম্যাকের উপর একটি ফোল্ডার তৈরি করেছি (যেমন উবুন্টু ডেস্কটপ কম্পিউটারের সাথে নয়) এর স্থানীয় আইপি দিয়ে আমার সার্ভারটি অ্যাক্সেস করে I আমি যখন এলএস-এল চালিয়েছি তখনও বরিসের মালিকানাধীন: www- ডেটা: - /
বোরিস শেভেরু

আমি ফাইলগুলিতে ব্যবহারকারীর মালিকানা সেট করেছি কিন্তু ফোল্ডারে নেই? আমি যে ফোল্ডারটি তৈরি করি তা স্বয়ংক্রিয়ভাবে www-ডেটা: www-ডেটার মালিকানাধীন হতে পারে?
বোরিস শেভেরু

ম্যাক লিনাক্সের চেয়ে আলাদা এবং যদি আপনি সত্যিই দুর্ভাগ্য হন তবে এই পদ্ধতিটি কার্যকর হবে না এবং ডিফল্ট ফাইলগুলি সেটআপ করার জন্য আপনাকে কেবল সাধারণ অনুমতিগুলি (যেমন এসিএল এবং অন্যান্য জিনিসগুলি) বাদ দিয়ে আরও অনেক কিছু নিয়ে ঝামেলা করতে হবে will । এছাড়াও, 'কাজ হয়নি' অস্পষ্ট। সংজ্ঞায়িত কাজ করে না এবং প্রশ্নের সম্পাদনা হিসাবে আউটপুটগুলি অন্তর্ভুক্ত করে।
টমাস ওয়ার্ড

1
ডিরেক্টরিগুলিতে প্রয়োগ করা
সেটুইড

6

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

প্রথমে এটি ইনস্টল করুন:

$ sudo apt-get install incron

এর incronমাধ্যমে খোলার /etc/incron.allowমাধ্যমে রুটটি ব্যবহারের অনুমতি দিন :

$ sudo vim /etc/incron.allow

এবং rootফাইলটিতে যুক্ত করুন, তারপরে সংরক্ষণ করুন এবং প্রস্থান করুন।

এর সাথে আপনার ইনক্রন্টাব সম্পাদনা করুন:

$ sudo incrontab -u root -e

এবং এটিতে নিম্নলিখিত লাইনটি যুক্ত করুন:

/var/www/html IN_CREATE /bin/chown -R www-data:www-data /var/www/html/

সংরক্ষণ করুন এবং প্রস্থান.

/var/www/htmlডাইরেক্টোটরিতে একটি ফাইল তৈরি হওয়ার সাথে সাথে এটি স্বয়ংক্রিয়ভাবে চালিত হয়ে যায় www-data:www-data

মুখোমুখি লাইনের ব্যাখ্যা:

/var/www/html যে ডিরেক্টরিটি পর্যবেক্ষণ করা হবে।

IN_CREATEতৈরি করা ফাইলের জন্য নজর রাখবে। এটি ফাইল চেঞ্জ মাস্ক

/bin/chown -R www-data:www-data /var/www/html/ কার্যকর করার জন্য আদেশ / ক্রিয়া।


তারা অযৌক্তিকভাবে এবং সেটগিড ছাড়াই এ জাতীয় কিছু অর্জন করতে পারে - ব্যবহারকারীর মালিকানা সম্ভবত প্রায়শই পরিবর্তিত হওয়া উচিত নয় এবং তারা নিজের ব্যবহারকারীর মালিকানা পুনরায় সেট করতে পারে ... বা এসিএলগুলি ব্যবহার করতে পারে যা ব্যথা হতে পারে
টমাস ওয়ার্ড

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

এই "incron" উপায় কি একমাত্র উপায়? কেন এত জটিল হতে হবে তা বুঝতে পারছি না। আমি যা খুঁজছি তা হ'ল নেটওয়ার্কে থাকা সমস্ত কম্পিউটারের এই সার্ভারে একটি ওয়েবসাইট তৈরি করার একটি সহজ উপায়। শেষ পর্যন্ত আমার কাছে স্ট্যাটিক আইপি না থাকায় (সুতরাং সুরক্ষা কোনও সমস্যা নয়), আপনার মনে অন্য কোন পরিবর্তন রয়েছে?
বোরিস শেভেরু

ধন্যবাদ, একটি কবজ মত কাজ!
trurl

3

Www-ডেটাতে মালিকানা পরিবর্তন করুন: / var / www এবং / var / www / html এর নীচে সমস্ত ফাইল এবং ডিরেক্টরিগুলির www-ডেটা

cd /var/www/
chown -R  www-data:www-data /var/www/
  • ./html এখানে বিহিত করা হয়েছে (/ var / www / এর অংশ হিসাবে)
  • -Rএটিকে পুনরাবৃত্ত করে তোলে (সুতরাং এটি সমস্ত ডিরেক্টরিকেই অতিক্রম করবে /var/www/)।

আমার নেটওয়ার্কের যে কোনও ব্যবহারকারীর সাথে আমি যে কোনও ফাইল বা ফোল্ডার তৈরি করব তা নিশ্চিত করে www- ডেটা: www-ডেটা দ্বারা মালিকানা পাবেন

  • ভিতরে / ভার / www / এইচটিএমএল / আমি ধরে নেব?

আপনার অ্যাপাচি কনফিগারেশনটি www-ডেটাতে সেট করুন। দেখা/etc/apache2/envvars

# envvars - default environment variables for apache2ctl

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

এটি সম্পাদনা করার পরে আপনাকে অ্যাপাচি পুনরায় চালু করতে হবে ( sudo service apache restart)।

এর মধ্যে php স্ক্রিপ্টগুলি স্বয়ংক্রিয়ভাবে তৈরি ফাইলগুলি অন্তর্ভুক্ত রয়েছে কারণ এটি যদি আমি ভুল না হয় তবে ডুপ্লিকেটর প্লাগইনটি করে।

এখানে সমস্যা সম্ভবত প্লাগইন নয় পিএইচপি। ব্যবহারকারীর একই প্রক্রিয়া হওয়া উচিত যা পিএইচপি অধীনে চলে। সুতরাং আপনার সম্ভবত এটি সেট করতে হবে www-ডেটাতেও যদি এটি আপনার ব্যবহারকারী এবং গোষ্ঠী ( /etc/php5/apache2/php.ini) হয়।


www-dataআমি বিশ্বাস করি যে উবুন্টু ডিফল্ট পিএইচপি প্রক্রিয়াগুলি / কর্মীদের পরিচালনা করে , যেমন ডেবিয়ান, আমি বিশ্বাস করি।
টমাস ওয়ার্ড

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

এগুলি প্রকৃতপক্ষে নেটওয়ার্ক ব্যবহারকারীগণ, এটি ব্যবহারকারীগণ আমি subu useradd -r -s / bin / মিথ্যা USERNAME ব্যবহার করে উবুন্টু সার্ভারে তৈরি করেছি এবং যা স্থানীয় নেটওয়ার্কের ভাগ করা ফোল্ডারগুলি অ্যাক্সেস করতে ব্যবহার করা হয়
বোরিস শেভরিউ

যদি আমি সমস্ত ফোল্ডার এবং ফাইলগুলির মালিকানা পরিবর্তন করে এবং বোরিসে ফিরে যাই: www-ডেটা, তবে অ্যাপাচে বোরিস হওয়ার জন্য envvars পরিবর্তন করুন: www-ডেটা? এটি কি সমস্যার সমাধান করতে পারে যেহেতু যে কোনও সময় আমি একটি নতুন ফাইল তৈরি করি এটি মালিক হিসাবে বরিস হিসাবে সেট করা হয়: www-ডেটা?
বোরিস শেভেরু

2

আমি সমাধান করেছি! আমি এখনও মনে করি এটি অ্যাপাচি এনভায়ার্স সমস্যা ছিল, তবে নিশ্চিত না যে যদি সমস্যাটি সমাধান করা সেই বিশেষ জিনিসটি হয় ... যাইহোক এখানে আমি যা করেছি তা এখানে:

Envvars এ পরিবর্তন করা হয়েছে

export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data

দৌড়ে

sudo chown -R boris:www-data /var/www/

এখন এটি এখন পর্যন্ত কাজ করে। আরও পরীক্ষা করবে ...

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