সিপি কেন এসিএলকে সম্মান দেয় না?


15

একটি গ্রুপের মধ্যে ফাইল ভাগ করে নেওয়ার জন্য একটি ডিরেক্টরি সেটআপ করার একটি সাধারণ উপায় হ'ল:

$ mkdir foo
$ chgrp felles foo
$ chmod g+ws foo
$ setfacl -m group:felles:rwx foo
$ setfacl -dm group:felles:rwx foo

এটি নিশ্চিত করে যে এতে তৈরি হওয়া যে কোনও ফাইল fooগ্রুপের দ্বারা পঠনযোগ্য এবং লিখিতযোগ্য felles:

$ umask
0022
$ echo hi > foo/bar
$ ls -l foo
total 4
-rw-rw-r--+ 1 bhm felles 3 2010-09-23 00:18 bar

তবে আপনি যদি কোনও ফাইল অনুলিপি করেন fooতবে ডিফল্ট এসিএল প্রয়োগ করা হয় না:

$ echo you > baz
$ cp baz foo/
$ ls -l foo
total 8
-rw-rw-r--+ 1 bhm felles 3 2010-09-23 00:18 bar
-rw-r--r--+ 1 bhm felles 4 2010-09-23 00:19 baz
$ getfacl foo/baz
# file: foo/baz
# owner: bhm
# group: felles
user::rw-
group::rwx          #effective:r--
group:felles:rwx        #effective:r--
mask::r--
other::r--

কেন এটি ঘটে এবং এর চারপাশে কোনও উপায় আছে?

( মুভিং ডিরেক্টরির মধ্যে একটি ফাইল পারেন ACLs বা গোষ্ঠী মালিকানা সম্মান করে না, কিন্তু আমি কেন বুঝতে পারেন। আপনি একটি ফাইল অনুমতি কেবল পরিবর্তনের জন্য কারণ আপনি তার নাম পরিবর্তন করতে চাইতে পারেন)


serverfault.com/a/452678/46333 এই উত্তরে একটি ভাল ব্যাখ্যা রয়েছে।
কান

উত্তর:


11

যদি cpগন্তব্য ফাইলটি তৈরি করে, তবে উমাস্কে সেট করা বিট বাদে উত্স ফাইলের অনুমতিগুলি প্রতিলিপি করে। এটি স্ট্যান্ডার্ড আচরণ (উদাহরণস্বরূপ সিঙ্গেল ইউনিক্স ভি 3 (POSIX 2001) স্পেসিফিকেশনে ধাপ 3.b দেখুন ।

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

বেশিরভাগ অনুলিপি সরঞ্জাম (যেমন প্যাক্স, আরএসএনসি) একইভাবে আচরণ করে। আপনি গন্তব্য থেকে উৎস decoupling সঙ্গে উদাহরণস্বরূপ দ্বারা নিশ্চিত করতে পারে ফাইল ডিফল্ট অনুমতি নিয়ে তৈরি করা হবে cat <baz >foo/baz


ভাল, এটি অন্তত এটির জন্য অনুপ্রেরণা ব্যাখ্যা করে। (তবে আশ্চর্যের বিষয়, সম্ভবত এই গোষ্ঠীর মালিকানা "ফেলস" এ পরিবর্তিত হতে পারে, সম্ভবত আরও বেশি লোকেরা ফাইলটিতে অ্যাক্সেস পড়তে পারে))
বিএইচএম

3

ভাল, একটি তিন বছরের পুরানো এবং আরও প্রশ্ন কিন্তু এখনও প্রাসঙ্গিক। ভবিষ্যতের পাঠকদের জন্য, আমি যুক্ত করতে চাই যে এটি এমভি, সিপি কমান্ডগুলি গন্তব্য ডিরেক্টরিটির এসিএল অনুসরণ করে না expected গিলসের উত্তর সব ঠিক আছে তবে শেষ বাক্যটি। অনুলিপি / সরানো ফাইলের জন্য গন্তব্যটির এসিএল প্রয়োগ করার আরও ভাল উপায় এখানে উল্লেখ করা উপায়:

http://www.commandlinefu.com/commands/view/4281/copy-acl-of-one-file-to-another-using-getfacl-and-setfacl

ভবিষ্যতে লিঙ্কটি নষ্ট হয়ে গেলে আমি এখানে লিখিত সামগ্রীটি পেস্ট করেছি:

getfacl <file-with-acl> | setfacl -f - <file-with-no-acl>

getfacl এবং setfacl ব্যবহার করে একটি ফাইলের ACL অনুলিপি করুন

সতর্কতা: বিদ্যমান এসিএল হারিয়ে যাবে।


1

টার্গেট সাব-ডিরেক্টরিতে সঠিক ডিফল্ট এসিএল না থাকা রাইসিএনড ফাইলগুলির সাথে আমার একই সমস্যা ছিল। সিপির লক্ষ্যগুলিতে অনুমতিগুলি সেট করার কোনও উপায় নেই। তবে, আরএসআইএনসি --chmod=ugo=rwxপতাকাটি ব্যবহার করে । আমার উত্তর এখানে দেখুন


0

আপনি ব্যবহার করতে প্রয়োজন -pবা --preserveসঙ্গে cp

থেকে man 5 acl:

ফাইলের ব্যবহারকারীর পরিবর্তনসমূহ

 On a system that supports ACLs, the file utilities ls(1), cp(1), and
 mv(1) change their behavior in the following way:

 ·   For files that have a default ACL or an access ACL that contains more
     than the three required ACL entries, the ls(1) utility in the long
     form produced by ls -l displays a plus sign (+) after the permission
     string.

 ·   If the -p flag is specified, the cp(1) utility also preserves ACLs.
     If this is not possible, a warning is produced.

 ·     The mv(1) utility always preserves ACLs. If this is not possible, a
     warning is produced.

 The effect of the chmod(1) utility, and of the chmod(2) system call, on
 the access ACL is described in CORRESPONDENCE BETWEEN ACL ENTRIES AND
 FILE PERMISSION BITS.

1
বেপারটা এমন না. তিনি চান যে ফাইলটি লক্ষ্য ফোল্ডারের মতো একই অনুমতি হোক।
luckytaxi

0

এসিএলগুলি সঠিকভাবে প্রচার করছে তবে ডিফল্ট মাস্কটি সঠিক বলে মনে হচ্ছে না। আপনি সম্ভবত চান যে আপনার ডিফল্ট মাস্কটি rwx হয়।

setfacl -dm m::rwX foo

যদি এটি কাজ না করে তবে দয়া করে ফু জন্য এসিএল পোস্ট করুন।


কাজ হয়নি। Foo এর জন্য এসিএল (আপনার পূর্ববর্তী এবং পূর্ববর্তী উভয়ের পরে) হ'ল ফাইল: foo # মালিক: বিএইচএম # গ্রুপ: ফেলস # পতাকা: -s- ব্যবহারকারী :: rwx গোষ্ঠী :: rwx গোষ্ঠী: ফেলস: আরডব্লু মাস্ক :: আরডব্লক্স অন্যান্য: : rx ডিফল্ট: ব্যবহারকারী :: rwx ডিফল্ট: গ্রুপ :: rwx ডিফল্ট: গোষ্ঠী: felles: rwx ডিফল্ট: মাস্ক :: rwx ডিফল্ট: অন্যান্য :: rx
bhm

-1

আপনার ফাইল সিস্টেমটি "এসিএল" বিকল্পটি সক্ষম করা আছে?

/dev/sda4        /wherefolderislocated         ext3        defaults,acl     1   2

যদি তা না হয় তবে পরিবর্তনটি করুন

mount -o remount /wherefolderislocated

এটি এসিএল বিকল্পের সাথে মাউন্ট করা হয়েছিল, হ্যাঁ।
bhm

-1

আমি যা দেখছি তা থেকে আপনি সিপির আগে এবং পরে ফাইলগুলির (বিএইচএম) মালিক। ডিরেক্টরি তালিকাটি দেখায় যে মালিক অ্যাক্সেস পড়েছেন এবং লিখেছেন!


সম্ভবত আমি অস্পষ্ট ছিলাম: আমি গ্রুপটি ("ফেলি") ফাইলটি লিখতে (পড়তে এবং) সক্ষম করতে চাই।
bhm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.