হোস্ট ফাইলে একটি লাইন যুক্ত করা, সুডো - ম্যাক ব্যবহার করার সময় অনুমতি অস্বীকার করা


14

আমি টার্মিনালে একটি লাইন কমান্ড প্রয়োগ করে আমার ম্যাকের হোস্ট ফাইলগুলিতে একটি লাইন যুক্ত করার চেষ্টা করছি।

আমি ভেবেছিলাম এটি সুডো ব্যবহার করা সহজ হবে তবে আমি >>হোস্ট ফাইলটিতে যুক্ত করার চেষ্টা করার পরে এটি "অনুমতি অস্বীকার" করে দেয় , তবে আমি >হোস্টের সামগ্রীগুলি প্রতিস্থাপন করার চেষ্টা করলে এটি কাজ করে ।

sudo echo test >> /etc/hosts
-bash: /etc/hosts: Permission denied
$

sudo echo test > /etc/hosts
Password:
$ 

ওএস আপ টু ডেট।


আপনার / ইত্যাদি / হোস্টগুলি পরিবর্তন করতে কেবল একটি পাঠ্য সম্পাদক ( sudo দিয়ে শুরু ) ব্যবহার করুন
MrSmith42

1
আমি এমন একটি স্ক্রিপ্ট তৈরি করতে চাই যা এটি স্বয়ংক্রিয়ভাবে সহায়তা করবে, তাই কোনও পাঠ্য সম্পাদক এই ক্ষেত্রে সহায়তা করবে না।
পুদিনা

উত্তর:


17

এর কারণটি echoমূল হিসাবে চালিত হচ্ছে, তবে শেলটিই আসলে পুনঃনির্দেশটি সম্পাদন করছে। এটি কাজ করার জন্য আপনাকে একটি নতুন শেল স্প্যান করতে হবে:

sudo -- sh -c "echo test >> /etc/hosts"

সম্পাদনা: >পুনর্নির্দেশ কাজ করে এমন ঘটনা আমি দেখিনি ; আমি এটা ব্যাখ্যা করতে পারি না।


আমি মনে করি এটি ইউটিলিটিটি লক্ষ্য করার মতো teefrom sudoকারণ সুরক্ষার কারণে বেশিরভাগ উত্পাদন পরিবেশে এটিকে সাবস্কেল কার্যকর করার অনুমতি দেওয়া এবং এটি অবরুদ্ধ করা উচিত।
স্টিভ বুজোনাস

9

পরিবর্তে পুনর্নির্দেশের মাধ্যমে প্রতিধ্বনি চালানো যা আপনার বর্তমান ব্যবহারকারী হিসাবে চলবে, উদাহরণ হিসাবে প্রতিধ্বনিত হয় তার মতো রুট নয়, স্টিভ বুজোনাসের পরামর্শ অনুসারে টি ব্যবহার করুন

 echo 'test' | sudo tee -a /etc/hosts

Sudo এখন টি কমান্ড প্রয়োগ করা হয়। '-A' ফাইলটিতে যুক্ত হয়

এটি আউটপুট টিকে স্ট্যান্ডার্ড আউটপুটও দেবে। আপনি যদি নিজের টার্মিনালে 'পরীক্ষা' দেখতে না চান তবে > /dev/nullএই লাইনের শেষে যুক্ত করুন ।


1

প্রথমে কোনও নতুন লাইন তৈরি হয়েছিল তা নিশ্চিত করতে, আমি এটি ব্যবহার করেছি:

sudo -- sh -c "echo  \ \ >> /etc/hosts";sudo -- sh -c "echo 127.0.0.1  testdomain.com >> /etc/hosts"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.