আমি ডেবিয়ানে অ্যাপাচে ডিফল্ট উমাস্কটি কীভাবে সেট করব?


14

আমার 002ডিফল্টরূপে উমাস্কের জন্য apache2 দ্বারা নির্মিত ফাইলগুলি দরকার group

আমি umask 002/ ইত্যাদি / অ্যাপাচি 2 / এনভ্যাওয়ারগুলিতে রাখার চেষ্টা করেছি এবং যদিও এই স্ক্রিপ্টটি অ্যাপাচি অংশ হিসাবে সম্পাদিত হয় তবে ( apache2ctl graceful) উমাসকের কোনও প্রভাব নেই। সম্ভবত প্রারম্ভিক প্রক্রিয়াতে আরও কোথাও (যেমন যখন ব্যবহারকারীটি থেকে ডাউনগ্রেড rootহয় www-data) এটিকে আরও ভাল রাখার মতো আরও ভাল কোনও জায়গা রয়েছে।

আমি ফেডোরার পোস্ট পড়েছি এবং একটিতে উমাস্ক লাগানোর পরামর্শ দেওয়া হয়েছে /etc/init.d/apache2তবে এগুলির কোনওটিই দেবিয়ানে (স্কুইজ) প্রয়োগ / কাজ প্রয়োগ করে না।

তুমি কি সাহায্য করতে পারো?


1
আপনার অ্যাপাচি "/etc/init.d/apache2 পুনঃসূচনা" বা "পরিষেবা apache2 পুনঃসূচনা"
জেনস ব্র্যাডলার

হ্যাঁ, কোনও কাজ হয়নি।
artfulrobot

আপনি কীভাবে নতুন ফাইল তৈরি করবেন (ওয়েবডিএভি, পিএইচপি)?
জেনস ব্র্যাডলার

আমার পরীক্ষায়, আমি ফাইল_পুট_কন্টেন্টস () ব্যবহার করছি। তবে এটির সাথে আমি যে কোডটি 'ঠিক' করতে চাইছি তা হ'ল দ্রুপালের কম মডিউল (এটি প্রক্রিয়াজাত কম CSS ফাইলগুলির ক্যাশেড সংস্করণ তৈরি করে)। আমার নির্দিষ্ট সমস্যাটি হ'ল আমি drush cc allআমার ব্যবহারকারী হিসাবে চালাতে পারি না কারণ এটি এই সমস্ত www-ডেটা তৈরি করা ক্যাশে ফাইলগুলিতে ত্রুটিযুক্ত।
artfulrobot

উত্তর:


11

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

সাধারণ পরীক্ষা পিএইচপি স্ক্রিপ্ট:

<?php
if ($fp = fopen(time() . '.txt', 'w')) {
  fwrite($fp, 'This is a simple test.');
  fclose($fp);
  echo "done";
} else {
  echo "error - cannot create file";
}
?>

আপনি এই সাধারণ পরীক্ষার ফাইলটি যেখানে ইনস্টল করেছেন সেই ফোল্ডারে ব্যবহারকারীর www-ডেটা লেখার অ্যাক্সেস রয়েছে সেদিকে খেয়াল রাখুন।

নতুন উমাস্ক চলমান রাখতে, আপনার অ্যাপাচি স্টার্ট ফাইল /etc/init.d/apache2- এ ফাইল / etc / apache2 / envvars ব্যবহার করা হবে কিনা তা পরীক্ষা করে দেখুন:

...
PIDFILE=$(. /etc/apache2/envvars && echo $APACHE_PID_FILE)
...

আপনার উমাস্কটি / ইত্যাদি / অ্যাপাচি 2 / এনভ্যাভারে সেট করুন:

...
# umask 002 to create files with 0664 and folders with 0775
umask 002

আপনার অ্যাপাচি পুনরায় চালু করুন:

service apache2 restart

পার্থক্য পরীক্ষা করুন:

#> ls -l *.txt
-rw-rw-r-- 1 www-data www-data  14 2012-05-01 15:56 1335880583.txt
-rw-r--r-- 1 www-data www-data  14 2012-05-01 15:55 1335880540.txt

ধন্যবাদ! এমনকি এটি পড়ার জন্য আমাকে বোকা মনে হয়েছে (গ্রুপ
আরডব্লিউর

আপনার সামান্য পিএইচপি স্নিপেট আমার বিচক্ষণতা সংরক্ষণ করেছে, পিডিও স্ক্লাইট 3 ওয়ার্ডপ্রেস প্লাগইন সর্বদা কেবল এটির ডাটাবেস ফাইলের জন্য পড়ার জন্য গ্রুপ সেট করবে set
ড্যানিয়েল সোকলোভস্কি

2

আপনি যদি একাধিক সাইট পরিচালনা করেন তবে আপনি প্রতি ডিরেক্টরি যেমন অ্যাক্সেস কন্ট্রোল তালিকাগুলি (এসিএল) ব্যবহার করে ডিফল্ট গোষ্ঠী অনুমতি সেট করতে পারেন:

setidডিরেক্টরি থেকে সমস্ত নতুন ফাইলকে উত্তরাধিকার সূত্রে বাধ্য করতে পতাকা সেট করুন :

# chmod g+s wordpress

rwগ্রুপের অনুমতিগুলির জন্য নতুন ফাইলগুলি তৈরি করুন , প্রাক্তন। যাতে www-dataআপলোড ব্যবহারকারী দ্বারা SFTPed ফাইলগুলিতে লিখতে পারে:

# setfacl --default --modify group::rwx wordpress 

ACL এর মতো রয়েছে তা নিশ্চিত করুন:

# getfacl wordpress
# file: wordpress
# owner: carissacosgrove
# group: www-data
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

এটি কাজ করেছে তা নিশ্চিত করার জন্য একটি ফাইল তৈরি করুন:

# ll test
-rw-rw-r-- 1 root www-data 0 Feb 17 01:09 test

যদি উদ্দেশ্যটি কারণে অ্যাপ্লিকেশন হ্রাস অনুমতি নিয়ে ফাইলগুলি লেখার চেষ্টা করছে তবে এটি সমস্যাযুক্ত হবে না?
বার্বেট

মোটেও নয়, অ্যাপ্লিকেশনটি কেবল হ্রাসের অনুমতি নিয়ে লিখবে যা আসলে আমাকে প্রথমে কিছুটা বিভ্রান্ত করেছিল - stackoverflow.com/questions/28454551/…
ড্যানিয়েল সোকলোভস্কি

1
আমি মনে করি এই কমান্ডটি setfacl --default --modify group:rwx wordpressএকটি কোলন অনুপস্থিত। এটি হওয়া উচিতsetfacl --default --modify group::rwx wordpress
মার্কোস

2

(ডেমিয়ান স্ট্রেচের জন্য যা সিস্টেমড ব্যবহার করে - ধন্যবাদ ওমল!)

UMask=0002অ্যাপাচি 2 সিস্টেমযুক্ত পরিষেবা ইউনিট ফাইলটি রাখুন , পরিষেবা ইউনিটটি পুনরায় লোড করুন এবং তারপরে অ্যাপাচি 2 পুনরায় চালু করুন।

w পিডব্লিউড
/etc/systemd/system/multi-user.target.wants

$ বিড়াল apache2.service
[ইউনিট]
বর্ণনা = অ্যাপাচি এইচটিটিপি সার্ভার
এর পরে = নেটওয়ার্ক.টারাগেট রিমোট-fs.target এনএসএস- লুকআপ.টারাজেট

[পরিষেবা]।
।
।
।
UMask = 0002

do sudo systemctl ডেমন-রিলোড
do sudo systemctl অ্যাপাচি 2 পুনরায় চালু করুন

ডেবিয়ান স্কুইজ সিস্টেমড ব্যবহার করেনি।
ওম্বল

হ্যাঁ হ্যাঁ, মূল প্রশ্নটির শেষে তারা দেবিয়ান স্কুইজ বলে। যেহেতু প্রশ্নটি আজ থেকে years বছর আগে, এবং যখন আমি শিরোনামে সাম্প্রতিক দেবিয়ানের সাথে 2019 সালের শেষের দিকে উত্থিত সমস্যাটি সমাধান করার চেষ্টা করছিলাম, এটিই আমি পোস্ট করেছি। আমি মনে করি আজ আট বছর আগের বিরোধী হিসাবে সমাধানের সন্ধান করা বেশিরভাগ লোকেরা আমার সমাধানটি থেকে উপকৃত হতে পারে, তাই আমি যা রেখেছি কেবল তা ছেড়ে দেব that এটি উল্লেখ করার জন্য ধন্যবাদ।
ডুপ্লেক্সডাডান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.