Раздел: Админство

Настройка sudo в Linux Debian

Почему-то в Debian при обычной (не расширенной) установке в неё не входит пакет sudo. Приходится довольно часто писать несколько строчек настроек, что надоедает. Здесь опубликую стартовые настройки для выполнения юзером админских команд, чтобы потом просто копипастить; заодно опишу сам процесс установки и связанные с этим проблемы.

Во-первых, раз sudo отсутствует, то все админские команды приходится запускать из-под админа напрямую:

user1@deb: su
Password:
root@deb:/home/user1#

Можно, конечно, и как-то так: su -c ‘command_here’, но это долго.

Что нужно сделать из-под рута? Конечно, обновить список пакетов. Однако…

root@deb:/home/user1# apt-get update
Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04] wheezy Release.gpg
Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04] wheezy Release
Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04] wheezy/main amd64 Packages/DiffIndex
Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04] wheezy/main Translation-en_US

Он требует CD-rom, с которого была произведена установка. Если ему не дать тот CD, то при установке пакета sudo будет такое:

root@deb:/home/user1# apt-get install sudo
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/842 kB of archives.
After this operation, 1,882 kB of additional disk space will be used.
Media change: please insert the disc labeled
 'Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04'
in the drive '/media/cdrom/' and press enter

Сколько проблем-то, чтобы начать работать с Debian! Мелочь, а неприятно.
Чтобы такого далее не происходило, нужно закомменировать соответствующие этому ресурсу (CD) строки в файле sources.list:

root@deb:/home/user1# vi /etc/apt/sources.list

#

# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04]/ wheezy main

# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official amd64 xfce-CD Binary-1 20141018-13:04]/ wheezy main

deb http://mirror.mephi.ru/debian/ wheezy main
deb-src http://mirror.mephi.ru/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as 'volatile'
deb http://mirror.mephi.ru/debian/ wheezy-updates main
deb-src http://mirror.mephi.ru/debian/ wheezy-updates main

Снова обновляем список пакетов и инсталлируем sudo:

root@deb:/home/user1# apt-get update && apt-get install sudo

Ошибок уже не будет.
Далее следует настроить конфиг самого sudo: файл /etc/sudouers
Однако, тут тоже есть тонкости. Даже от рута мы не сможем сразу отредактировать этот файл, потому что он по понятным причинам имеет права 440:

root@deb:/home/user1#ls -l /etc/sudoers
-r--r----- 1 root root 669 Dec 3 13:36 /etc/sudoers

Значит, у нас есть два варианта: либо мы с помощью chmod изменяем права доступа к файлу, редактируем его и меняем права обратно, либо мы редактируем его с помощью специально предназначенной для того утилитой visudo, что будет правильнее и быстрее.
Тут опять есть два варианта на выбор: либо мы указываем утилите, в каком редакторе открыть нужный нам файл конфига sources.list для редактирования, либо мы просто запускем visudo без каких-либо параметров и тогда файл откроется в редакторе по-умолчанию. Если мы хотим указать нужный нам редактор, это происходит посредством задания его названия в переменную EDITOR. Например, пусть это будет vi:

root@deb:/home/user1# EDITOR=vi visudo

И так, мы видим наш конфиг.
Настройки sudo, как правило, но всех серверах разные, но стартовая настройка у меня обычно одна:
я хочу, чтобы пользователь мог выполнять команды от админа. и вводил админский пароль, а не свой. Для этого добавим соответствующие две строчки настроек в файл:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults:       user1 targetpw

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
user1   ALL=(root) ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Всё. Можно приступать к дальнейшей работе по настройке сервера. Теперь пользователю user1 будут доступны админские команды через sudo с введением пароля от root.

Комментировать

Комментарии

восемь − 5 =