দুঃখিত, সুডো চালানোর জন্য আপনার অবশ্যই একটি টিটিই থাকতে হবে


13

আমি ইতিমধ্যে স্ট্যাক ওভারফ্লোতে এই প্রশ্নটি জিজ্ঞাসা করেছি, তবে আমাকে এটি এখানে পোস্ট করতে বলা হয়েছে। তাই একই কাজ।

আমি আমার জাভা প্রোগ্রামটি ব্যবহার করে এই আদেশটি চালিয়েছি-

sudo -u <username> -S pwd

আমি এই আউটপুট পেয়েছি-

command=sudo -u <username> -S pwd
exitCode=1
sudo: sorry, you must have a tty to run sudo

আমি সম্পাদনা / ইত্যাদি / সূডোর চেষ্টা করেছি তবে এটি ইতিমধ্যে রয়েছে

<username>       ALL=(ALL)       NOPASSWD: ALL

তারপরে, আমি শিখেছি যে / etc / sudoers এর মধ্যে নিম্নলিখিত কোডটি মন্তব্য করে এটি করা যেতে পারে

# Defaults requiretty

এছাড়াও, ডিফল্টরূপে, যখন অন্য ব্যবহারকারী হিসাবে কোনও কমান্ড কার্যকর করার চেষ্টা করা হয়, তখন sudoআমাদের নিজের পাসওয়ার্ড সরবরাহ করতে হবে। তবে / etc / sudoers- এ নিম্নলিখিত পরিবর্তন করে এটি পরিবর্তন করা যেতে পারে

Defaults targetpw

আমার প্রশ্ন হ'ল কোথাও কোনও পরিবর্তন না করেই জাভাতে আমার উপরের কমান্ডটি কার্যকর করা সম্ভব ? ডিফল্ট সেটিংস রেখে ?


1
আপনি কি সুডোর পরিবর্তে স্বীকৃত বিকল্প জিজ্ঞাসা করছেন ?
slhck

6
requirettyডিফল্টরূপে সক্ষম করা থাকলে ডিস্ট্রো নির্দিষ্ট বলে মনে হচ্ছে। sudoনিজস্ব ডকুমেন্টেশন অনুসারে এটি "ডিফল্টরূপে বন্ধ"।
এমপিপি

উত্তর:


3

জাভাতে শেল কমান্ড কীভাবে চালাতে হয় তা আমি জানি না তবে ssh কমান্ডের জন্য -t বিকল্পটি দেখুন

-t force pseudo-tty allocation.

এসএসএসের রুট হিসাবে কমান্ড চালানোর দরকার হলে আমি তা করি (ডাইরেক্ট রুট লগইন নিষ্ক্রিয় করে suty দ্বারা প্রয়োজনীয় tty)


1
যদিও এই দৃষ্টিভঙ্গিটি প্রথম দর্শনে সমস্যার সমাধান করতে পারে তবে এটি প্রশ্নের সাথে কীভাবে সম্পর্কিত তা মোটেও পরিষ্কার নয়। আপনি কি আরও বিশদে ব্যাখ্যা করতে পারেন?
পাবউক

1
কোনও ডিফল্ট সেটিংস পরিবর্তন করার প্রয়োজন ছাড়াই সমস্যা সমাধানের জন্য +1।
লুক

1

আমার প্রশ্ন হ'ল কোথাও কোনও পরিবর্তন না করেই জাভাতে আমার উপরের কমান্ডটি কার্যকর করা সম্ভব? ডিফল্ট সেটিংস রেখে?

sudo -u -S pwd

সংক্ষিপ্ত উত্তরটি হ'ল না, আপনার বর্তমানের চেয়ে আলাদাভাবে কাজ করতে সুডো পেতে সেটিংস পরিবর্তন করতে হবে।

sudo এটির জন্য ভুল সরঞ্জাম হতে পারে। সুডোর নিয়মগুলি সিস্টেম অ্যাডমিনিস্ট্রেটরদেরকে উন্নত সুবিধাগুলি অর্জনের একটি উপায় কনফিগার করতে সহায়তা করে যা অতিরিক্ত / অনিচ্ছাকৃত সুযোগসুবিধা পেতে অপব্যবহার করা কঠিন।

আপনি যদি বিবেচনা করেন সুডো আপনার জন্য কি করে:

  1. পরিচয় যাচাই করতে পাসওয়ার্ডের জন্য অনুরোধ জানানো হয়
  2. সুযোগ বাড়ান
  3. তারপরে বিকল্প হিসাবে অন্য ব্যবহারকারী হিসাবে সুযোগ পান
  4. লগগুলি sudo অ্যাক্সেস পেতে বা কমান্ড চালাতে ব্যবহার করে

যদি আপনি চান যে আপনার জাভা সেই ব্যবহারকারী বা আপনার নিজের ব্যবহারকারীদের জন্য পাসওয়ার্ড না দিয়ে স্বেচ্ছাসেবক ব্যবহারকারী হিসাবে স্বেচ্ছাচারিত কমান্ডগুলি চালিত করে আপনি মূলত সুডো প্রতিস্থাপন করছেন। সেক্ষেত্রে কীভাবে আপত্তি রোধ করা যায় সে সম্পর্কে আপনার নিজের নিয়ম তৈরি করা উচিত।

এটি করার মূলত দুটি উপায় রয়েছে:

  1. আপনার জাভাটি উন্নত সুবিধাসমূহের সাথে চালান এবং সাবধানতার সাথে আপনার প্রয়োজনীয় সুযোগ-সুবিধাগুলি গ্রহণ করুন এবং ফেরত দিন (সেটুয়েড () সিটুইড () সি ফাংশন কলগুলি দেখুন)।
  2. আপনি যখন চাইবেন উন্নত সুবিধাগুলি দখল করতে একটি বাহ্যিক প্রোগ্রাম চালান

# 1 এর ক্ষেত্রে আপনার জাভা প্রোগ্রামটি সুডো কী করে তা নিজেই সম্পাদন করছে এবং অপব্যবহার থেকে রক্ষা পেতে আপনার নিজের নিয়মের সেটটি প্রয়োগ করা উচিত।

# 2 করতে সুডো ব্যতীত অন্যান্য প্রোগ্রাম রয়েছে। একটি উদাহরণ https://code.google.com/archive/p/exec-wrapper/downloads এ পাওয়া যাবে

এই হ্যান্ডেল শেল স্ক্রিপ্টটি অন্য কমান্ড চালানোর জন্য একটি সি প্রোগ্রাম তৈরি করে (সাধারণত একটি স্ক্রিপ্ট)। তারপরে আপনি সি প্রোগ্রামটি একটি বাইনারি সংকলন করুন এবং চিহ্নিত করুন যে নির্ধারিত রুট বা সত্যই এটি কোনও ব্যবহারকারীর কাছে সেটআপ করা যেতে পারে। (মোড: 4555 এবং মালিক: মূল)

আপনি যতক্ষণ কোনও ফাইল সিস্টেমে এটির অনুমতি দিচ্ছেন ততক্ষণ বাইনারি প্রোগ্রামটি চালানো কনফিগার করা কমান্ডটি ব্যবহারকারী হিসাবে বাইনারি প্রোগ্রামের মালিক হিসাবে চালিত হবে।

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