আমি কীভাবে ম্যাক ওএস এক্সে এসিএলগুলি অনুলিপি করব?


13

বেশিরভাগ ইউনিক্স থেকে প্রাপ্ত এসিএলগুলি এক ফাইল থেকে অন্য ফাইলটিতে অনুলিপি করতে পারে:

getfacl filename1 | setfacl -f - filename2

দুর্ভাগ্যক্রমে ম্যাক ওএস এক্সের গেটফ্যাকল এবং সেটফ্যাকল কমান্ড নেই, কারণ তারা এসএমএলকে chmod এ রোল করেছে। chmod -E স্টিডিনে এসিএলগুলির একটি তালিকা গ্রহণ করে তবে স্ট্যান্ডআউটে উপযুক্ত বিন্যাসে এসিএলগুলি স্পিট করবে এমন কোনও কমান্ড আমি পাইনি। আমি যে সেরাটি নিয়ে এসেছি তা হ'ল:

ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2

এর চেয়ে আরও শক্তিশালী সমাধান কি আছে?

বোনাস প্রশ্ন: 10.6 দিয়ে পাঠানো হয়নি এমন কোনও মডিউল ব্যবহার না করে পাইথনে এটি করার কি দুর্দান্ত উপায় আছে?


সুতরাং এটি এখন 2020 বছর, এবং ম্যাকোস এখনও getfacl/ নেই setfacl। বেশ উল্লেখযোগ্য। github.com/jvscode/getfacl 10 বছর বয়সী আমি এটি কাজ করতে সক্ষম হইনি। serverfault.com/a/303752/104173 জটিল মনে হচ্ছে এবং এটি get/setfaclকার্যকারিতা প্রতিস্থাপনের চেষ্টা করলে আমি পরিষ্কার নই । আমি এটি পেয়েছি যে ম্যাকোস কোনও সার্ভার প্ল্যাটফর্ম নয়, তবে এটি এখনও সুরক্ষা অনুপ্রবেশের অভিজ্ঞতা নিতে পারে। আপেল.স্ট্যাকেক্সেঞ্জ.কম এ এই কথোপকথনটি পুনরায় আরম্ভ করার উপযুক্ত কি ?
জনি ইউটা

উত্তর:


8

ls -e দীর্ঘ (-l) আউটপুট উপস্থিত থাকলে ফাইলের সাথে সম্পর্কিত অ্যাক্সেস নিয়ন্ত্রণ তালিকা (এসিএল) প্রিন্ট করুন।

এটি যেমন একটি ফলাফল দেয় ...

drwxr-xr-x@ 19 localadmin   646B Aug  4 00:21  APPBUNDLE
0: user:localadmin allow add_file,add_subdirectory,writeattr,writeextattr,writesecurity
                   ⬆    ⇧                      ⇶                                     ⬆

ব্যক্তিগতভাবে, আমার আমার "রফতানি" রয়েছে ~/.bash_profile

export FILE_ALL="read,write,append,execute,delete,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown"
export DIR_ALL="list,search,add_file,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown"

যে যেমন একটি chmodসম্ভব ...

sudo chmod + a "লোকালাদমিনকে অনুমতি দিন IR DIR_ALL" / অ্যাপ্লিকেশন

chmodম্যান পৃষ্ঠা থেকে, তথ্যটির এই বিটটি রয়েছে ... যেটি ইঙ্গিত দেয় যে আপনার বর্ণনার মতো এমন কিছু করা সত্যিই সম্ভব হতে পারে ..

"এসিএলগুলি সিম্বলিক মোড ব্যাকরণে এক্সটেনশনগুলি ব্যবহার করে চালিত হয় Each একই নামের সাথে গোষ্ঠীটি বিদ্যমান, ব্যবহারকারীর / গোষ্ঠীর নামটি "ব্যবহারকারী:" বা "গোষ্ঠী:" দিয়ে নামের প্রকারের জন্য নির্দিষ্ট করা যেতে পারে ""

chmod -E স্ট্যান্ডিনের এসিএল তথ্যগুলি নিউ লাইনগুলি দ্বারা পৃথক করে এসিইগুলির ক্রমানুসারে তালিকা হিসাবে পড়ে। যদি তথ্য সঠিকভাবে বিশ্লেষণ করে তবে বিদ্যমান তথ্য প্রতিস্থাপন করা হয়।

এছাড়াও, আমি ব্যাচমড , একটি পুরাতন, কিন্তু এসিএল'র জন্য একটি গুডি পাশাপাশি টিঙ্কারটুল সিস্টেমটির জন্য একটি চিৎকার করব ।


এটি আমার পক্ষে কাজ করেছে, তবে আমাকে chmod কমান্ডটি এটিকে পরিবর্তন করতে হয়েছিল: sudo chmod +a "localadmin allow $DIR_ALL" /APPBUNDLE(ব্যবহারকারীর নাম এবং এটি স্যুইচ করা allow)
ই মোফাত


1

Https://github.com/jvscode/getfacl এ একবার দেখুন ।


ভাল রেফারেন্স। হায়রে, এই প্রকল্পটি 10 ​​বছরের পুরানো বলে মনে হচ্ছে, এর কোনও setfacl(কেবল getfacl) নেই এবং getfaclকার্যকারিতাটি বেশ সীমাবদ্ধ বলে মনে হচ্ছে। দুর্ভাগ্যক্রমে আমি এর থেকে ভাল সমাধান খুঁজে পাইনি।
জনি ইউটা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.