সুডো কতটা সার্বজনীন?


26

আমি কীভাবে কিছু ইনস্টল করতে হবে তার বিষয়ে কিছু নির্দেশাবলী লিখছিলাম (টেক্স-সম্পর্কিত - আপনি যদি না জিজ্ঞাসা করেন তবে আমি আরও বিশদ সরবরাহ করে আপনার দিনটি নষ্ট করব না) এবং sudoসিস্টেম-ওয়াইড ইনস্টল করতে ব্যবহৃত হত । কেউ মন্তব্য করেছিলেন যে তারা ভাবেন নি যে sudoএটি সমস্ত লিনাক্স (বা ইউনিক্স) বিতরণে উপলব্ধ।

ইউনিক্স ডিস্ট্রিবিউশনগুলি নেই যা আছে sudoএবং যদি তাই হয় তবে সেগুলি কী? সমস্ত সিস্টেমে আছে এমন কোনও সর্বজনগ্রাহ্য স্বীকৃত "আমাকে সুপারিশকারী সুবিধাগুলি পান" কমান্ডটি রয়েছে কি ?

উত্তর:


34

sudo সর্বজনীন হিসাবে বিবেচনা করা যায় না:

  • রেড হ্যাট এন্টারপ্রাইজ লিনাক্স : sudoRed Hat Enterprise Linux এবং এর ডেরিভেটিভস 1 এ ডিফল্টরূপে ইনস্টল করা আছে তবে এটি কেবল RHEL 7 এবং আরও নতুন ব্যবহারের জন্য প্রস্তুত ব্যবহারের জন্য ইনস্টল করে।

    Red Hat Enterprise Linux 7 ইনস্টলেশন পর্দায় একটি নতুন বিকল্প যুক্ত করেছে যেখানে আপনি প্রথম অ-রুট ব্যবহারকারী তৈরি করেন , "এই ব্যবহারকারীকে প্রশাসক করুন" লেবেলযুক্ত একটি চেকবক্স। এর উদ্দেশ্য ইনস্টলেশন গাইডের সেই পৃষ্ঠায় নথিভুক্ত করা হয়নি, তবে এর প্রভাবগুলির মধ্যে একটি হ'ল ব্যবহারকারীর যেকোন কমান্ড চালানোর অনুমতি দেওয়া sudo। এটি ব্যবহারকারীকে wheelগ্রুপে যুক্ত করে এটি করে , যা স্টক sudoপ্যাকেজ কনফিগারেশনের অধীনে যে কোনও কমান্ড চালাতে পারে ।

    রেড হ্যাট এন্টারপ্রাইজ লিনাক্স 3 থেকে 6 sudoডিফল্ট ডিফল্টরূপে ইনস্টল করা হয়েছে, 2 তবে আরএইচইএল 7 অবধি এটি এমন কনফিগারেশন rootচালিত হয়েছিল যে কেবল এটির মাধ্যমে কমান্ড চালাতে পারে। এটির সমাধানের সবচেয়ে সহজ উপায় হ'ল এক বা একাধিক ব্যবহারকারীকে wheelগ্রুপে যুক্ত করা, তারপরে visudoরুট হিসাবে চালানো এবং %wheel ALL=(ALL)...লাইনটি অসুবিধে করা ।

  • ডেবিয়ান : দেবিয়ান 9 হিসাবে, একটি ন্যূনতম ইনস্টলেশন অন্তর্ভুক্ত sudo

    ডেবিয়ান 7 এবং 8 এ, ইনস্টলেশন করার জন্য আপনাকে " স্ট্যান্ডার্ড সিস্টেম ইউটিলিটিস " প্যাকেজ সেটটি নির্বাচন করতে হয়েছিল sudo। আপনি যদি sudoসেভাবে ইনস্টল করেন তবে ওএস ইনস্টলারটি স্বয়ংক্রিয়ভাবে ইনস্টলেশন প্রক্রিয়াটির পূর্বে তৈরি করা অ-প্রশাসনিক ব্যবহারকারীর sudoগোষ্ঠীতে যোগ হবে, যার সমস্ত কমান্ড চালানোর অনুমতি রয়েছে।

    ডেবিয়ান 6 এবং তার আগে, আপনি ইনস্টল করতে ছিল sudoমাধ্যমে apt-getইনস্টলেশনের পরে এবং এটি দ্বারা হাত কনফিগার root- ব্যতীত ব্যবহারকারীদের এটি ব্যবহার করার ক্ষমতা প্রদান করার।

  • ফ্রিবিএসডি : ফ্রিবিএসডি-তেsudo ডিফল্টরূপে ইনস্টল করা হয় না। আপনি এটি বন্দর থেকে তৈরি করতে হবে।

  • নেটবিএসডি : ফ্রিবিএসডি হিসাবে একই।

  • ওপেনবিএসডি : ওপেনবিএসডি-তেsudo ডিফল্টরূপে ইনস্টল করা হত, তবে তারা অক্টোবর 2015 সালে প্রকাশিত 5.8 হিসাবে স্যুইচ করেছে । জাহাজগুলি ডিফল্টরূপে অক্ষম করা হয়।doasdoas

    sudoবর্তমান সংস্করণগুলি পেতে আপনাকে এটি প্যাকেজ সংগ্রহস্থল থেকে ইনস্টল করতে হবে। ওপেনবিএসডি-র sudoপ্যাকেজটি অনেকটা RHEL 3 থেকে 6 এর মতোই কনফিগার করা হয়েছে, যাতে কেবল rootএটির মাধ্যমে কমান্ডগুলি চালানো যায়, যা এর উদ্দেশ্যকে ব্যর্থ করে sudo। যদি আপনি rootইনস্টলেশন চলাকালীন কোনও অ- ব্যবহারকারী যুক্ত করেন তবে এটি wheelগ্রুপে যুক্ত করা হয়েছে , সুতরাং sudoওপেনবিএসডি সিস্টেমে দরকারী করার সহজ উপায়টি হল %wheel ALL=(ALL)...লাইনটি অসুবিধে করা visudo

  • সোলারিস : sudoসোলারিস 11 এ ডিফল্টরূপে ইনস্টল করা হয়েছে তবে সোলারিস 10 এবং তার চেয়ে বেশি পুরানো একইরকম-তবে-তেমন-এক-একই ব্যবহার করে pfexec

    আপনি sudoপুরানো সিস্টেমের জন্য পেতে পারেন , তবে ডিফল্টগুলি গুরুত্বপূর্ণ। সোলারিস 10 এবং তার বেশি বয়সীরা আমাদের সাথে বছরের পর বছর ধরে থাকবে, সুতরাং আপনার যদি আপনার পরিবেশে সোলারিস থাকে এবং আপনি ব্যক্তিগতভাবে সেগুলি সিস্টেমের নিয়ন্ত্রণে sudoনা রাখেন এবং তাই নিশ্চিত করতে পারেন তবে আপনি এটির উপর নির্ভর করতে পারবেন না।

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

আমি কেবলমাত্র sudoআমি ব্যক্তিগতভাবে পরিচালনা করি এমন সিস্টেমগুলিতে, অথবা উবুন্টু, ম্যাকস, বা ওপেনসুএস-এর মতো উপর নির্ভর করি যেখানে ডিফল্টরূপে এটি রুট সুবিধাগুলির একমাত্র উপায়।

suএর তুলনায় সর্বজনীন "আমাকে সুপারিউজারের সুবিধাগুলি পান" কমান্ডের কাছাকাছি sudo, তবে তারপরে আপনার উবুন্টু এবং ম্যাকোসের মতো সিস্টেম রয়েছে যেখানে আপনাকে sudoপরিবর্তে ব্যবহারের জন্য বাধ্য করতে মূল অ্যাকাউন্টটি ডিফল্টরূপে লক করা আছে su। সুতরাং, আপনি suসর্বজনীন কল করতে পারবেন না ।


পাদটীকা :

  1. সেন্টস, ওরাকল লিনাক্স, বৈজ্ঞানিক লিনাক্স ...

  2. হ্যাঁ, এমনকি ন্যূনতম ইনস্টলগুলিতে।


9

sudoএকটি ইউটিলিটি যা প্রায় সমস্ত লিনাক্স-সিস্টেমে উপলব্ধ।
তবে এটি সমস্ত ডিস্ট্রোজে ডিফল্টরূপে বান্ডিল হয় না। সমস্ত বড় ডিস্ট্রোগুলি যদিও এটি ডিফল্টরূপে বান্ডিল করেছে।

লিনাক্স ডিস্ট্রিবিউশন যেমন আর্চ লিনাক্স, জেন্টু, এলএফএস, ইত্যাদি যা ব্যবহারকারীর সম্পূর্ণ কাস্টমাইজিবলিকে ডিফল্টরূপে সুডো দেয় না।

আরআর লিনাক্সে, বেস সিস্টেম sudoইনস্টল করা আসে না । ব্যবহারকারীকে ম্যানুয়ালি sudosudoers ফাইলটি ডাউনলোড এবং সম্পাদনা করতে হবে।
জেন্টু এবং এলএফএসের জন্য ডিটো। আমি সুডো ছাড়া অন্য কোনও বড় ডিস্ট্রো জানি না।

এবং না, আমি মনে করি না যে sudoসুপার-ব্যবহারকারীর সুবিধাগুলি দেওয়ার চেয়ে সর্বজনীন কিছু আছে exists এটি হ'ল মূল হিসাবে লগ ইন করা বাদে।


1
sudoবেশিরভাগ ডিস্ট্রোজে বান্ডিল হয়ে থাকতে পারে তবে এগুলি সমস্তই চালক হিসাবে সক্ষম হিসাবে ব্যবহারকারীকে কনফিগার করে না।
jsbillings

আরেকটি ভাল পয়েন্ট। Sudoers ফাইল যা বলে তার উপর নির্ভর করে।
darnir

7

সর্বাধিক ব্যবহৃত বিতরণ, উবুন্টু sudoরুট হওয়ার জন্য প্রস্তাবিত পদ্ধতি হিসাবে ব্যবহার করে (কমান্ড লাইনটি ব্যবহার করার সময় - জিইউআই-র সাথে লেগে থাকা ব্যবহারকারীরা হুডের নীচে কী ঘটে তা বোঝা বা যত্ন না করে পাসওয়ার্ড প্রম্পট পাবেন)। অন্যান্য বিতরণগুলি sudo সেট আপ করতে উত্সাহিত করতে পারে এবং নাও পারে এবং শিপও নাও করতে পারে। অন্যদিকে, suসর্বত্র উপলভ্য এবং কেবলমাত্র উপলভ্যতা ব্যতীত বেশিরভাগ সিস্টেমে ব্যবহারযোগ্য sudoকারণ ব্যবহারকারীটির কাছে রুট পাসওয়ার্ড নেই।

suএবং এর মধ্যে sudoআপনি প্রায় আপনার সমস্ত ব্যবহারকারীকে কভার করবেন। বহিরাগত কয়েক যারা প্রয়োজন califeবা opবা pfexecজানেন ইতিমধ্যে কি করতে হবে তা। এমনকি যদি তারা না, একটি সিস্টেম যে ব্যবহারসমূহ তন্ন তন্ন suনা sudoপারে অপরিচিত জায়গা এবং যথেষ্ট জিনিষ আপনি যে আপনার নির্দেশাবলী সম্ভবত যাহাই হউক না কেন কাজ করবে না চিন্তা থাকে না ফাইল আছে।


6

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

সাধারণত আমি আমার উদ্দিষ্ট নির্বাহকারী পরিবেশ, একটি আধা-আধুনিক লিনাক্স বিতরণ, আমি সাধারণ জিএনইউ ইউটিলস সহ একটি পসিক্স শেল আশা করি g লিনাক্সের বাইরে চলতে পারে এমন স্ক্রিপ্টগুলির জন্য, আমি কেবল সম্পূর্ণ পসিক্স স্ট্যান্ডার্ড আশা করি। স্পষ্টতই অনেকগুলি স্ক্রিপ্টগুলি লিনাক্সের সাথে সুনির্দিষ্ট, বা ডিস্ট্রোতে নির্দিষ্ট, যাতে প্রায়শই বহনযোগ্যতার সুযোগকে সঙ্কুচিত করা হয়।

আপনার নির্দিষ্ট স্ক্রিপ্টিং কেসটি সম্বোধন করতে,

#!/bin/sh


## Exit Point
die() {
    [ -n "$2" ] && echo "$2"
    exit $1
}


## Require SuperUser Execution, Otherwise Re-Execute
[ `id -u` -ne 0 ] && {

    command -v lsb_release > /dev/null && {
        DISTRO="`lsb_release -is`"
        [ "$DISTRO" = "Ubuntu" ] && SUPERUSER='sudo'
    }
    SUPERUSER="${SUPERUSER:-su}"

    case "$SUPERUSER" in
        su)
            su -c "$0"
            ;;
        sudo)
            sudo "$0"
            ;;
    esac
}

## Require SuperUser Execution
[ `id -u` -ne 0 ] && die 78




echo 'Script Executed by UID'
id -u




## Clean Up
die 0

আটকানো স্ক্রিপ্টটি পসিক্স শেল প্রশংসা, আমি সবসময় ড্যাশ সামঞ্জস্যপূর্ণ লিখি।


তবে আপনার স্ক্রিপ্টের জন্য কি সুডো ইনস্টল করা দরকার? সুডো ব্যবহার না করে আমরা কীভাবে সুপার-ব্যবহারকারীর অ্যাক্সেস অর্জন করতে পারি? সরল স্ক্রিপ্টিং এর মাধ্যমে?
darnir

@ দরনির: না, আটকানো স্ক্রিপ্টটি sudoইনস্টল করার দরকার নেই। এটির জন্য সুপারজার এক্সিকিউশন প্রয়োজন এবং sudoএটি উপলভ্য থাকলে এটি ব্যবহার করতে পারে । যদি sudoউপলভ্য না হয় তবে স্ক্রিপ্টটি অবশ্যই রুট ব্যবহারকারী হিসাবে চালানো হবে, বা এটি হবে die
জেএম বেকার

@ ডারনির: অতিরিক্তভাবে এখানে "প্লেইন স্ক্রিপ্টিং" বলে কিছু নেই। শেল বিল্ট-ইনগুলি বাদ দিয়ে প্রায় সমস্ত কিছুই নিয়মিত বাইনারিগুলির মাধ্যমে সম্পন্ন হয়। ইন্টারেক্টিভ বা স্বয়ংক্রিয় হোক না কেন, অন্যান্য কমান্ড কল করতে এটি শেলের পুরো বিন্দু। এটি এই সংজ্ঞায়িত বৈশিষ্ট্য, যা সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা থেকে শেলকে পৃথক করে। সুতরাং আপনি সুপারউজার কীভাবে অর্জন করবেন তা নির্বিশেষে, বাহ্যিক কমান্ডগুলির মাধ্যমে এটি করা আপনার ..., ধরে নেওয়া আপনার কাঁচা কার্নেল ইন্টারফেসের সাথে কোডিং নয়।
জেএম বেকার

1
@varea: আকর্ষণীয়ভাবে উবুন্টু sudo / su ডিফল্ট কনফিগারেশনের ঠিক বিপরীত। এক্সিকিউট করে কোনও ব্যবহারকারী কী সুডো অনুমতি পেয়েছেন তা পরীক্ষা করতে পারেন sudo -l। দুর্ভাগ্যক্রমে এটি এই পরিস্থিতিতে ব্যবহারের অযোগ্য, কারণ এটিতে পাসওয়ার্ড প্রবেশের প্রয়োজন হতে পারে। এটিকে আরও যত্ন সহকারে ভাবতে ভাবতে আমি আসলে মনে করি প্রতি ডিস্ট্রো পরীক্ষার মাধ্যমে পুরো ধারণাটি সেরাভাবে অর্জন করা যেতে পারে। ডিফল্ট অক্ষম ডিস্ট্রো su -cনা চালিয়ে ব্যবহার করা su, সেই ক্ষেত্রে ব্যবহার করা sudo su -c। অন্যরা যেমন উল্লেখ করেছে, সুপারভাইজারের উচ্চতা ব্যবহারকারীর কাছে রেখে দেওয়া ভাল, আমি কোনও সুবিধামত স্ক্রিপ্টকে বিবেচনা করব।
জেএম বেকার

1
@varea: একটি অ-কনফিগার করা ব্যবহারের সুযোগ কমাতে আমি আটকানো স্ক্রিপ্ট আপডেট করেছি sudo। এটি বেশিরভাগ ডিস্ট্রোতে, ডিফল্ট su/ sudoকনফিগারেশনগুলি ধরে রেখে সঠিকভাবে সম্পাদন করা উচিত । আমি জানি না, পূর্ববর্তী একটি উবুন্টু, পূর্বের দিকে lsb_releaseসম্বোধন করা দরকার ... তবে এটি সত্যই একটি উদাহরণ, এবং সম্ভবত এটি বাড়ানো যেতে পারে।
জেএম বেকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.