আমি কীভাবে হোমব্রিউকে রুট হিসাবে চালাব?


11

কয়েক বছর আগে, আপনি brewমূলের ডুব brewদিয়ে কেবল রুট হিসাবে দৌড়ে পালাতে পারেন, তবে তারা সেই বৈশিষ্ট্যটি সরিয়ে ফেলেছে। সুতরাং হোমব্রু 1.1.6 এ, আমি /usr/local/Homebrew/Library/Homebrew/brew.shরুট চেকটি মুছে ফেলার জন্য সম্পাদনা করতাম (যা "এটি" অত্যন্ত বিপজ্জনক "বলেছিল) তাই আমি brewরুট হিসাবে চালাতে পারি ।

Homebrew এর নতুন সংস্করণ এখনো সাথে কাজ করে কিন্তু প্রত্যাবর্তন রাখে brew.shপর আমি চালানোর ফাইল ফিরে প্রত্যেক সময় brew, এমনকি আমি chmod 500এটা। আমি এটি পরিবর্তন করার জন্য একটি স্ক্রিপ্ট লিখতে পারলাম brewস্বয়ংক্রিয়ভাবে চালানো , তবে আমি নিশ্চিত নই যে এটি সর্বদা কাজ করবে এবং চান্স নিতে চাইবে না। হোমব্রিউকে রুট হিসাবে চালানোর জন্য কি কেউ আলাদা পদ্ধতি খুঁজে পেয়েছে?


3
কৌতূহলের বাইরে, আপনি কেন brewরুট হিসাবে চালাতে চান ? এছাড়াও, sudoআপনার উদ্দেশ্যে যথেষ্ট নয়?
অ্যালান

2
@ অ্যালান sudoএটিকে মূল হিসাবে চালায় এবং এটি আমাকে একই "অত্যন্ত বিপজ্জনক" ত্রুটি দেয়। আমি রুট হিসাবে চালাতে চাই কারণ এতে অন্যথায় কিছু নির্দিষ্ট প্যাকেজ ইনস্টল করতে সমস্যা রয়েছে, বিশেষত যদি কিছু কিছু হোমব্রিউয়ের মাধ্যমে ইনস্টল করা হয়নি (যেমন মাধ্যমে pip)। আমি অনেকবার সেই পথে নামলাম। প্লাস এটি একাধিক ব্যবহারকারীর জন্য অদ্ভুত workarounds ছাড়া সঠিকভাবে কাজ করে না যতক্ষণ না আমি সবকিছু হিসাবে রুট হিসাবে ইনস্টল করি।
sudo

$ সু -> w পলানো ভাটিওয়ারিওভেন্ট?
স্ট্রহারা

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

1
হুম, আমি সমস্যাটি আমার শেষ প্রান্তে দেখতে পাচ্ছি না যেখানে brew.shফাইলটি সংশোধন করে এবং তারপরে একটি brewকমান্ড চালানোর পরে আবার উল্টানো হচ্ছে । সুতরাং আমি চালাতে পারি sudo brew whateverএবং brew whateverঠিক জরিমানা করতে পারেন । আমার brew --versionআউটপুটটি এইভাবে: Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28) এফওয়াইআই, আমি ফাংশনে brew.shসমস্ত লাইন মন্তব্য করার জন্য আমার ফাইলটি সংশোধন করেছি check-run-command-as-rootএবং returnপরিবর্তে ফাংশনের শীর্ষে একটি একক বিবৃতি রেখেছি ।
জিডিপি 2

উত্তর:


2

স্ক্রিপ্টে আপনার পরিবর্তন করার পরে, brew.sh এ অবিচ্ছেদ্য পতাকা সেট করার চেষ্টা করুন।

chflags uchg /usr/local/Homebrew/Library/Homebrew/brew.sh

আমি পরীক্ষা করিনি। একটি সাধারণ নিয়ম হিসাবে, আমি এমন অ্যাপ্লিকেশনগুলিকে রুট দিই না যার বিকাশকারীরা আমাকে অনুরোধ করছেন না।


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

1
নিশ্চিত কাজ, ধন্যবাদ। প্রথমবার আপডেট করার চেষ্টা করতে কিছুটা সময় লাগে তবে পরে sudo brew installএটি স্বাভাবিক হিসাবে চালানো হয়।
sudo

1
আমি ম্যাকের সাথে ইনস্টল করব এমন প্যাকেজগুলির সাথে অব্যবস্থাজনক এবং সিস্টেমকে ব্যবহারযোগ্য নয় এমন রেন্ডার করার খুব বেশি কিছু নেই। যাইহোক, আমি 30 মিনিটের মধ্যে আমার সিস্টেম পুনরুদ্ধার করতে পারি। আমার ব্যবহারকারীকে পরিষ্কার করা অনেক বেশি শক্ত এবং সিস্তাপুলি সিস্টেম-ওয়াইড ব্যতীত অনেক কিছুই কাজ করে না, যেমন আমি উপরের মন্তব্যে ব্যাখ্যা করেছি।
sudo

1

সাধারণ ব্যবহারকারীদের এটি করা উচিত নয়, তবে আপনি কি সাধারণ না?

দুটি সমস্যা:

  1. আপনি রুট থামাতে পারবেন না। আপনি যদি রুটটি ব্যবহারের জন্য জেদ করেন, তবে রুট brew.shযাই হোক না কেন ওভাররাইট করতে পারে।

  2. আপনি থামাতে পারবেন না brew, সর্বোপরি, আপনি দৌড়ের কথা বলছেন brew

সুতরাং আমরা এটি নিয়ে কাজ করব। আসুন সেটআপ উপনাম উপর কপি করতে brew.shতারপর চালানো brew

alias brew='cp /<modified>/brew.sh /<actuall>/brew.sh; /usr/local/bin/brew'

(আপনার সিস্টেমের সাথে মেলে পাথগুলি ঠিক করুন)।

এখন আপনাকে যা করতে হবে তা হ'ল:

sudo brew <arguments>

(এটি মূল হয়ে যাবে, অনুলিপি করবে brew.sh, তারপরে brewযুক্তিগুলির সাহায্যে রুট হিসাবে চালাবে , এর পরে brewওভাররাইট হবে brew.shএবং আপনি এটি আবারও করতে প্রস্তুত হবেন)

দ্রষ্টব্য: আপনিও sudoউপনামটি রাখতে পারেন তবে এই উপায়টি আরও ভাল বোধ করে কারণ আপনাকে প্রতিবার পাসওয়ার্ডের জন্য অনুরোধ করা হবে।

সুরক্ষার জন্য সাধারণত শেল স্ক্রিপ্টগুলিতে রুট করতে আপনি setuid( chmod u+s) ব্যবহার করতে পারবেন না । পার্লের একটি পৃথক প্রোগ্রাম রয়েছে suidperlযা ইনস্টল করা যেতে পারে এবং ব্যবহারকারীর সুবিধাদি বাড়িয়ে তুলতে পারে তবে দ্রুত সমাধানের জন্য এই জাতীয় সমাধানগুলি কিছুটা গভীর।

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