যখন লঞ্চ এজেন্ট আমার .plist ফাইল চালায় তখন আমি কেন "ফাইলের সন্দেহজনক মালিকানা" ত্রুটি পাচ্ছি?


54

আমি একটি লঞ্চ এজেন্ট উদাহরণস্বরূপ একটি .plist ফাইলটি রান করার জন্য কনফিগার করেছেন: /Library/LaunchAgent/foo.plist। এই .plist এর ভিতরে এটি চলাকালীন LoginWindowএবং চলাকালীন সেট করা আছে Aqua

আমি যখন আমার কম্পিউটারটি চালু করার এবং লগইন স্ক্রিনে উঠার চেষ্টা করি তখন এই প্লিস্টটি চালানো উচিত তবে পরিবর্তে নিম্নলিখিত ত্রুটিটি দেয় (কনসোলে):

প্রবর্তক: ​​ফাইলের উপর সন্দেহজনক মালিকানা (এড়িয়ে যাওয়া): / লাইব্রেরি / লঞ্চআজেন্টস / ফু.পিস্ট

আমি যখন কোনও প্রশাসনিক অ্যাকাউন্টে লগ ইন করার চেষ্টা করি তখন এটি ঠিক একই ত্রুটি বার্তা দেয়। আমি যখন কোনও অ্যাডমিন অ্যাকাউন্ট দিয়ে লগইন করার চেষ্টা করি তখন তা ঠিক কাজ করে।

আমি সত্যবাদী হব, ম্যাক ওএস এক্স সুবিধাগুলি এবং অনুমতিগুলি সম্পর্কে আমি বেশি কিছু জানি না।

ফাইল তৈরি করার জন্য, আমি এটা খোলা emacs, সঙ্গে sudoঅ্যাডমিন অ্যাকাউন্ট (ব্যবহার করে যেমন উপর suঅন্যান্য অ্যাকাউন্ট থেকে কমান্ড উবুন্টু কোনও সুবিধা নেই) এবং তারপর এটি সংরক্ষিত।

ফাইলটি তৈরি করতে আমার কোন অ্যাকাউন্টটি ব্যবহার করা দরকার যাতে এটি সমস্ত ব্যবহারকারীর জন্য কাজ করে?
আমার কি sudo কমান্ড ব্যবহার করা দরকার?
আমার কি ফাইলের অনুমতিগুলি পরিবর্তন করতে হবে (যেমন ব্যবহার chmod)?
বিদ্যমান ফাইলটি নেওয়ার এবং ফাইলটি পুনরায় তৈরি করার পরিবর্তে এর মালিকানা পরিবর্তন করার কী সহজ উপায় আছে?
কেউ দয়া করে ব্যাখ্যা করতে পারেন কেন এই ত্রুটি ঘটে?


Ls -l /Library/LaunchAgent/foo.plist- র জন্য কী দেয়
ব্যবহারকারী 151019

1
@ মার্ক: এটি নিম্নলিখিতটি দেয়:-rw-r--r--@ 1 admin staff 653 Oct 17 14:31 /Library/LaunchAgents/foo.plist
সেনসফুল

লোডিং ( -F) চাপানোও সম্ভব ।
কেনারব

উত্তর:


51

যদি প্লিস্টটি রুটের মালিকানাধীন থাকে এবং রুট ব্যতীত অন্য কোনও ব্যবহারকারী দ্বারা লিখিত হয়, তবে এটি একটি সুরক্ষার সমস্যা।

আপনি মালিককে মূলের সাথে রুটে পরিণত করতে পারেন sudo chown root <filename>এবং sudo chmod 644 <filename>(পড়ার অ্যাক্সেসের জন্য 4 টি, লেখার অ্যাক্সেসের জন্য 2 টি, এক্সিকিউট এক্সেস এক্সিকিউটের জন্য 1 টি যোগ করা হয়েছে) যুক্ত করে যোগ করতে পারেন first প্রথম সংখ্যাটি মালিকের জন্য, দ্বিতীয়টি গ্রুপের জন্য, তৃতীয়টির জন্য সবাই.)


এইটা কাজ করে. কেন আমি যদিও মালিককে মূলে পরিণত করতে হয়েছিল সে সম্পর্কে আমি কেবল বিভ্রান্ত। লঞ্চএজেন্টসগুলির জন্য ব্যবহার করা ব্যবহারকারীকে কী মূল?
সেনসফুল

1
হ্যাঁ আমি তাই মনে করি.
মিচিয়েল ডি মেরে

1
আমি জানি এটি একটি পুরানো পোস্ট, তবে এটি দুর্দান্ত উত্তর! অ্যাপল প্রস্তাবিত একটি স্থির করার জন্য আমি /system/library/launchdaemons/com.apple.mdns সংবাদদাতার উপর অনুমতিগুলি পরিবর্তন করেছি, তবে পরে লোড করার চেষ্টা করার সময় আমি উপরে উল্লিখিত ত্রুটিটি পেয়ে যাব। উপরে বর্ণিত হিসাবে মালিক এবং অনুমতিগুলি পরিবর্তন করা আমার ইন্টারনেট সংযোগটি ফিরে পাওয়ার একমাত্র উপায় ছিল। ধন্যবাদ!

এখন একই মুখোমুখি এবং সমাধান। আমি বুঝতে পেরেছি যে ফাইলটির মালিক অনেক অনুরোধ করে launchctl। আমি ফাইলটিকে আমার সাধারণ ব্যবহারকারী হিসাবে তৈরি করেছিলাম এবং এর সাথে সম্পাদন করছি sudo। সুতরাং ত্রুটি। যেহেতু মূল ফাইলটির মালিক নয়, কোনও sudoপ্রয়োজন নেই। আমি ছাড়া দৌড়েছি sudoএবং এটি ভাল কাজ করেছে।
বিভাস

14

থেকে launchctl (1) র manpage এর 'র বিবরণ loadsubcommand:

নোট করুন যে প্রতি ব্যবহারকারী কনফিগারেশন ফাইলগুলি (লঞ্চআজেন্টস) অবশ্যই তাদের লোড করা ব্যবহারকারীর মালিকানাধীন থাকতে হবে। সমস্ত সিস্টেম-ব্যাপী ডেমনগুলি (লঞ্চডেমোনস) অবশ্যই মূলের মালিকানাধীন। কনফিগারেশন ফাইলগুলি অবশ্যই গ্রুপ-বা বিশ্ব-লিখনযোগ্য নয়। সুরক্ষার কারণে এই বিধিনিষেধগুলি স্থানে রয়েছে, কারণ একটি প্রবর্তিত কনফিগারেশন ফাইলটিতে লিখনযোগ্যতা মঞ্জুরি দেয় যা নির্বাহযোগ্য কোনটি চালু হবে তা নির্দিষ্ট করতে দেয়।

লঞ্চক্টেলটিতে বেশ কয়েকটি " সন্দেহজনক ..." বার্তা রয়েছে। Launchd (উদাহরণস্বরূপ) 10.6.7 কোড তার তিন ধরনের বার্তা launchctl.c(ফাংশন দেখতে path_goodness_check)।

  1. Dubious permissions on file (skipping): <pathname>
  2. Dubious ownership on file (skipping): <pathname>
  3. Dubious path. Not a regular file or directory (skipping): <pathname>

এই বার্তাগুলি এড়াতে কোনও পাথের নাম অবশ্যই (# 3) একটি নিয়মিত ফাইল বা ডিরেক্টরি 1 (বা একের কাছে একটি সিএমলিঙ্ক) হতে হবে যা (# 1) মূল বা আমন্ত্রনকারী ব্যবহারকারীর মালিকানাধীন (# 2) "গ্রুপ" বা "অন্যান্য নয়" ”লিখনযোগ্য (যেমন chmod go-w)।

1 নামযুক্ত পাইপ, ব্লক / অক্ষর বিশেষ ডিভাইস নোড, স্থানীয় ডোমেন সকেট, ইত্যাদি নেই


আপনার ফাইলটি সম্ভবত অ্যাডমিন ব্যবহারকারীর মালিকানাধীন যেহেতু আপনি বলছেন যে সেই ব্যবহারকারী হিসাবে লগ ইন করার সময় আপনি বার্তাটি পান না (সেই ক্ষেত্রে পথটির নাম প্রার্থনাকারীর মালিকানাধীন)।
অন্যান্য ব্যবহারকারীর জন্য পাথের নামটি তৈরি করতে, এটি মূলের মালিকানাধীন উচিত।

এটি সাজানোর জন্য, করুন:

sudo chown root /Library/LaunchAgent/foo.plist

1

উত্তরের জন্য ধন্যবাদ (মালিককে রুটে পরিবর্তন করা) - এটাই আমার দরকার।

এটিকে 'আমিও' পোস্টের চেয়ে কিছুটা বেশি করার জন্য ... আমি এখানে একটি সংশ্লেষিত পথ দিয়ে পৌঁছেছি: পেয়ে যাচ্ছিলাম "এই এপিআইটি কেবলমাত্র একোয়া সেশনের মধ্যে চলমান একটি প্রক্রিয়া দ্বারা ব্যবহৃত হতে পারে" লঞ্চডেমনের ত্রুটি। এর উত্তর খুঁজতে গিয়ে আমাকে ডেমন এবং এজেন্টগুলিতে অ্যাপলের টেকনোটের দিকে নিয়ে যায় যা কীভাবে 'অ্যাকোয়া সেশন' ত্রুটি সমাধান করতে পারে তা ব্যাখ্যা করেছিল, তবে এটি আমাকে 'সন্দেহজনক মালিকানা' ইস্যুতে ফেলেছে। আমি এখানেই এসেছি, যেখানে আমার চূড়ান্ত সমস্যাটি সমাধান হয়েছে।

সম্ভবত এই সমস্ত আলোচনায় যোগ করার ফলে কিছু অনুসন্ধান ইঞ্জিন এই পৃষ্ঠাটিকে পূর্ববর্তী বিষয়গুলির একটিতে লিঙ্ক করবে, যার ফলে কিছু ভবিষ্যতের অ্যাডভেঞ্চারার কিছুটা সময় সাশ্রয় করবে।


দ্রষ্টব্য, এটি কোনও উত্তরের পরিবর্তে একটি মন্তব্য হওয়া উচিত।
স্টুডিজ

1
আমি মন্তব্য করতাম, তবে আমার খ্যাতি পয়েন্টগুলি যথেষ্ট বেশি ছিল না। (এটা কি পিছনের দিক থেকে মনে হচ্ছে না যে কেউ স্বল্প খ্যাতি নিয়ে 'উত্তর' দিতে পারে তবে মন্তব্য করে না?)
ম্যাট স্ট্রেঞ্জ

-2

ব্যবহারকারীর মালিকানাধীন root / লাইব্রেরি / লঞ্চএজেন্টে ফাইলের জন্য এবং মূলটি sudo না, আপনি যদি মূল ব্যবহারকারী থেকে এটি লোড করছেন তখনই আপনাকে মালিকানা পরিবর্তন করতে হবে


-3

লোকেরা কীভাবে sudoকাজ করে তা না জানলে এটি ঘটে । যে পরিষেবাগুলি আপনার ব্যবহারকারী মালিকানাধীন ফাইল উপর অক্ষম করতে শুধু কল launchtlছাড়া sudo

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