sudo: কোন tty উপস্থিত এবং কোন জিজ্ঞাসা প্রোগ্রাম নির্দিষ্ট করা হয়নি


73

sudoরিমোট বক্সে ব্যবহার করে কোনও রিমোট বাইনারি চালানোর চেষ্টা করার সময় :

ssh remotehost "sudo ./binary"

আমি এই ত্রুটিটি দেখছি:

sudo: কোন tty উপস্থিত এবং কোন জিজ্ঞাসা প্রোগ্রাম নির্দিষ্ট করা হয়নি

আমি কীভাবে এটিকে ঘিরে কাজ করতে পারি?

এটি সম্পাদন করুন এটি অবশ্যই প্রস্তাবিত প্রশ্নের সদৃশ নয়। উত্তরগুলি সম্পূর্ণ অপ্রাসঙ্গিক। আসলে, sudoers ফাইলের সেই পরিবর্তনগুলি ইতিমধ্যে দূরবর্তী হোস্টে প্রয়োগ করা হয়েছিল।


উত্তর:


78

একটি সহজ উপায় নির্দিষ্ট করে -t:

ssh -t remotehost "sudo ./binary"

ম্যান পৃষ্ঠা থেকে:

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

কেন এটি কাজ করে ঠিক তা আমি ব্যাখ্যা করতে পারি না এবং এর থেকে আরও ভাল উপায় হতে পারে। আমি যদি এটির বিষয়ে শুনতে চাই তবে :)

নীচে একটি মন্তব্যে কেন এটি কাজ করে তা ব্যাখ্যা করেছেন @ পিপুসি।


14
এটি কাজ করে কারণ sudoএকটি পাসওয়ার্ড প্রম্পট করার জন্য একটি টিটিটির প্রয়োজন হয়, এবং কমান্ডগুলি চালনার জন্য নির্দিষ্ট করার সময় sshএটি ডিফল্টরূপে বরাদ্দ দেয় না কারণ এটি সাধারণত অ ইন্টারেক্টিভ কমান্ডগুলি চালিত করতে ব্যবহৃত হয় যা বাইনারি ডেটা স্থানান্তর করতে পারে, যা ট্রাইটি আপ করতে পারে ।
psusi

@psusi আপনি কি এই সম্পর্কিত প্রশ্নের উত্তর জানেন? unix.stackexchange.com/questions/110841
trusktr

এছাড়াও রয়েছে -tt, যখন কমান্ড ক্ষণস্থায়ী heredoc ব্যবহার প্রয়োজনীয়
রূফের

26

প্রশ্ন:

আমি কীভাবে এটিকে ঘিরে কাজ করতে পারি?

sudo: no tty present and no askpass program specified

বিকল্প উত্তর

বিকল্প হিসাবে, চেষ্টা করুন:

sudo -S ./binary

এটি sudo কে স্ট্যান্ডার্ড ইনপুট থেকে পাসওয়ার্ড পড়ার নির্দেশ দেয়।

দৃশ্য যেখানে এটি সাহায্য করে

ক্রুট পরিবেশে, এই অন্যান্য উত্তরগুলি সঠিকভাবে কাজ না করতে পারে ... সম্ভবত কারণ:

  1. / ইত্যাদি / ছায়া বনাম / ইত্যাদি / পাসডাব্লু দ্বন্দ্ব ব্যবহারকারীকে একটি পাসওয়ার্ড প্রবেশ করতে দেয় না।
  2. ক্রোট-এড পরিবেশে, tty1 এ অ্যাক্সেস কিছুটা চটকদার হতে পারে, এবং ctrl-alt f2 - থেকে tty2 অবধি অযোগ্য, কারণ এটি নন-ক্রোট-এড পরিবেশের একটি tty।

উদাহরণস্বরূপ: লিনাক্স বা বুটলোডার ম্যানুয়ালি ইনস্টল / মেরামত করা, ক্রুট পরিবেশ ব্যবহার করে (যেমন আর্চলিনাক্স এবং আর্চ-ক্রুট)।


আমি একটি সুডো পেয়েছি:। / বাইনারি: কমান্ডটি ত্রুটি খুঁজে পায় নি যখন আমি সুডো-এস। / বাইনারি চালাই তবে কী দেয়?
অজিৎ গোয়েল

5

আপনাকে টার্মিনাল / অ্যাপ্লিকেশনটি সংজ্ঞায়িত করতে হবে যা পাসওয়ার্ডটি পড়বে। দুটি রূপ আছে:

  1. export SUDO_ASKPASS=/usr/libexec/openssh/ssh-askpass
  2. vim /etc/sudoers (ডিফল্ট দৃশ্যমানউডব্লিউ)

11
আপনার সম্পাদনায় কোনও ত্রুটি হওয়ার কারণে নিজের মেশিন থেকে নিজেকে লক করা এড়াতে visudoপরিবর্তে ব্যবহার করা কি ভাল নয় vim /etc/sudoers?
ড্রয় নোকস

2

এটি ব্যর্থ হয়েছে, কারণ sudoরুট পাসওয়ার্ডে প্রম্পট দেওয়ার চেষ্টা করা হচ্ছে এবং সেখানে কোনও সিডো-টিটি বরাদ্দ নেই।

আপনাকে হয় মূল হিসাবে লগ-ইন করতে হবে /etc/sudoers বা আপনার (বা sudo visudo:) এ নিম্নলিখিত বিধিগুলি সেট আপ করতে হবে :

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

তারপরে নিশ্চিত হয়ে নিন যে আপনার ব্যবহারকারী adminগ্রুপ (বা wheel) এর অন্তর্গত ।


যদিও এটি সত্য নয় (এটির জন্য কোনও প্রমাণ দেওয়া হয়নি, এবং সেন্টোস এবং উবুন্টু সিস্টেমে প্রশাসক গোষ্ঠীর ব্যবহারকারীরা এখনও ত্রুটিটি পেয়েছেন), সেই গোষ্ঠীগুলির উপর ভিত্তি করে গোষ্ঠী এবং নিয়ম তৈরি করার জন্য এটি রিমোট করার জন্য একটি দুর্দান্ত পরামর্শ ip বর্ধিত কাজগুলি
মিস্টারমিসিজ 23

2

আপনি /etc/sudoers.d তে "sudo_shutdown" এর মতো একটি ফাইল সামগ্রী সহ তৈরি করতে পারেন:

# Allow admins to shutdown without pass
%adm ALL=(ALL) NOPASSWD: /sbin/shutdown

এটি এডম গ্রুপে থাকা ব্যবহারকারীদের পাসওয়ার্ড ছাড়াই শাটডাউন করার অনুমতি দেয়।


3
আপনি কি "কোনও উপস্থিত নেই" কভার করতে এটি সম্পাদনা করার পরিকল্পনা করেছিলেন
বয়স্ক গীক

2

আমার ক্ষেত্রে আমি এই ত্রুটিটি পেয়েছি কারণ আমি কোনও আদেশটি নির্দিষ্ট করে দিইনি যা আমি sudoers এ রুট হিসাবে ব্যবহার করতে চাই

কিছুটা এইরকম

/etc/sudoers.d/myuser:

myuser ALL=(root) NOPASSWD: \
    /bin/ls -la

আমার জন্য কাজ

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