{{tag>shell utils sudo}}

====== Sudo ======

===== Формат =====

$ nano /etc/sudoers
  root            ALL = (ALL:ALL) ALL
  fred            ALL = (DB) NOPASSWD: ALL
  mirocow         ALL = (ALL:ALL) NOPASSWD: ALL
  WEBMASTERS      www = (www) ALL, (root) /usr/bin/su www

  * текущий пользователь
  * хост, алиас
  * (пользователь:группа) флаги
    * флаг NOPASSWD
  * комманды, алиас

[[http://www.opennet.ru/man.shtml?topic=sudoers&category=5&russian=0|Подробно]]

===== Фишки =====

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

<code sh>
xxx@yyy:~$ apt-get update
E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock - open (13: Permission denied)
E: Невозможно заблокировать каталог со списками пакетов
xxx@yyy:~$ sudo !!
sudo apt-get update
</code>

===== Ошибки =====

==== sudo: unable to resolve host ws1 ====

Сначала изменяем hostname на название нашего сайта. В нашем случае это **ws1.my-host.com** и прописываем к нему синоним. В дальнейшем мы сможем на сервере в настройках просто указывать синоним. И не нада будет при измеении наименования нашего сайта изменять его во всех конфигурационных файлах.

nano /etc/hosts
<code>
127.0.0.1	ws1.my-host.com		ws1
</code>

Затем прописываем этот же синоним или название нашего сайта. В нашем случае это **ws1**

nano /etc/hostname
<code>
ws1
</code>

И перезагружаем сервер

<code>
shutdown -r now
</code>