/ Usr / স্থানীয় / সঠিক জন্য আমার অনুমতি আছে?


87

আমি আমার পোর্টের চাহিদাগুলির জন্য হোমব্রু ব্যবহার করছি (ম্যাকপোর্টগুলির তুলনায় একটু "ক্লিনার" বলে মনে হচ্ছে)।

আমি বিনা sudoমূল্যে ইনস্টল করতে পারি (যা দুর্দান্ত) তবে ম্যান লিঙ্কিং পদক্ষেপটি এটির প্রয়োজন হয় (এটির /usr/local/share/man/man3মালিকানাধীন root) বলে মনে হয় । আমি পাওয়া
একটি গাইড আমি chown /usr/localকরছেন দ্বারা recursively পরামর্শ

sudo chown -R `whoami` /usr/local

এটি কি নিরাপদ ... নাকি এটি একটি খারাপ আইডিয়া ™?

এছাড়াও: আমার অনুমতি সঠিক?

$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x    8 root  staff   272B  4 Set 11:02 .
drwxrwxr-x    9 root  staff   306B 10 Set 11:27 ..
drwxr-xr-x    3 root  wheel   102B  4 Ago  2009 de
drwxrwxr-x  163 root  staff   5,4K 10 Set 11:27 man1
drwxr-xr-x   11 root  wheel   374B 10 Set 11:27 man3
drwxr-xr-x    7 ago   staff   238B 10 Set 11:39 man5
drwxr-xr-x   11 ago   staff   374B 10 Set 11:39 man7
-rw-r--r--    1 root  staff    13K  4 Set 11:02 whatis

5
Homebrew ব্যবহার করা বোঝানো হয় কিভাবে এই হল। কিছু মানুষ ভিন্নমত পোষণ করতে পারে কিন্তু সীসা বিকাশকারী এমনভাবে কাজ করতে বলে।
মাইক ম্যাককুয়েড

1
আপনার chown থেকে সামান্য ভালো বিকল্প: sudo chown -R :admin /usr/local। এই ভাবে, এটি মেশিনের যে কোন প্রশাসক ব্যবহারকারীর জন্য একই কাজ করবে। যদিও sudo find /usr/local -perm -200 -exec chmod g+w '{}' \+ব্যবহারকারীর কাছে একই গ্রুপের অ্যাক্সেস অ্যাক্সেস নিশ্চিত করার জন্য আপনাকেও চালানোর প্রয়োজন হতে পারে ।
স্লিপ ডি। থম্পসন

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

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

@ মাইক এমকিউউউউইউড আমি এটি আকর্ষণীয় মনে করি যে হোমব্রি অবশেষে এই বিষয়ে দোষ স্বীকার করেছে এবং একটি বা দুই সপ্তাহ আগে প্রকাশিত নতুন সংস্করণে, / usr / local
oemb1905

উত্তর:


36

এটা যতটা সম্ভব কঠোর অনুমতি অনুমতি রাখা ভাল। /usr/localমালিকানা রাখা rootমানে কেবলমাত্র যে প্রক্রিয়াগুলিকে চালানো হয় root/ sudo(অথবা অ্যাপল অনুমোদন সংলাপ বাক্সের মাধ্যমে প্রশাসক ব্যবহারকারীর কাছে জিজ্ঞাসা করুন) এই অঞ্চলে লিখতে পারেন। সুতরাং, একটি প্রক্রিয়া ডাউনলোড আপনাকে ফাইলগুলি দূষিত করার আগে একটি পাসওয়ার্ড জিজ্ঞাসা করতে হবে।

কিন্তু আপনি যেমন বলেছেন, এটি নতুন প্রোগ্রামগুলিকে আরও জোরালো করে তোলে।

আমি চলমান সাথে ঠিক আছি sudo, আপনি তাদের চালানোর চেয়ে কম সংখ্যক জিনিস ইনস্টল করেন তবে আপনাকে বিশ্বাস করতে হবে যে বিল্ড প্রক্রিয়াটি যা কিছু করা উচিত তা পরিবর্তন করে না।

আপনি যদি সুডো এড়াতে চান তবে আমি হোমব্রু ইন্সটল করব ~/usr/localএবং আপনার পথ, ম্যানপ্যাথ ইত্যাদি পরিবর্তন করবো যাতে সেখানে অন্তর্নিহিত ডিরেক্টরি অন্তর্ভুক্ত করা যায়।

একটি ভাল উপায় হল অন্য ব্যবহারকারী homebrewতৈরি করা , বলুন এবং সেই ব্যবহারকারীর মালিকানাধীন ডিরেক্টরি তৈরি করুন। তারপর, ব্যবহার করে ইনস্টল করুন sudo -U homebrew। অন্যান্য ব্যবহারকারীরা অন্য কোনও ফাইলকে ওভাররাইট করতে সক্ষম হওয়ার সুবিধা পাবেন, কারণ তারা চলছে না root এবং অন্যান্য প্রোগ্রাম হোমব্রীকে প্রভাবিত করতে পারে না। (আমি মনে করি যে হোমব্রু FAQ টি এই নতুন ব্যবহারকারীর পরামর্শ দেয় যদি আপনি "বহু ব্যবহারকারীর পরিবেশে" থাকেন। আমি বলব যে ম্যাকোএস সহ যেকোনো ইউনিক্স মেশিন একটি বহু ব্যবহারকারী পরিবেশ)

তবে হোমব্রু উইকি বলছে যে রেসিপিগুলি সমস্ত ক্ষেত্রে খুঁজে পাবে না /usr/localএবং তাদের প্রতিস্থাপিত ডিরেক্টরি দিয়ে প্রতিস্থাপন করবে না বলে সন্দেহ করছি যে আমরা আটকে আছি /usr/local


1
অনুমোদন কঠোর, এবং পরিবর্তন $PATHএবং $MANPATHব্যবহারকারী ডিরেক্টরি অন্তর্ভুক্ত করার জন্য +1 । ইনস্টল করা প্রোগ্রাম সিস্টেমব্যাপী ইনস্টলেশন প্রয়োজন হয় না, এটি একটি অনেক ভাল বিকল্প।
জেনেক

3
+1 এবং "সম্ভব হিসাবে কঠোর অনুমতি রাখুন" এর জন্য গৃহীত উত্তর। কাজ করা brew doctor(নীচে প্রস্তাবিত) আমাকে বলেছিল যে আমাকে শুধুমাত্র ভাগ করা ম্যান ডিরেক্টরিগুলি চেনা উচিত ... আমার জন্য যথেষ্ট নিরাপদ।
অ্যাজস

1
অ্যাডমিন ব্যবহারকারীদের সর্বদা চালানোর জন্য যথেষ্ট নিরাপত্তার জন্য যেসব ব্যক্তিরা সর্বদা পরিচালিত হয় তাদের পক্ষে সমঝোতার সমাধান, গ্রুপ মালিকানা এবং অনুমতিগুলি পরিবর্তন করতে হয় যাতে শুধুমাত্র প্রশাসকরা / usr / স্থানীয়কে লিখতে পারে। Kenorb এর উত্তর দেখুন।
হিমিজেল

2
@ মার্ক আমি এটা আকর্ষণীয় মনে করি যে অবশেষে হোমব্রিউ এই বিষয়ে দোষ স্বীকার করেছে এবং একটি বা দুই সপ্তাহ আগে প্রকাশিত নতুন সংস্করণে, ডিফল্ট অনুমতিগুলি / usr / local
oemb1905

48

আমি হোমব্রু ব্যবহার করি এবং এটি সম্পূর্ণ নিরাপদ নিশ্চিত করতে পারি। অফিসিয়াল হোমব্রুইনস্টলেশনের পৃষ্ঠাটি উদ্ধৃত করুন FAQ :

নিজেকে একটি উপকার এবং চয়ন /usr/local

  1. এটা সহজেই
    /usr/local/bin আপনার মধ্যে ইতিমধ্যে PATH

  2. এটি সহজ
    যে তাদের নির্ভরতাগুলি যদি / usr বা / usr / স্থানীয় হয় না তবে স্ক্রিপ্টগুলি বানাতে টনগুলি। আমরা হোমব্রু সূত্রগুলির জন্য এটি ঠিক করেছি (যদিও আমরা সর্বদা এটির জন্য পরীক্ষা করি না), তবে আপনি দেখতে পাবেন যে অনেক রুবিজমে এবং পাইথন সেটআপ স্ক্রিপ্টগুলি আমাদের নিয়ন্ত্রণের বাইরে কিছু যা বিরতি দেয়।

  3. এটি নিরাপদ
    অ্যাপল POSIX এর সাথে সম্মত হয়েছে এবং আমাদের জন্য এই ডিরেক্টরিটি ছেড়ে দিয়েছে। যার মানে /usr/localডিফল্টরূপে কোন ডিরেক্টরি নেই , তাই বিদ্যমান সরঞ্জাম আপ messing সম্পর্কে চিন্তা করার প্রয়োজন নেই।

আপনি brews উপর নির্ভর করে রত্ন ইনস্টল করার পরিকল্পনা তারপর নিজেকে ঝগড়া একটি গুচ্ছ সংরক্ষণ এবং ইনস্টল /usr/local!

শিরোনাম এবং dylibs জন্য অ-স্ট্যান্ডার্ড ডিরেক্টরি দেখতে মোম বলুন তুচ্ছ নয়। যদি আপনি চয়ন করেন /usr/local, সবকিছু "ঠিক কাজ করে!"

আমি ঠিক যে যুক্ত করতে হবে রুট হিসাবে একটি খুব খারাপ ধারণা করছেন জিনিষ , তাই chowning /usr/localনা শুধুমাত্র আমাকে মনে যুক্তিসঙ্গত (এটা উপর ওএসএক্স একটি সিস্টেম Dir না), কিন্তু বিবেকী

আপনার অনুমতি সঠিক নয় (এখনো)। শুধু আপনি তালিকাভুক্ত কমান্ড চালান এবং আপনি জরিমানা হতে হবে।

যদি আপনার অন্য সমস্যা মনে থাকে, brew doctorআপনার সাহায্য করতে পারেন!


মন্তব্য বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাট করতে সরানো হয়েছে ।
bmike

7
চ্যাট চলে গেছে, যা একটি দু: খজনক। তাই ইতিহাস পুনরাবৃত্তি করার ঝুঁকিতে, আমি এখানে আমার মন্তব্য রেখে দেব: এটি সম্পন্ন করা মানে এই নিরাপদ নয়।
হিমিজাইল

4
চার্টের তালিকাটি হ'ল হোমব্রু এই প্রস্তাবটি ভুল করার কারণগুলি আছে বলেই মনে হয়
মার্ক

1
brew doctorসহজভাবে সন্ত্রস্ত।
উক্কু

5
@ কারমাইন পাওলোনো আমি অবাক হয়েছি যে হোমব্রু অবশেষে এই বিষয়ে দোষ স্বীকার করেছে এবং একটি বা দুই সপ্তাহ আগে প্রকাশিত নতুন সংস্করণে, / usr / local
oemb1905

9

আপনি হোমব্রু ব্যবহার করছেন, তবে আপনাকে নির্দিষ্ট গোষ্ঠীতে (উভয় adminবা তার staff) লেখার অনুমতি দিতে হবে , তাই ফাইলগুলি সেই দলের ব্যবহারকারীদের মধ্যে ভাগ করা যেতে পারে।

উদাহরণ স্বরূপ:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

তারপরে brewসেই গোষ্ঠীতে কমান্ড অ্যাক্সেস থাকা ব্যবহারকারীদের বরাদ্দ করুন (মাধ্যমে আপনার গোষ্ঠীগুলি চেক করুন id -Gn:)।

তারপর যখন কাজ করে brew, এটি দিয়ে চালান না sudo

এখনও কিছু অনুমতি সমস্যা থাকার সময়, সমস্যাটির brew doctorসমস্যা সমাধান করতে চালান ।


একটি প্রকৃত, ভাল-আচরণ-ইশ সমাধান দেওয়ার জন্য +1, এমনকি শেষ না হওয়া পর্যন্তও। উদাহরণস্বরূপ: একটি ব্যবহারকারীকে বিএসডি স্তরের অ্যাডমিন গ্রুপে যুক্ত করুন? অ্যাডমিন ব্যবহারকারীদের ওএস এক্স এর ধারণা নিয়ে যে জগাখিচুড়ি হবে না?
হিমিজাইল

রেকর্ডের জন্য, আমি এই নির্দেশাবলী অনুসরণ করেছি, কিন্তু কেবলমাত্র আমার বিদ্যমান OS X GUI- তৈরি অ্যাডমিন ব্যবহারকারীকে CLI- তে যেকোনো গোষ্ঠীতে যোগ করার পরিবর্তে ব্যবহার করেছি। এটি কাজ করে: ব্রু কমান্ড চালাতে সক্ষম হবার জন্য, আমাকে প্রথমে করতে হবে su myAdminUser, এবং তারপরে সবকিছুই উদ্দেশ্যে কাজ করে। তবে অবশ্যই এই সমাধানটি এমন লোকদের জন্য কোনও নিরাপত্তা দেবে না যেহেতু ইতিমধ্যেই প্রশাসক ব্যবহারকারী সর্বদা চলছে।
হিমিজেল

সম্ভবত এটি সর্বোত্তম উপায়, আমি @ কেঙ্কোরব
পিক্সেল 67

7

এটি কি মূল্যের জন্য, /usr/localওএস এক্স দ্বারা একটি "সিস্টেম" ফোল্ডার হিসাবে বিবেচিত হয় না এবং একটি নতুন নতুন স্নো চিতাবাঘের উপর যে ফোল্ডারটি খালি থাকে তা ইনস্টল করুন।

যে ফোল্ডারটিতে যে কোন রুট-মালিকানাধীন স্টাফ sudo make installঅন্য সফটওয়্যারের ফলাফল , বা .pkgস্টাফ-এ ডাম্প করতে চায় এমন দুবার ক্লিক করার পরে আপনার পাসওয়ার্ড প্রদান করা /usr/local

মালিকানা /usr/localএকটি বছর ধরে 2 মেশিনে "আমার জন্য কাজ করেছে"।

এক গোচচাটি হল যে আপনি যদি মাইএসকিউএল (হোমব্রু ব্যবহার না করে) ইনস্টল করেন এবং তার ফাইলগুলি চাউন করেন তবে এটি সম্ভবত তার ডেটাবেসগুলি দেখতে সক্ষম হবে না (তাই আপনাকে মাইক্রোএল যে ব্যবহারকারী হিসাবে চলছে সেগুলি আবার চালাতে হবে ।)


5
gcc এবং অন্যান্য ডেভেলপমেন্ট সরঞ্জামগুলি স্বয়ংক্রিয়ভাবে / usr / স্থানীয়ে দেখায় তাই এটি সিস্টেমকে প্রভাবিত করে
মার্ক

11
সমস্যা এটি একটি "সিস্টেম" ফোল্ডার নয়; এটি একটি "systemwide" ফোল্ডার। এমনকি সেখানে কিছুই নেই, /usr/local/binডিফল্ট $PATHমান এখনও আছে , এবং আপনি সেখানে যা রেখেছেন তা অন্যান্য ব্যবহারকারীদেরও ব্যবহার করা যেতে পারে এবং বিশ্বস্ত হওয়া উচিত । যদি পুরো /usr/local/ডিরেক্টরিটিতে /usr/local/share/manOP এর সেটআপে বর্তমানে একই অনুমতি থাকে তবে যে কেউ স্ক্রিপ্ট দিয়ে যে কোনও বাইনারি পরিবর্তন করতে পারে rm -rf ~
zneak

1
খুব ঝুঁকিপূর্ণ: সম্ভবত আমি মাইএসকিউএলটি শীঘ্রই বা পরে ইনস্টল করব
আগোএস

2
@ অ্যাগোস: আপনি সবসময় হোমব্লিউ সহ মাইএসকিউএল ইনস্টল করতে পারেন, এ ক্ষেত্রে আপনার কোন সমস্যা হবে না :)
কারমাইন

1
@ অ্যাগোস সব সময়ে ঝুঁকিপূর্ণ নয়। হোমব্রু আগে মাইএসকিউএল ইনস্টল করলে সতর্কতাটি শুধুমাত্র প্রযোজ্য। যদি আপনি এটি পরে অনুমতি উপর /usr/localজরিমানা করা উচিত। (কিন্তু আপনি সম্ভবত
পোস্টগ্রেস

6

হোমব্রু 1.0.0 হিসাবে:

Homebrew আর / usr / স্থানীয় মালিকানা আছে প্রয়োজন। যদি আপনি চান যে আপনি / usr / স্থানীয়কে তার ডিফল্ট মালিকানাতে ফেরত দিতে পারেন: sudo chown root: wheel / usr / local


1
আমি বর্তমানে ব্রু ব্যবহার করে আপডেট করছি brew update, যা এখনও মালিকানা প্রয়োজন /usr/local। আমি পরে অনুমতি পুনরুদ্ধার করার চেষ্টা করব।
যিহোশূয় পিটার

এই সত্যিই মহান তথ্য! আমি হোমব্রু (<1.0) দ্বারা নির্দিষ্ট হিসাবে পারম সেট করি এবং আপডেট করার পরে, এটি কীভাবে সেটিকে সেট করা যায় সে সম্পর্কে এই নির্দেশনা দেয়।
মার্টোনা 4২4

0

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


7
এখানে সমস্যাটি /usr/local/binবেশিরভাগ ব্যবহারকারীদের জন্য $ PATH এর সামনে খুব ভাল হতে পারে। ডিরেক্টরিটি বিশ্ব-লেখক তৈরি করে সেভাবে অনেকগুলি সুরক্ষা গর্ত খোলে।
নোহিলসাইড

@patrix তাই পথ পরিবর্তন করুন। :) যদি আপনার স্ক্রিপ্টগুলিতে সন্দেহজনক কমান্ড পাথের কারণে সুরক্ষা গর্ত থাকে, তবে আমি স্ক্রিপ্টগুলিকে দোষারোপ করব, আপনার অনুমতিগুলির জন্য নয় - স্ক্রিপ্টগুলিতে আহ্বান করা কমান্ডগুলি সাধারণত এই কারণে সম্পূর্ণরূপে যোগ্যতা অর্জন করা উচিত। যাইহোক, কোনও ভাল সমাধান নেই: আপনি আপনার অ্যাডমিন অ্যাকাউন্টটি একটি অনিরাপদ উমস্ক দিন, অথবা আপনি আপনার সমস্ত বিল্ড স্ক্রিপ্টগুলি চালান sudo, অথবা আপনি কিছু ব্যবহারকারীকে অনুমতিগুলি লেখেন /usr/local। আমি তৃতীয়তম ঝুঁকিপূর্ণ হিসাবে নিতে হবে ... যদি না আপনি একটি ভাল উপায় জানেন।
মারেন ল্যাবো-কোসার

হুম। এই সম্পর্কে আরও কিছু ভাবছেন, হোমব্রুটি ডিফল্টভাবে RVM কী করে তা করতে পারে এমন একটি ভাল উপায় হতে পারে: সবকিছু ~/brewবা কিছু এটিকে ইনস্টল করুন । সমস্যা, যদিও, রুবি অসদৃশ, যা বেশ স্বনির্ভর, অনেকগুলি * নিক্স ইউটিলিটি একে অপরকে খুঁজে বের করার আশা করে /usr/local...
মারেন ল্যাবো-কোসার

3
আমি উল্লেখ করতে অবহেলা করেছি যে আমার /usr/localবিশ্ব-লেখক নয়: বরং, আমার একটি বিশ্বস্ত গোষ্ঠী রয়েছে homebrew(শুধুমাত্র অ্যাডমিন নয়) যার কাছে লেখার অনুমতি রয়েছে ( 0: group:homebrew allow add_file,delete,add_subdirectory,delete_child,file_inherit,directory_inheritসম্পূর্ণ রক হিসাবে বর্ধিত অনুমতি )। এটি আমার পক্ষে সবচেয়ে ভাল আপোস যা আমি বুঝতে পেরেছি: sudoস্ক্রিপ্টগুলি তৈরি করতে না , তবে কিছু নিয়ন্ত্রণ করা /usr/local
মারেন ল্যাবো-কোসার

@ মার্নেন লাইবো-কোসার আমি এই পদ্ধতির আরো গভীরতার ব্যাখ্যা দেখতে চাই (লেখার অনুমতি সহ ব্যবহারকারীদের বিশ্বস্ত গোষ্ঠী তৈরি করা /usr/local)। SO এবং অন্যান্য সাইটগুলিতে অনেকগুলি ট্র্যাভেলিং করছেন, আবার আর্গুমেন্টগুলি দেখছেন: হোমব্রীকে ব্যবহারকারীর হোম ফোল্ডার বনাম সরানো /usr/localহচ্ছে, মালিকের এবং / অথবা গোষ্ঠী পরিবর্তন করা হচ্ছে /usr/localনা ইত্যাদি ... ইত্যাদি বলা কঠিন। সর্বজনীন গ্রহণযোগ্য সমাধান। এই বিষয়ে আপনার কোন ব্লগ পোস্ট বা নিবন্ধ আছে, অথবা আপনি কোথাও গভীর ব্যাখ্যা দিতে পারেন?
গ্যাব্রিয়েল এল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.