do sudo প্রতিধ্বনি “ব্লে” >> / ইত্যাদি / sysctl.conf` অনুমতি অস্বীকার করেছে


16

দাবি অস্বীকার: আমি সিসাদমিন স্টাফগুলিতে বেশ নবী ice

আমি একটি এডাব্লুএস ইসি 2 উদাহরণে পোর্ট ফরওয়ার্ডিং সেটআপ করার চেষ্টা করছি, এটি কমান্ড-লাইনে করতে হবে কারণ আমি কোনও কিছুতে যেতে এবং সম্পাদনা করতে চাই না, এটি স্বয়ংক্রিয় হতে হবে (এটি একটি বিল্ড প্রক্রিয়াটির অংশ) )।

sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

অনুমতি অস্বীকৃত

অদ্ভুত জিনিসটি হ'ল আমি (সফলভাবে) sudoপ্রতিটি কমান্ডের জন্য suসুবিধাগুলি প্রয়োজন using আমি যদি sudo suকমান্ডের আগে করি (একটি sshসেশনে হাত দ্বারা এটি চেষ্টা করে ), তবে এটি কার্যকর হয়।

এর পেছনে কারণ? সম্ভাব্য সমাধানগুলি যা জড়িত sudo suবা ম্যানুয়াল সম্পাদনাগুলিতে নেই?


এখানে একই সমস্যা: স্ট্যাকওভারফ্লো.com / প্রশ্নগুলি / 25২২২///২ - এছাড়াও, আপনি যদি সত্যিই ঝুঁকিপূর্ণ হতে চান:sudo -i
মিররফেটে

উত্তর:


46

আপনি sudoআউটপুট পুনঃনির্দেশকে প্রভাবিত করতে ব্যবহার করতে পারবেন না ; >এবং >>(এবং, সম্পূর্ণতার জন্য <) কলিং ব্যবহারকারীর সুবিধার্থে প্রভাবিত হয়, কারণ পুনঃনির্দেশ কলিং শেল দ্বারা করা হয়, তথাকথিত সাবপ্রসেস নয়।

হয় হয়

cp /etc/sysctl.conf /tmp/
echo "net.ipv4.ip_forward = 1" >> /tmp/sysctl.conf
sudo cp /tmp/sysctl.conf /etc/

অথবা

sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"

15

এই কমান্ডটি ব্যবহার করা আপনার পক্ষে সহজতর হতে পারে:

echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf

12

sudoরুট হিসাবে পুনর্নির্দেশ নয়, কেবল আপনার কমান্ড চালায়। আপনাকে এটিকে সমস্ত কমান্ডে আবদ্ধ করতে হবে যেখানে পুরো জিনিসটি মূল হিসাবে চালিত হয়:

sudo sh -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'

3

কমান্ডটি sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confসেই হিসাবে ব্যাখ্যা করা হয় আপনি (ননরুট) ফলাফলটি sudo echo "net.ipv4.ip_forward = 1"/etc/sysctl.conf এ লেখেন ।

চালান

sudo -s 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'

অথবা

sudo su -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confরুট হিসাবে চালানো ।


1
sudo sed -i "$ a <text>" <file>
  • -i : জায়গায় ফাইল সম্পাদনা করুন।
  • $ a: শেষ লাইনে পাঠ্য যুক্ত করুন

ব্যবহার sedকমান্ড আপনাকে পুনঃনির্দেশ এবং পাইপলাইনের ঝামেলা এড়ায়।

তোমার ক্ষেত্রে: sudo sed -i "$ a net.ipv4.ip_forward = 1" /etc/sysctl.conf

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