Sudo su - postgres এবং sudo -u postgres এর মধ্যে পার্থক্য কী?


36

পোস্টগ্রিএসকিউএল ব্যবহারকারীরা ডিফল্টরূপে ইউনিক্স সকেটে পিয়ার প্রমাণীকরণ, যেখানে ইউনিক্স ব্যবহারকারী অবশ্যই পোস্টগ্রেএসকিউএল ব্যবহারকারীর সমান হতে পারে। তাই লোকেরা প্রায়শই ব্যবহার করে suবা সুপারইউসার sudoহয়ে ওঠে postgres

আমি প্রায়শই লোককে কনস্ট্রাক্ট ব্যবহার করে দেখি যেমন:

sudo su - postgres

বরং

sudo -u postgres -i

এবং আমি ভাবছি কেন। একইভাবে, আমি দেখেছি:

sudo su - postgres -c psql

পরিবর্তে

sudo -u postgres psql

নেতৃস্থানীয় ছাড়া সংস্করণ কিছু জানার জন্য তাহলে তোমাকে ছাড়া একটি পুরানো প্ল্যাটফর্মে ছিল । তবে কেন আপনি ইউনিক্স বা লিনাক্সের চেয়েও পূর্ববর্তী কিছু ব্যবহার করবেন ?sudosusudosudo su


উত্তর:


40

ভুলে যান sudo su

ব্যবহার করার কোনও লাভ নেই sudo su, এটি যখন থেকে মানুষ ব্যবহার করার অভ্যস্ত ছিল তখন থেকেই এটি অ্যানক্রোনস্টিক অভ্যাস susudoলিনাক্স ডিস্ট্রস যখন একটি রুট পাসওয়ার্ড সেট করা বন্ধ করে এবং sudoরুট অ্যাকাউন্টটি অ্যাক্সেসের একমাত্র উপায় তৈরি করে তখন লোকেরা সামনে টেকিং শুরু করে। তাদের অভ্যাস পরিবর্তন করার পরিবর্তে তারা কেবল ব্যবহার করেছিল sudo su। (আমি তুলনামূলকভাবে সম্প্রতি পর্যন্ত তাদের মধ্যে একজন ছিলাম যখন sudoersকনফিগারেশনের সাথে বাক্স ব্যবহার করা আমাকে আমার অভ্যাসটি পরিবর্তন করতে বাধ্য করেছিল)।

ব্যবহার sudo -u

একটি লগইন শেল জন্য, sudo -u postgres -iভাল sudo su - postgres। এটির ব্যবহারকারীর রুট অ্যাক্সেস থাকা দরকার না /etc/sudoers, তাদের কেবল ব্যবহারকারী হওয়ার অধিকার প্রয়োজন postgres। এটি আপনাকে আরও ভাল অ্যাক্সেস নিয়ন্ত্রণগুলি প্রয়োগ করতে দেয়।

কমান্ড কার্যকর করার জন্য

sudo -u postgres psql -c "SELECT 1"

বিকল্প তুলনায় উচ্চতর:

sudo su - postgres -c "psql -c \"SELECT 1\""

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

sudo su - postgres -c psql -c "SELECT 1"

কখনও কখনও, যা সঠিকভাবে কাজ করবে না।

পরিশেষে sudo, যেমন পরিবেশের ভেরিয়েবলগুলি সেট করা সহজ to

sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster

মাধ্যমে su। (এখানে, PATHসেটিংসের প্রয়োজনীয়তা রয়েছে যাতে এটি কার্যকর কার্যকর initdbহতে পারে postgres)।

So. suকমান্ড বিদ্যমান ভুলে যান । আপনার আর দরকার নেই। অভ্যাসটি ভাঙ্গার জন্য, এটির জন্য এমন কোনও নাম দিন যা কোনও ত্রুটি মুদ্রণ করবে। (কিছু init এবং প্যাকেজ সেটআপ স্ক্রিপ্টগুলি এখনও ব্যবহার করে suতাই আপনি এটিকে সরাতে পারবেন না)।

আরো দেখুন:

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