Skip to content

Как настроить sudo юзера во FreeBSD

Синопсис

Во фре пользователь если входит в группу wheel (если конечно при установке он был включен в группу wheel), не ознает, что если нам нужно сделать что-то с правами суперпользователя, например создать другого юзера, то мы можем написать как-то так:

sudo adduser


Так работать не будет, потому что во фре изначально никакого понятия сюдоера нету. Если мы хотим добавить пользователя, то мы должны саначала перейти в суперпользователя и под суперпользователем добавлять нового пользователя (или чего-нибудь еще, что требует суперпользовательских прав):

su
Password:
root@freebsd:/home/username # adduser

Вот так работать будет, и то если пользователь входит в группу wheel, если же мы попытаемся зайти в другого пользователя из под пользователя не входящего в группу wheel, то нам система откажет. Конечно постоянно переходить из одного пользвателя в другого, чтобы что-то запустить из под суперползователя и потом возвращаться обратно менее удобно, чем просто написать sudo команда. Но есть еще одно неудобство, которое еще хуже чем просто переход туда сюда. Допустим на машине с фрёй есть еще несколько пользователей, которым тоже иногда нужны временные суперползовательские права, но которым не нужно знать пароль рута. В этом случае им придется ждать пока вы вернетесь с работы, чтобы ввести пароль рута, а вот если бы тот другой юзер был сюдоером, то он бы просто ввел свой пароль. Поэтому рано или поздно вопрос о запуске команд через sudo во фре становится злободневным. Чуть выше, когда я писал, что во фре никакого понятия судоера нету, я немножечко слукавил, его нету только по умолчанию, но мы его можем установить.

Установка утилиты sudo

Давайте установим сюдоера на нашей фре. Запустите терминал и введите команду:

whereis sudo
/usr/ports/security/sudo

Так мы найдем порт, от куда можно установить утилиту sudo. Теперь переходим в этот порт:

cd /usr/ports/security/sudo

И заходим в суперпользователя командой su (напоминаю, перейти в суперпользователя можно только если пользователь входит в группу wheel):

su
Password:
root@freebsd: /usr/ports/security/sudo # make install clean

После этого установщик начнет вытягивать исходники, потом их компилировать и затем ставить банарный пакет.

Назначение пользователя сюдоером

После того как все поставилось, осталось еще подредактировать файл /usr/local/etc/sudoers. По этому, пока оставайтесь суперпользователем, перейдите в каталог /usr/local/etc и проверьте, что файл sudoers действительно есть:

cd /usr/local/etc
ls -l sudoerd
-r--r-----  1 root  wheel  3381 Apr  7 22:44 /usr/local/etc/sudoers

Если файл sudoers есть, то ему надо еще включить права на запись, так как по умолчанию он создается с правами на чтение:

чмод u+w sudoers

Теперь откроем его на редактирование:

vim sudoers

Найдите в нем строчку root ALL=(ALL) ALL и добавьте под ней такую же только со своим юзером (строчка 10):

...
##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL) ALL
username ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo	ALL=(ALL) ALL

...

Расшифруем строку:

username ALL=(ALL) ALL

Она означает, что для пользователя username разрешено:
Первый ALL означает с каких хостов разрешено выполнять команду sudo. В нашем случае из под всех.
Второй (ALL) означает пользователей, из под которых разрешено выполнять команду sudo. В нашем случае из под любого пользователя. Так же можно написать пользователя и группу, из под которых разрешено выполнять команду sudo, записывается так: (ALL:ALL), что означает из под всех пользователей и групп.
И третий ALL означает команды, которые разрешено выполнять через команду sudo. В нашем случае любую команду.

Сохраните и выйдите из вима:

(Esc)
wq

и выйдите из суперпользователя:

exit

Пользуемся утилитой sudo

Теперь чтобы что-то запустить для чего требуются суперпользовательские привилегии нужно вставить перед той командой, которую требуется запустить, команду sudo без перехода в суперпользователя:

sudo команда

Если же вам и это надоело (постоянно вводить sudo перед суперюзерской командой), то можете сделать это один раз, введите:

sudo -s

и теперь вы будете постоянно находиться в режиме суперпользователя до выхода из него командой exit или вводом ctrl+D, при этом, не зная суперпользовательского пароля.

Линки

Using sudo on FreeBSD

Поделиться в социальных сетях

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *