একটি নির্দিষ্ট ডিরেক্টরিতে তৈরি করা ফাইলগুলির জন্য আমি কীভাবে গ্রুপ এবং অনুমতিগুলি জোর করব?


27

/ Var / www ডিরেক্টরিতে পরীক্ষক অ্যাকাউন্ট থেকে তৈরি করা ফাইলগুলির জন্য আমার কাছে অনুমতি হিসাবে জি + আরডব্লক্স এবং গোষ্ঠী হিসাবে www- ডেটা থাকা দরকার

আমি কীভাবে এটি অর্জন করতে পারি?

আমি এসএসএইচ এর মাধ্যমে ফাইলগুলি তৈরি করছি।


1
আপনার ব্যবহারকারী কীভাবে ফাইল তৈরি করছেন? এফটিপি stor/ এর মাধ্যমে appe? এইচটিটিপি মাধ্যমে PUT? শেল অ্যাকাউন্টের মাধ্যমে? এই বিশদগুলি গুরুত্বপূর্ণ, কারণ এগুলি সম্ভাব্য উত্তরগুলিকে ব্যাপকভাবে প্রভাবিত করে এবং আপনার প্রশ্নে থাকা দরকার।
জেডিবিপি

ইনপুটটির জন্য ধন্যবাদ :), আমি এসএসএইচ এর মাধ্যমে সবকিছু তৈরি করছি।
মিঃ গ্যান্ডো

উত্তর:


53

গ্রুপ সেট করতে, দিতে setgid বিট:/var/www

chgrp www-data /var/www
chmod g+s /var/www

উপ-ডিরেক্টরিগুলিও সামঞ্জস্য করতে: find /var/www -type d -exec chmod g+s {} +

এটি নতুন তৈরি করা সমস্ত ফাইলকে ব্যবহারকারীর পরিবর্তে পিতামহিত ডিরেক্টরিগুলির গোষ্ঠীটির উত্তরাধিকারী করে তুলবে।


ডিফল্ট গ্রুপ অনুমতিগুলি সেট করতে, আপনাকে এসিএল ব্যবহার করতে হবে । একটি "ডিফল্ট" এসিএল সেট করুন:

setfacl -m "default:group::rwx" /var/www

উপ-ডিরেক্টরিগুলিও সামঞ্জস্য করতে: find /var/www -type d -exec setfacl -m d:g::rwx {} +

দ্রষ্টব্য: ফাইল সিস্টেমে অবশ্যই ACL সমর্থন সক্ষম থাকতে হবে। কখনও কখনও এটি ডিফল্ট হিসাবে চালু হয়; Ext3 বা ext4 এ আপনি "অপারেশন সমর্থিত নয়" পেতে পারেন , সেক্ষেত্রে এটি ম্যানুয়ালি সক্ষম করতে হবে:

  • বর্তমানে মাউন্ট করা ফাইল সিস্টেমের জন্য: mount -o remount,acl /

  • স্থায়ীভাবে - এক নিচের পদ্ধতি:

    • fstab স্তরে: বিকল্প ক্ষেত্রে /etc/fstabথাকতে সম্পাদনা aclকরুন

    • ফাইল সিস্টেম পর্যায়ে: tune2fs -o acl /dev/diskname


আপনি chmod -R g + s / var / www সহ উপ-ডিরেক্টরিগুলি পেতে পারবেন না? মনে হচ্ছে না যে আপনার অনুসন্ধান কমান্ডের দরকার হবে।
ববপল

4
@ বোবপল: না, কারণ chmodসমস্ত ফাইলও পাবেন।
মহাকর্ষ

নোট করুন যে কিছু কমান্ড, বিশেষত install, কোনওভাবে ডিরেক্টরি ডিফল্ট এসিএলগুলি বাইপাস করতে পরিচালনা করে।
উলরিচ শোয়ার্জ

@ গ্রায়েটি এটি সত্যিই দুর্দান্ত উত্তর এবং আমি নিশ্চিত যে আমার সমস্যার সমাধান আছে কি না, তবে আমি তা বুঝতে পারি না। আমার একটি /var/www/html/projectsফোল্ডার রয়েছে এবং যখন ডাব্লু-ডেটা একটি ফাইল তৈরি করে তখন এর rw-rw-rঅনুমতি রয়েছে তবে যখন আমি কনসোলে কিছু করি এটি একটি ফাইল তৈরি করে rw-r--r। আমি কীভাবে নতুন তৈরি ফাইলগুলিকে সর্বদা rw-rw-rঅনুমতি পেতে বাধ্য করতে পারি ?
lewis4u

@ লেউইস ৪ ইউ: বিশ্বব্যাপী না প্রতি ডিরেক্টরি? গ্লোবাল (ভাল, প্রতি-প্রক্রিয়া) ডিফল্ট অনুমতিগুলি এর দ্বারা নিয়ন্ত্রিত হয় umask। প্রতি ডিরেক্টরি ডিফল্ট অনুমতিগুলি setfaclমূল পোস্ট হিসাবে ব্যবহার করে পরিবর্তনযোগ্য ।
মাধ্যাকর্ষণ

3

এটি সেটগ্রিডে 'গ্রাভিটি' উত্তরটির সাথে আটকে থাকতে পারে কিছু লোককে, ফোল্ডারের গোষ্ঠীটি যদি আপনার নিজের থেকে আলাদা হয় তবে আপনাকে chmod কে রুট হিসাবে চালাতে হতে পারে তবে আপনাকে এটি করার প্রয়োজন হতে পারে এমন কোনও ত্রুটি পাবেন না।

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                    #no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo       #and the group is still wrong


$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo #and group is set

আমি এটি পেরিয়ে যাওয়ার আগে আমার চুলগুলি টানছিলাম। ধন্যবাদ।
অ্যান্ড্রুস্টেভেনস

0

কোনও ব্যবহারকারী দ্বারা তৈরি করা ফাইলগুলির গ্রুপটি হ'ল সেই ব্যবহারকারীর গ্রুপ (/ etc / গ্রুপে)। অনুমতিগুলি UMASK প্যারামিটার দ্বারা নিয়ন্ত্রিত হয় এটি দেখুন

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