1 Востаннє редагувалося bebyk (13.03.2020 13:13:08)

Тема: doas - полегшена альтернатива sudo для Лінукса і BSD

Якщо ви користуєтеся Лінуксом лише на домашньому комп'ютері, то скоріш за все вам не потрібна уся та розширена функціональність sudo, яка тримає в собі 30 років історії розвитку проекту.

OpenBSD, початково Тед Унанґст, свого часу створили doas, дуже легку утиліту, щоб керувати дозволами користувачів. Як стверджує офіційна документація, doas

"надає 95% функціональності sudo з дрібкою основної бази коду".

Далебі, sudo важить близько 5мб, натомість doas доходить лише до кількох кілобайтів.

Кілька років як doas вже портована на GNU/Linux і на FreeBSD.

Отаман Вочевидячки підказує: щоб користуватися doas, треба спершу його встановити:

Ubuntu/Debian:

apt install doas

Gentoo:

emerge -a doas

FreeBSD:

pkg install doas

Коли встановилося, треба створити файл конфіґу doas.conf, котрий наразі не існує.

В Лінуксі цільова директорія для файлу має бути /etc/, у FreeBSD - /usr/local/etc/.

Скористуйтеся текстовим редактором вашого вибору, щоб створити файл. Я користуюся Vim'ом:

vim /etc/doas.conf

або для більш упорядкованого FreeBSD:

vim /usr/local/etc/doas.conf

І додаєте два рядки, щоб активувати дозволи для користувача:

permit nopass keepenv :wheel
permit nopass keepenv root as root

Звісно ж, ваш обраний користувач має бути в групі wheel.

Можна додавати й по імені користувача замість імені групи - :bebyx, приміром.

Відтак вводьте команди з doas попереду замість sudo - і всьо буде чотко. Наприклад:

doas emerge -uaDN @world

Якщо не хочете давати безпарольного доступу користувачеві, замість nopass поставте persist:

permit persist keepenv :wheel

Це ввімкне стандартну в sudo функцію просити пароля лише вперше за сесію.

Докладніше про трюки в doas можна почитати англійською: https://flak.tedunangst.com/post/doas-mastery

Подякували: koala, reverse2500, leofun01, pluszz, 0xDADA11C75

2

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

А sudo що знести чи що? Воно ж так і так ставиться з основою системи... а оцей doas ствоює аліаси для sudo чи як будуть працювати скрипти, в яких воно прописане? Тож sudo доведеться залишити, тоді перевага, на якій акцентовано (невеликий розмір) втрачає сенс чи не так?

Подякували: leofun011

3

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

У вас є скрипти, в яких прописане sudo? Ви ЩРНТ.

4

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

koala написав:

У вас є скрипти, в яких прописане sudo? Ви ЩРНТ.

Не знаю, хто чи що таке ЩРНТ... в puppet'і в мене повно таких скриптів у девелоперських віртуалках під vagrant'ом.

5 Востаннє редагувалося koala (13.03.2020 12:07:29)

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

"ЩРНТ" - "щось робите не так".
Я вважаю, що sudo - користувацький інструмент для спрощеного перемикання користувачів. Він не робить нічого, чого не можна було б зробити за допомогою виставлення прав - він просто робить це зручніше. Для скриптів слід ретельніше налаштовувати права.

Подякували: leofun01, ostap34PHP2

6 Востаннє редагувалося bebyk (13.03.2020 13:00:35)

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

bvn написав:

А sudo що знести чи що? Воно ж так і так ставиться з основою системи... а оцей doas ствоює аліаси для sudo чи як будуть працювати скрипти, в яких воно прописане? Тож sudo доведеться залишити, тоді перевага, на якій акцентовано (невеликий розмір) втрачає сенс чи не так?

Не знаю, в Gentoo чи FreeBSD sudo не ставиться з основою системи (може ви маєте на увазі su?). Але так, достатньо sudo просто видалити й користуватися doas.

Щодо скриптів - вам видніше, що вам треба. Я ж у першому абзаці написав - для домашнього користування. А це зазвичай обмежується doas <package-command> і двома рядками в файлі конфіґу.

7

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

Олсо, якщо ви маєте на увазі команди на кшталт:

doas bash -c "<ваша-захищена-команда>"

- то звісно doas таке робить.

8

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

Особисто я скоріше за все не буду переходити на doas та все рівно дякую автору бо це цікавий топік. Надіюсь не останній.

Подякували: bebyk, 0xDADA11C72

9

Re: doas - полегшена альтернатива sudo для Лінукса і BSD

Я мав на увазі щось таке:

exec { "n":
    command => "sudo npm config set strict-ssl false && sudo npm install n -g && sudo n stable",
    path    => ["/usr/bin"],
    require => Package["npm", "nodejs", "nodejs-legacy"]
  }

  exec { "eslint":
    command => "sudo npm config set strict-ssl false && sudo npm install -g eslint",
    path    => ["/usr/bin"],
    require => Exec["n"]
  }

або таке

  exec { "mod_rewrite":
    command => "sudo a2enmod rewrite",
    path    => ["/usr/bin", "/usr/sbin"],
    require => Package["apache2"]
  }

Так це звісно трохи виходить за рамки простого домашнього користування, але мета (знизити розмір бокса) цілком могла би виправдати заміну на doas... Хоча погоджусь, що створювач первинного боксу, якщо вже наважиться на таку заміну, то напевне зможе сам руцями зробити аліаси...

Не знаю, в Gentoo чи FreeBSD sudo не ставиться з основою системи (може ви маєте на увазі su?). Але так, достатньо sudo просто видалити й користуватися doas.

Мав на увазі всілякі убунту-дистрибутиви... здається sudo там ставиться за замовчуванням.

Подякували: pluszz1