ম্যাকের / ইউএসআর / বিনে প্রতীকী লিঙ্কগুলি কীভাবে তৈরি করবেন?


10

পরিবেশ: ওএসএক্স সিয়েরা, ডারউইন কার্নেল সংস্করণ 16.3.0

রুট সমস্যা: আমি একটি কেন্দ্রীয় সংগ্রহস্থলে শেল স্ক্রিপ্টগুলির একগুচ্ছ ব্যবহার করতে চাই, যার একটি #! / Usr / bin / zsh রয়েছে। আমার ম্যাকে, zsh ইন / বিন / zsh এ আছে।

চেষ্টা করা সমাধান: আমি একটি প্রতীকী লিঙ্ক তৈরি করতে চাই

ln -s /bin/zsh /usr/bin/zsh

আমার ব্যবহারকারীর অ্যাকাউন্টে অ্যাডমিনের অধিকার রয়েছে তবে আমি রুট নই, এবং আমি এই ম্যাকটিতে রুট ব্যবহারকারীকে সক্ষম না করা পছন্দ করব। অতএব আমি প্রথম একটি

sudo su

রুট সুবিধাগুলি সহ শেল পেতে এবং তারপরে ln কমান্ড কার্যকর করা হবে । তবে আমি এখনও ত্রুটি বার্তাটি পাচ্ছি ln: / usr / bin / zsh: অপারেশন অনুমোদিত নয়

প্রশ্নাবলী:

  • আমি কেন এই ত্রুটি বার্তা পাব?

  • লিঙ্কটি তৈরি করতে আমার কী করতে হবে?

  • আমার আসল লক্ষ্য অর্জনের জন্য আরও ভাল উপায় আছে কি? নোট করুন যে # ঠিক করা! লাইন একটি বিকল্প নয়।


কেন আপনি শুধু কপি করবেন না /usr/bin/zshকরার /bin/zsh?
লেনি

1
@ লেনি আপনি এইভাবে একটি আলগা অনুলিপি তৈরি করছেন যা মূলের সাথে একসাথে আপডেট করা হবে না।
মারিও

@ মারিও চাবুক ... অবশ্যই আপনি ঠিক বলেছেন। ওপি: কখনই না! ;)
লেনি

1
@ লেনি - অনুলিপিটি অন্যভাবে যেতে হবে! এবং যদি আপনি অনুলিপি করতে পারেন, তবে আপনি লিঙ্ক করতে পারেন।
এএফএইচ

@ এএফএহ হ্যাঁ আমার মন্তব্যটি সম্পূর্ণ জগাখিচুড়ি ...
লেনি

উত্তর:


13

অ্যাপলের সিস্টেম ইন্টিগ্রিটি প্রোটেকশনের কারণে আপনি এই বার্তাটি পান । সিস্টেমের সংহততা সুরক্ষা ব্যবস্থার এই অংশগুলির সুরক্ষা অন্তর্ভুক্ত করে:

/System
/usr
/bin
/sbin
Apps that are pre-installed with OS X

তৃতীয় পক্ষের অ্যাপ্লিকেশন এবং ইনস্টলাররা যে পাথ এবং অ্যাপ্লিকেশনগুলি অন্তর্ভুক্ত করতে লেখা যেতে পারে:

/Applications
/Library
/usr/local

এর অর্থ হল যে আপনি কেবলমাত্র একটি প্রতীকী লিঙ্ক তৈরি করতে পারেন /usr/local/bin(এটি এখনও আপনার AT PATH- এ রয়েছে)।

তবে এটি মনে হচ্ছে আপনার বিশেষত প্রতীকী লিঙ্কটি তৈরি করতে হবে /usr/bin। সিস্টেম ইন্টিগ্রিটি প্রোটেকশন অক্ষম করে আপনি এটি অর্জন করতে পারেন (দয়া করে এটি করবেন না, কেবল স্ক্রিপ্টগুলি সম্পাদনা করুন ..)। আপনি এটি দ্বারা অক্ষম করতে পারেন (আমি নিজে এটি পরীক্ষা করি নি !!!):

Click the  menu.
Select Restart...
Hold down command-R to boot into the Recovery System.
Click the Utilities menu and select Terminal.
Type csrutil disable and press return.
Close the Terminal app.
Click the  menu and select Restart....

2
আপনি বিন্দুটি মিস করেছেন: প্রশ্নকারীর স্ক্রিপ্ট রয়েছে যা #!/usr/bin/zhশেল হিসাবে নির্দিষ্ট করে, তাই তিনি যে সমাধানটি সন্ধান করেন তা হ'ল এই অবস্থানটি শেলটি যেখানে রয়েছে সেখানে যুক্ত করা, তবে আপনি যেমন বলেছেন যে সে এটি করা থেকে সুরক্ষিত। সুরক্ষা বাইপাস না করা হলে, একমাত্র সমাধানটি স্ক্রিপ্টগুলির ব্যাচ সম্পাদনা বলে মনে হবে।
এএফএইচ

আচ্ছা হ্যাঁ, আপনি ঠিক বলেছেন, তাকে স্ক্রিপ্টগুলি সম্পাদনা করতে হবে (যা একটি কমান্ড দিয়েই ঘটতে পারে)।
13dimitar

@ দিমিতর প্রশ্নটি দেখুন: আমার মূল লক্ষ্য অর্জনের জন্য আরও ভাল উপায় আছে কি? নোট করুন যে # ঠিক করা! লাইন একটি বিকল্প নয়।
লেনি

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