একটি কমান্ড লাইনে পাসওয়ার্ড সহ sudo?


115

ব্যস্ত দিনগুলিতে, আমি দৌড়াতে চাই

$ ./configure && make && sudo make install && halt

রাতে এবং বিছানায় যান, এই অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যাবে। তবে পরের দিন আমি যা দেখছি তা হ'ল স্ক্রিন যেখানে সুডো আমাকে পাসওয়ার্ড জিজ্ঞাসা করে। সুতরাং আমি কীভাবে একটি কমান্ড লাইনে পাসওয়ার্ড সহ sudo চালাতে পারি, বা এটি করার জন্য অন্য কোনও পদ্ধতি আছে?


আপনাকে haltরুট হিসাবে চালানো দরকার ।
কিথ থমসন

1
না sudo15 মিনিটের সময় সমাপ্ত আছে? আপনি কি চালাতে, বলতে sudo lsবা অনুরূপ কিছু করতে পারছেন না , নিজের পাসওয়ার্ডটি প্রবেশ করান, এবং তারপরে sudoবিশেষাধিকারগুলি সক্রিয় রেখে উপরের কমান্ডটি চালাতে পারেন ? (আমি এই মুহুর্তে এটি পরীক্ষা করতে পারি না, অন্যথায় আমি উত্তর হিসাবে এটি পোস্ট করি))
ম্যাট

1
সময়সীমাটি sudoকনফিগারযোগ্য। সুরক্ষা-সচেতন ব্যক্তিরা (আমার মতো উগ্র), এটি শূন্যতে সেট করেছে ... :-)
ডিডিএ

উত্তর:


173

হ্যাঁ, -Sএসটিডিআইএন থেকে পাসওয়ার্ড পড়ার জন্য স্যুইচটি ব্যবহার করুন :

$echo <password> | sudo -S <command>

সুতরাং আপনার ক্ষেত্রে এটি দেখতে এই রকম হবে:

$./configure && make && echo <password> | sudo -S make install && halt

অবশ্যই, <password>আপনার পাসওয়ার্ড দিয়ে প্রতিস্থাপন ।


42
স্পষ্টতই, শেল ইতিহাসে অন্য কারও পাসওয়ার্ড দেখার যদি কোনও বিপদ থাকে তবে এটি চালাতে চাইবে না।
ব্রেট ড্যানিয়েল

রিমোট হোস্টে সুবিধামত কমান্ডগুলি চালনার দ্রুত উপায়গুলি অনুসন্ধান করা এবং এটি ধন্যবাদ।
নেলারো

13
যদি আপনি 'প্রতিধ্বনি <পাসওয়ার্ড> | ব্যবহার করার সিদ্ধান্ত নিয়েছেন কমান্ডের ইতিহাসে পাসওয়ার্ড প্রকাশ করা এড়াতে sudo -S 'বিকল্পটি, একটি স্পেস অক্ষর দিয়ে কমান্ডটি শুরু করুন। অবশ্যই, সেরা বিকল্পটি সুরক্ষিত ফাইল থেকে পাসওয়ার্ডটি পাইপ করা।
শ্যানন হাওরথ

আপনি এটি ব্যবহার করতে চাইতে পারেন আপনার যদি পাসওয়ার্ডটি কোনও
AR ভারিবেলে থাকে (

9 বছর পরে এবং এখনও
মনোমুগ্ধকর

10

আপনি এটি দিয়ে আপনার কমান্ড লাইনটি প্রতিস্থাপন করতে পারেন:

$sudo su

$./configure && make && make install && halt

আপনাকে অবিলম্বে আপনার পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে, তারপরে বাকি কমান্ডগুলি সুপারভাইজার হিসাবে চলবে।


8
এর একটি বিকল্প (এবং সম্ভবত পছন্দসই) সংস্করণ:sudo sh -c "./configure && make && make install && halt"
কোয়াকোট

2
তবে কি সমস্ত উত্পন্ন কম্পাইল ফাইলগুলিতে সুপারসারের অনুমতি থাকবে না? এটি আপনাকে চালানো থেকে রোধ করবে / / কনফিগার এবং& নিয়মিত ব্যবহারকারী হিসাবে পরে করুন।
ব্যবহারকারী 45909

হ্যাঁ, ব্যবহারকারী 45909, আপনি বেশ ঠিক বলেছেন। আমি ব্যক্তিগতভাবে কখনও পুনরায় চালু করতে পারি নি /
কার্লএফ

10

অন্যান্য সমাধানগুলির বেশ কয়েকটিটির অসুবিধা রয়েছে যা তারা অহেতুক চালিত হয় ./configureএবং makeমূল হিসাবে।

এটি কিছুটা বিশৃঙ্খলাযুক্ত, তবে এটি কার্যকর হওয়া উচিত:

sudo sh -c "su $USER -c ./configure && su $USER -c make && make install && halt"

$USER(অ-মূল) শেল দ্বারা প্রসারিত করার জন্য ডাবল উদ্ধৃতিগুলির ব্যবহার নোট করুন ।

কমান্ডের sleep 60আগে আমি একটি যুক্ত করতে পারি halt। আমি অনেক সময় এই জাতীয় জিনিসগুলি করেছি, দীর্ঘ সময় ধরে কমান্ডটি চালানোর প্রত্যাশা করে, তবে কিছু ভুল হয়ে যায় এবং এটি অবিলম্বে বন্ধ হয়ে যায়; sleepসামনে সিস্টেম স্থবির আমাকে কমান্ড হত্যা করতে দেয়। অথবা আপনি shutdownএকটি সময় আর্গুমেন্ট সঙ্গে ব্যবহার করতে পারেন ।


9

আপনি visudoব্যবহারকারীর পাসওয়ার্ড ছাড়াই sudo হিসাবে ব্যবহার করতে অনুমতি দিতে আপনি sudo কনফিগার করতে পারে ।

User_Alias USERS = your_user
Cmnd_Alias CMDS = /usr/bin/make
USERS ALL = (ALL) NOPASSWD: CMDS

9

" Sudo -S " এ হিস্টিগনোর সেট করুন

$ export HISTIGNORE='*sudo -S*'

তারপরে আপনার পাসওয়ার্ডটি নিরাপদে সুরডোতে পাস করুন:

$ echo "your_password" | sudo -S -k <command>

"হিস্টিগনোর" এর অর্থ ইতিহাসে এই আদেশটি সংরক্ষণ না করা। এটি মেমরির ইতিহাস বা "~ / .bash_history" ফাইল।

উদাহরণস্বরূপ, নীচে নীচে আপনার পাসওয়ার্ডের কোনও ইতিহাস ধরে না রেখে sudo কমান্ডে নিরাপদে আপনার পাসওয়ার্ডটি পাইপ করবে।

"-S" এর অর্থ, পাসওয়ার্ডের জন্য স্টিডিন ব্যবহার করা,

"-কে" এর অর্থ সুডোকে সর্বদা জিজ্ঞাসা করতে বাধ্য করার জন্য ক্যাশেড শংসাপত্রগুলি উপেক্ষা করা। এটি ধারাবাহিক আচরণের জন্য।

$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh

উপরের পদ্ধতির নেতিবাচকতা হ'ল আপনি যদি ইতিহাসে পরবর্তী কমান্ডগুলি দেখতে চান তবে সেগুলি সেগুলিতে থাকবে না। আরেকটি পদ্ধতি হ'ল সুডো প্রমাণীকরণ শংসাপত্রের ক্যাশে আপডেট করা (ডিফল্ট 5 মিনিটের সময়সীমা সহ সক্ষম করা হয়), তারপরে সুডো পৃথকভাবে চালান। তবে এর নেতিবাচক দিকটি হ'ল আপনাকে 5 মিনিটের ক্যাশে সম্পর্কে সচেতন হতে হবে।

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

$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh

দ্রষ্টব্য, ডিফল্ট 5 মিন্ট হওয়ায় সুডো ক্যাশে আপডেট হয়েছে তা নিশ্চিত করার জন্য আমি প্রতিটি কমান্ডের আগে একটি সুডো চালিয়েছি। হ্যাঁ, হুয়ামি 5 মিনিট সময় নেয় না, তবে আমি বুঝতে পারি এটি ধারাবাহিকতার জন্য প্রতিটি কমান্ডের আগে চালিয়ে যেতে পারে। আপনি "রফতানি হিস্টিগনর = ' সুডো- এসও রাখতে পারেন'"আপনার ~ / .bashrc ফাইলটিতে, তারপরে এটি লোড করুন। b / .brcrc "বা লগঅফ তারপর লগইন করুন। তবে, আমি এটি স্ক্রিপ্টিংয়ের উদ্দেশ্যে ব্যবহার করে ভাবছি, তাই আমি সেরা সুরক্ষা অনুশীলনের জন্য এটি আমার সমস্ত স্ক্রিপ্টের শীর্ষে রাখব" "প্রতিধ্বনি" "| পরিবর্তে পরিবর্তনের পরিবর্তে sudo -S -v "এটি একটি ভাল ধারণাও হতে পারে, তবে প্রতিটি কমান্ডের আগে চলকটি চালিত করতে হবে যার রুট সুবিধাগুলি প্রয়োজন, জনারের মন্তব্য দেখুন।" জন টি "এর মন্তব্যে" -k "পরামিতি অন্তর্ভুক্ত করা উচিত , যদি আপনি "su--S" "" কে "ছাড়াই চালান এবং সুডো প্রমাণীকরণ ক্যাশে ইতিমধ্যে আপনার শংসাপত্র রয়েছে (এবং এখনও বৈধ, ডিফল্ট সুডো প্রমাণীকরণ ক্যাশে 5 মিনিট) তবে বাশ আপনার পাসওয়ার্ড পরিবর্তে কমান্ড হিসাবে চালাবে, যা খারাপ।


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

4

দ্রষ্টব্য, আমি খুঁজে পেয়েছি যে পদ্ধতিটি সুডোর পুরানো সংস্করণে কাজ করে না, বিশেষত "সুডো সংস্করণ 1.6.7p5":

$ echo "<your_password>" | sudo -S -k whoami

যেখানে এই পদ্ধতিটি পুরানো এবং নতুন সংস্করণগুলির সুডোতে কাজ করে:

$ echo "<your_password>" | sudo -S -v
$ sudo whoami

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

@ ড্যারেন ডি হেভেন: আপনি কি এখানে দয়া করে জিজ্ঞাসা করতে পারেন যে এখানে জিজ্ঞাসা করা প্রশ্নের উত্তর কীভাবে হয়ে যায়?
রেঞ্জু চন্দ্রন চিংথ


2

আপনি যদি আরও যত্ন নিতে চান তবে আপনি একটি স্ক্রিপ্ট তৈরি করতে পারবেন, ফাইলের অনুমতিগুলি পরিবর্তন করতে পারেন তাই কেবলমাত্র রুট পড়তে এবং সম্পাদনা করতে পারে এবং কেবল এটি চালানো যায়।

উদাহরণ:
1) একটি ফাইল তৈরি করুন:

gedit ~/.easy.install  

2) এটি আটকান এবং সংরক্ষণ করুন:

./configure && make && echo <password> | sudo -S make install && halt  

3) এটি সম্পাদনযোগ্য করুন:

sudo chmod +x ~/.easy.install  

4) ফাইলের অনুমতিগুলি পরিবর্তন করুন যাতে কেবল রুট এটি পড়তে এবং সম্পাদনা করতে পারে:

sudo chmod 700 ~/.easy.install  

5) রান:

~/.easy.install  

উপভোগ করুন ;-)


প্রতিধ্বনি <পাসওয়ার্ড> এখনও প্রক্রিয়া তালিকায় প্রদর্শিত হবে এবং যদি কেউ সঠিক মুহুর্তে পিএস অক্সের সাথে ভাগ্যবান হন, তবে তারা পাসওয়ার্ডটি পরিষ্কার টেক্সটে দেখতে পাবেন। কোনও ফাইলে পাসওয়ার্ড সংরক্ষণ করা ভাল এবং <ফাইল থেকে সুডোতে পুনঃনির্দেশ করতে ব্যবহার করুন।
বোবপল

1

সুডোর আপনার অ্যাকাউন্টে কোনও পাসওয়ার্ডের প্রয়োজন নেই এমন ঘটনাটি যদি কেউ দেখে ঘটে তবে সেই মতো সুডো সেট আপ করা বিপজ্জনক। আপনি কী করছেন তা যদি না জানেন তবে এটি করবেন না। আমি আমার স্থানীয় এ + প্রশিক্ষণ প্রোগ্রামে আমার পরীক্ষামূলক কম্পিউটারের সাথে এটি অনেক বার ঘটেছে ... -_-

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


0

ব্যক্তিগতভাবে আমি 9 নভেম্বর '09 2:47 তে জন টি যে উত্তর দিয়েছিলাম ঠিক তেমনটাই করি, ধন্যবাদও তার উত্তরের দিকনির্দেশনা অনুযায়ী আমার উন্নতি হয়েছে।

পার্থক্য হ'ল আমি ভেরিয়েবল ব্যবহার করতে ঝোঁক, এরকম কিছু:

AutoSuDo=$" $echo pass | sudo -S";
# Change AutoSuDo to something else.
# Note that string starts with space,
# useful only if used as first command in line

এইভাবে আমি সুডোর পরিবর্তে মাইন ভেরিয়েবলটি সহজেই ব্যবহার করতে পারি,

$AutoSuDo apt-get update;

এটি বেশ কয়েকটি দীর্ঘ স্ক্রিপ্টগুলির সাথে বেশ কার্যকর। আমি সাধারণত এটি অন্যের ব্যক্তিগত কম্পিউটারের জন্য ব্যবহার করি, যা আমাকে বজায় রাখতে হবে।

আমিও মনোযোগ দেওয়ার পরামর্শ দিই:

  • desgua এপ্রিল 19 '11 এ 23:56 এ উত্তর
  • user224306 14 ই নভেম্বর '13 এ 17:38 এ জন টি উত্তর 9 নভেম্বর '09 2:47 এ মন্তব্য করুন

0

সমস্যা সমাধান করা হয়। উদাহরণস্বরূপ, ব্যবহারকারী রুট:

echo -e 'password\npassword\n' | sudo passwd root

@ জারসন মার্টিনেজ--ফ্ল্যাগ কী করে?
ব্যবহারকারী 674669

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