লেখার জন্য পড়ার অনুমতি কীভাবে দেওয়া যায় তবে ফাইলটি মুছবেন না


12

আমি ব্যবহারকারীদের অন্য ব্যবহারকারী ডিরেক্টরিতে ফাইল লেখার ও পড়ার ক্ষমতা দিতে চাই, তবে তৈরি হওয়ার পরে ফাইলটি মুছে ফেলার বিকল্প নেই (স্টিকি বিট এখানে কাজ করবে না ...) উদাহরণস্বরূপ:

আমার manager ডিরেক্টরিতে repository
ব্যবহারকারী আছে আমার কাছে worker1ফাইল লিখতে হবে /manager/repositoryতবে
আমার worker2যে ফাইলগুলিতে ফাইল লিখতে হবে /manager/repository তা মুছতে পারছেন না তবে
আমার worker3যে ফাইলগুলিতে ফাইল লিখতে হবে সেগুলি মুছে ফেলতে /manager/repository পারবেন না ফাইলগুলি মুছুন

তবে worker 1-2-3কেবল তৈরির পরে ফাইলগুলি মুছতে পারে না managerএবং তৈরি করা rootফাইলগুলি মুছতে পারে worker 1-2-3

সাফল্য ছাড়াই স্টিকি বিট প্রয়োগ করার জন্য আমি কয়েকটি কৌশল chownchmodকৌশল চেষ্টা করেছি ।


1
না worker*ব্যবহারকারীদের একটি নির্দিষ্ট উপায় নির্দেশিকাতে লেখে? আপনি একটি মন্তব্যে উল্লেখ করেছেন যে লগ ফাইলগুলি এখানে যায়, তার মানে কি এখানে ফাইলগুলি তৈরি করার জন্য একটি নির্দিষ্ট নির্বাহযোগ্য চালু হয়? যদি তাই হয় তুমি কি দিতে পার workerগ্রুপ sudoযেমন এক্সিকিউটেবল চলার জন্য অনুমতির manager। তারপরে এক্সিকিউটেবল managerব্যবহারকারী হিসাবে লগ তৈরি করতে পারে যা শ্রমিকদের দ্বারা পঠনযোগ্য।
সেন্টেমানে

যদি ব্যবহারকারী ফাইলটি সংশোধন করতে পারে তবে তারা এর সামগ্রীটিও মুছে ফেলতে পারে, ফলস্বরূপ এটি কার্যকরভাবে "মুছে ফেলা"। দেখে মনে হচ্ছে আপনার কোনও প্রকারের "সাবমিশন" ইন্টারফেসের দরকার, ফাইল সিস্টেমগুলি নয়। ইমেলগুলি সবচেয়ে সহজ হবে।
ybungalobill

উত্তর:


8

উইন্ডোজের বিপরীতে ইউনিক্স / লিনাক্সের অধীনে আলাদা আলাদা মুছার অনুমতি নেই। কোনও ফাইল মুছে ফেলার (বা তৈরি বা পুনর্নবীকরণ) অধিকার হ'ল ডিরেক্টরিটি অন্তর্ভুক্ত ডিরেক্টরিকে আবদ্ধ। /manager/repository/শ্রমিকদের ফাইলগুলি তৈরি, মুছতে এবং নাম পরিবর্তন করতে অস্বীকার করার জন্য শ্রমিকদের লেখার অনুমতি সরিয়ে দিন।

মনে রাখবেন যে ফাইল তৈরির অনুমতি দেওয়া সম্ভব নয় তবে তাদের মুছে ফেলার বিষয়টি অস্বীকার করে।


লগ ফাইল
থাকাকালীন

। যদিও সত্য ব্যবহার করা হয়, অনেক আধুনিক সিস্টেম সমর্থন বর্ধিত ACLs (NFSv4 ACLs যেমন FreeBSD 'র, সোলারিস অথবা Linux (Richacl প্যাচ) যে হিসাবে অনুরূপ ক্ষমতা দিতে দ্বারা সমর্থিত উইন্ডোজ এনটি ACLs আপনার স্টক লিনাক্স ডিস্ট্রিবিউশন এটা আছে না যদিও সম্ভাবনা থাকে।
স্টাফেন চেজেলাস

@ ব্যবহারকারীর 63898 আপনি যে ডিরেক্টরিটি ফাইলটির মধ্যে আছেন সেগুলি থেকে ফাইলটি লেখার অনুমতিগুলি সরিয়ে ফেলুন।
GnP

6

প্রথমে আপনার সিস্টেমে এসিএল সক্ষম হয়েছে তা নিশ্চিত করুন, তারপরে এই কমান্ডটি চালান

setfacl -d -R -m user::rwx,user:worker1:---,user:worker2:---,user:worker3:--- \
/manager/repository

কিভাবে এটা কাজ করে

  • এই কমান্ডটি ডিরেক্টরিতে মালিককে পড়ার, লেখার এবং সম্পাদনের অনুমতি দেবে /manager/repository। এটা তোলে সমস্ত অনুমতি তা প্রত্যাহার করবে worker1, worker2এবং worker3

  • এটি অন্যান্য ব্যবহারকারীদের পড়তে এবং লেখার অ্যাক্সেস দেয় তবে মোছার অ্যাক্সেস অস্বীকার করবে।


থেকে man setfacl:

-d, --default
       All  operations  apply to the Default ACL.

-R, --recursive
       Apply operations to all files and directories recursively.

-m, --modify
       Options to modify the ACL of a file or directory.

ধন্যবাদ, তবে সমস্যাটি হ'ল ব্যবহারকারীরা সর্বদা তৈরি হয়। এবং কিছু প্রশাসক দ্বারা মুছে ফেলা হয়। সুতরাং এর অর্থ কি প্রত্যেকবার সেটফ্যাকল দিয়ে ডিরেক্টরি আপডেট করতে হবে? আর কোন জেনেরিক সমাধান কি আছে?
ব্যবহারকারী 63898

হ্যাঁ আমি যখন ওয়ার্কার 1 টাচ / ম্যানেজার / রিপোজিটরি / এক্স.এসটিএসটি থেকে ফাইল তৈরি করার চেষ্টা করছি তখন: স্পর্শ: touch /manager/repository/x.txt 'টাচ করতে পারবেন না: অনুমতি অস্বীকৃত
ব্যবহারকারীর 63898

আমি যখন এলএস-ওয়েল্ড সংগ্রহস্থলটি পেয়ে যাচ্ছি তখনও অনুমতি প্রত্যাখ্যান করা হচ্ছে: drwxrwxr-t 2 পরিচালক ব্যবহারকারী 4096 সেপ্টেম্বর
7:30:30

setfacl -d -R -m ব্যবহারকারীর :: rwx, ব্যবহারকারী: কর্মী 1: --- সংগ্রহস্থল / এবং তারপরে কর্মী 1 টাচ /manager/repository/x.txt থেকে ফাইল তৈরি করার চেষ্টা করছেন: স্পর্শ: স্পর্শ করতে পারবেন না touch / পরিচালক /repository/x.txt ': অনুমতি অস্বীকার করা হয়েছে
user63898

5
এটি কি এখানে কাউকে একটি খালি ফাইল লেখার অনুমতি দেবে না? echo " " > $file"" দিয়ে ফাইলের বিষয়বস্তুগুলিকে আঁকড়ে ধরতে পছন্দ করবে, এটি প্রযুক্তিগতভাবে একটি লেখা, তবে কার্যকরভাবে সামগ্রীগুলি মুছে দেয়। দেখে মনে হচ্ছে এসএনএন এর মতো একটি বাস্তব রেপো এখানে সেরা বেট হবে।
সেন্টিমানে

3

অনুমতি সহ এটি করতে, আপনার এনএফএসভি 4 এসিএল এর মতো এসিএলগুলির সমর্থন সহ একটি সিস্টেমের প্রয়োজন। উদাহরণস্বরূপ, ফ্রিবিএসডি-তে, যদি ফাইল সিস্টেমটি nfsv4aclsপতাকা সহ মাউন্ট করা থাকে তবে আপনি এটি করতে পারেন:

mkdir testdir
chown manager:worker-group testdir
chmod 775 testdir
setfacl -m group@:D::deny testdir

স্পষ্টভাবে করার অস্বীকারdelete_child সদস্যদের অনুমতি worker-groupগ্রুপ।

তবে নোট করুন যেহেতু শ্রমিকরা তাদের তৈরি করা ফাইলগুলির মালিক হবেন, তবুও তারা তাদের উপরের এসিএলগুলি সংশোধন করতে সক্ষম হবেন এবং তাদের deleteঅনুমতি প্রদানের delete_childমাধ্যমে, পিতামহিত ডিরেক্টরিটির অনুমতিকে প্রাধান্য দেবে এবং আমি নই নিশ্চিত যে এর কাছাকাছি একটি উপায় আছে (কমপক্ষে ফ্রিবিএসডি-তে ইউএফএস ফাইল সিস্টেমগুলিতে)। উদাহরণস্বরূপ তারা করতে পারে:

$ touch file
$ rm -f file
rm: file: Operation not permitted
$ setfacl -m owner@:d::allow file
$ rm -f file
$

0

/manager/repositoryফোল্ডার থেকে লেখার অনুমতি নিতে । সুতরাং, সমস্ত ব্যবহারকারী যারা মূল নয় /manager/repository, তারা ভিতরে থাকা ফাইলগুলি লিখতে বা মুছতে সক্ষম হবেন , তবে এই ডিরেক্টরি থেকে কোনও ফাইল মুছতে পারবেন না।

chmod 755 /manager/repository

0

আমরা ফাইল এবং ফোল্ডারগুলি সংশোধন করতে পারি তবে মুছতে পারি না।

বৈশিষ্ট্যগুলি অপসারণ করতে, নিম্নলিখিত কমান্ডগুলি চালান:

ফাইলগুলির জন্য:

$ sudo chattr -R -a file.txt

ডিরেক্টরিগুলির জন্য:

$ sudo chattr -R -a dir1/

(1) ডকুমেন্টেশন অনুসারে, aগুণাবলীর অর্থ কেবলমাত্র পরিশিষ্ট। ব্যবহারকারীরা কি এই ফাইলগুলি সম্পাদনা করতে পারবেন? (২) aডিরেক্টরিতে বৈশিষ্ট্য নির্ধারণের প্রভাব কী ?
স্কট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.