নির্দিষ্ট ব্যবহারকারী হিসাবে উত্তরীয় কাজ চালানো


23

আমি যে প্লেবুকটি চালাচ্ছি তার চেয়ে আলাদা ব্যবহারকারী হিসাবে একটি নির্দিষ্ট উত্তরযোগ্য কাজটি চালানোর চেষ্টা করছি। আমার .ymlফাইলটি এমন দেখাচ্ছে:

---

- hosts: staging_servers
  tasks:    
    - name: check user
      remote_user: someusername
      shell: whoami

এই টাস্কটি চালানো আমাকে দেখায় যে whoamiকমান্ডটি আমি টাস্কে সংজ্ঞায়িত করা তার চেয়ে আলাদা আলাদা ব্যবহারকারীকে ফিরিয়ে দেয় (অবশ্যই, ব্যবহারকারীকে hostsডেকে আনে যা ফাইল হিসাবে সংজ্ঞায়িত করা হয় ubuntu)।

আমি এই কাজটি এভাবে সংজ্ঞায়িত করার চেষ্টা করেছি:

---

- hosts: staging_servers
  tasks:
    - name: check user
      sudo: yes
      sudo_user: someusername
      shell: whoami

তবে তারপরে আমি Missing sudo passwordত্রুটি পেয়েছি , যদিও sudoersফাইলে এমন একটি লাইন রয়েছে যা বলছে someusername ALL=(ALL) NOPASSWD:ALLএবং sudoদূরবর্তী মেশিনে কমান্ড জারি someusernameকরার কারণে আমাকে কোনও পাসওয়ার্ড জিজ্ঞাসা করবে না।

সুতরাং, আমি কীভাবে একটি পৃথক ব্যবহারকারী হিসাবে নির্দিষ্ট কাজটি চালাতে পারি যা hostsফাইল বা rootতার নিজের দ্বারা নির্ধারিত ব্যবহারকারী নয় ?

উত্তর:


19

আপনি সেখানে উভয় সেটিংসকে ভুল বুঝছেন:

  • রিমোট_উসার এমন একটি জবাবদিহি সেটিংস যা এসএসএইচ ব্যবহারকারীকে নিয়ন্ত্রণ করে যা উত্তরীয় সংযোগের জন্য ব্যবহার করছে:ssh ${REMOTE_USER}@remotehost

  • someusername ALL = (ALL) NOPASSWD: ALL একটি sudo কনফিগারেশন যা ব্যবহারকারীকে someusernameকোনও হোস্টে পাসওয়ার্ড ছাড়াই সমস্ত কমান্ড কার্যকর করতে দেয় । এটি কাউকে যেমন আদেশ দেওয়ার অনুমতি দেয় না someusername

আদর্শভাবে, আপনি সরাসরি সঠিক ব্যবহারকারী হিসাবে লগইন করবেন এবং এটাই remote_userহ'ল। তবে সাধারণত আপনি কেবল প্রশাসনিক ব্যবহারকারী হিসাবে লগইন করতে সক্ষম হন (বলুন ubuntu) এবং অন্য ব্যবহারকারীর হিসাবে কমান্ডগুলি sudo করতে হবে (আসুন আমরা বলতে পারি scrapy)। তারপরে আপনার remote_userসেই ব্যবহারকারীর কাছে ছেড়ে যাওয়া উচিত যা লগ ইন করে এবং কাজের সাথে নিম্নলিখিত উত্তরীয় সম্পত্তি যুক্ত করে:

- name: log in as ubuntu and do something as scrapy
  remote_user: ubuntu
  sudo: true
  sudo_user: scrapy
  shell: do-something.sh

1
আমি দেখি. এটি পরিষ্কার করার জন্য অনেক ধন্যবাদ! তবে কীভাবে সুনির্দিষ্ট ব্যবহারকারী হিসাবে নির্দিষ্ট কাজটি চালানো যায়?
এরতাটি

1
মনে রাখবেন যে remote_userআপনার স্থানীয় মেশিনে বর্তমান ব্যবহারকারীর ডিফল্ট - ঠিক যেমন ssh করে।
ক্যাপি ইথেরিয়েল

ঠিক আছে, তবে এর মতো একটি সেটআপ দিয়ে আমি এখনও ' Missing sudo password' ত্রুটি পাই । সেই নির্দিষ্ট ব্যবহারকারীর জন্য পাসওয়ার্ড জিজ্ঞাসা করা এড়ানোর কোনও উপায় আছে কি?
ত্রুটি-বিচ্যুতি

আমি মনে করি আমি উত্তরটি খুঁজে পেয়েছি, sudoers এ রেখাটি যুক্ত করেছি: ubuntu ALL=(someusername) NOPASSWD: ALLতবে এর পিছনে থাকা সুরক্ষা সম্পর্কে আমাকে ভাবতে হবে ... এই লাইনটি sudoers যোগ করা ছাড়া অন্য কোনও উপায় আছে কি?
এরতাটি

1
সঠিক উপায়টি হ'ল আপনার দূরবর্তী ব্যবহারকারীকে সরাসরি লগইন করতে দেওয়া।
ক্যাপী ইথেরিয়েল

16

নোট করুন যে উত্তরযোগ্য ১.৯-এর পরে, sudoশব্দটি becomeএইভাবে প্রতিস্থাপন করা হয়েছিল

sudo: yes
sudo_user: some_user

হয়ে যায় (পাং উদ্দেশ্যে):

become: yes
become_user: some_user

আরও বিশদ এখানে দেখুন: /programming//a/22749788/402727

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