Кіріспе
Unix жүйелерінде root құқықтарын уақытша алуға арналған команда. Su командасына ұқсас, бірақ пайдаланушылар мақсатты пайдаланушының паролінің орнына, әдетте өзінің паролін енгізіп аутентификациялауы керек. Аутентификациядан кейін, егер конфигурациялық файл (әдетте /etc/sudoers) пайдаланушыға рұқсат берсе, жүйе қажетті команданы іске қосады. Конфигурациялық файл кеңейтілген рұқсаттарды ұсынады, соның ішінде командаларды тек шақырушы терминалдан ғана іске қосу; әрбір пайдаланушы немесе топ үшін пароль сұрау; әр жолы парольді қайта енгізуді талап ету немесе белгілі бір команда үшін парольді мүлдем сұрамау мүмкіндігі бар. Сондай-ақ, аргументтерді немесе бірнеше команданы беруге рұқсат ету үшін де конфигурациялануы мүмкін.
Unlike the similar command su, users must, by default, supply their own password for authentication, rather than the password of the target user. After authentication, and if the configuration file (typically /etc/sudoers) permits the user access, the system invokes the requested command. The configuration file offers detailed access permissions, including enabling commands only from the invoking terminal; requiring a password per user or group; requiring re entry of a password every time or never requiring a password at all for a particular command line. It can also be configured to permit passing arguments or multiple commands.
Тарих
Роберт Коггешолл мен Клифф Спенсер 1980 жылдар шамасында SUNY/Бәффалодағы Компьютерлік ғылымдар кафедрасында бастапқы ішкі жүйені жасады.
Дизайн
Су командасынан өзгеше, пайдаланушылар sudo-ға (қажет болған жағдайда) өзінің жеке паролін ұсынады, суперпайдаланушының немесе басқа тіркелгінің паролін емес. Бұл рұқсат етілген пайдаланушыларға басқа тіркелгінің паролінің құпиялылығын бұзбай, өзгертілген құқықтарды пайдалануға мүмкіндік береді. sudo командасын пайдалану үшін пайдаланушылар белгілі бір топқа жататын болуы керек, әдетте «wheel» тобы немесе «sudo» тобы. Дұрыс тексеруден өткеннен кейін және конфигурациялық файл пайдаланушыға кіруге рұқсат берсе, жүйе қажетті команданы іске қосады. sudo псевдотерминал үшін белгілі бір уақытқа (әдетте 5 минут) пайдаланушының команданы іске қосу құқығын сақтайды, бұл пайдаланушыға парольді қайтадан енгізбей, қажетті пайдаланушы ретінде бірнеше команданы тікелей орындауға мүмкіндік береді. Қауіпсіздік пен аудит мүмкіндігі ретінде sudo әрбір орындалған команданы тіркеуге конфигурациялануы мүмкін. Егер пайдаланушы конфигурациялық файлда тіркелмеген болса, sudo-ны іске қосуға тырысқанда, оның әрекеті тіркелгендігі туралы хабарлама көрсетіледі. Конфигурацияланған жағдайда, root пайдаланушысына электрондық пошта арқылы хабарлама жіберіледі. Жүйеге әдепкі бойынша жазба жасалады.
Конфигурациясы
/etc/sudoers файлында root пайдаланушының немесе басқа белгіленген пайдаланушының құқықтарымен командалардың бір бөлігін орындауға рұқсат етілген пайдаланушылардың немесе пайдаланушылар тобының тізімі сақталған. Файлды өңдеу үшін sudo visudo командасын қолдану қажет. Sudo бірнеше конфигурация параметрлерін ұсынады, мысалы, парольсіз командаларды sudo арқылы орындауға рұқсат беру, sudo қолдана алатын пайдаланушыларды өзгерту және қате пароль енгізілген кезде көрсетілетін хабарламаны өзгерту. Sudo конфигурациялық файлынан қосымша мүмкіндік арқылы, әр қате пароль енгізілген сайын сөгіс көрсететін құпия мүмкіндікке ие.
Әсері
Кейбір жүйелік дистрибутивтерде sudo әкімшілік міндеттерді орындау үшін арнайы суперпайдаланушыға тікелей кіруден гөрі кеңінен қолданылады, ең әйгілісі – кейбір Linux дистрибутивтері және Apple-дің macOS жүйесі.
Құралдар және ұқсас бағдарламалар
visudo – бұл sudo конфигурациялық файлын қатесіз өңдеуге мүмкіндік беретін командалық жолдың құралы. Ол бірнеше бірдей өңдеулерді құлыптап, логикалық және синтаксистік тексерулерді жүргізеді. Sudoedit – sudo бинарлық файлына сілтеме жасайтын бағдарлама. Sudo командасы sudoedit псевдонимі арқылы іске қосылғанда, ол e опциясы берілгендей әрекет етеді және пайдаланушыларға жазу үшін қосымша құқықтар қажетті файлдарды өңдеуге мүмкіндік береді. Microsoft 2024 жылдың ақпан айында Windows үшін sudo-ның өзінің нұсқасын шығарды. Ол Unix сияқты, құқықтары жоғарылатылған командаларды құқықтары жоғарылатылмаған консоль сессиясынан орындау мүмкіндігін ұсынады. Runas бағдарламасы Windows жүйесінде ұқсас мүмкіндіктерді қамтамасыз етеді, бірақ ол балама бағдарламаға ағымдағы каталогтарды, орта айнымалыларын немесе ұзын командалық жолдарды жіберуге қабілетсіз. Ол балама бағдарламаны басқа пайдаланушы ретінде іске қосуды қолдайды, бірақ қарапайым құқықтарды жоғарылатуды қолдамайды. Hamilton C shell Windows үшін нағыз su және sudo құралдарын қамтиды, олар барлық осы мәліметтерді жіберіп, балама бағдарламаны құқықтары жоғарылатылған күйде немесе басқа пайдаланушы ретінде (немесе екеуінің де комбинациясы) іске қоса алады. Sudo үшін графикалық интерфейстер де бар, атап айтқанда gksudo, бірақ олар Debian жүйесінде қолданылмайды және енді Ubuntu-да да жоқ. Басқа интерфейстер тікелей sudo-ға негізделмеген, бірақ әкімшілік мақсаттар үшін уақытша құқықтарды жоғарылатуға мүмкіндік береді, мысалы Unix сияқты операциялық жүйелердегі pkexec, Microsoft Windows-тағы Пайдаланушы тіркелгісін басқару және Mac OS X Authorization Services. Gosu – контейнерлерде кең таралған sudo-ға ұқсас құрал, онда терминал толыққанды жұмыс істемейді немесе контейнерленген ортада sudo-ны іске қосудан қолайсыз әсерлер туындауы мүмкін.