Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Первые шаги: /etc/sudoers и sudo. РЕШЕНО.

 
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> OpenSUSE
 
Автор Сообщение
Mooonlight

Новенький


Зарегистрирован: 11.08.2011
Сообщения: 39

СообщениеДобавлено: Чт Авг 11, 2011 2:25 pm    Заголовок сообщения: Первые шаги: /etc/sudoers и sudo. РЕШЕНО.
Ответить с цитатой

В файл /etc/sudoers добавляется строка:
guest localhost = /bin/mount
Теперь, по логике, пользователь guest сможет запускать, команду mount, например так:
sudo /bin/mount /dev/dvd ~/DVD (монтирует dvd-диск к папку DVD в домашней директории пользователя guest)
После запуска этой команды, система требует ввести root-пароль. Ввод пароля пользователя guest система не принимает.
В чем ошибка?


Последний раз редактировалось: Mooonlight (Пн Сен 26, 2011 1:38 pm), всего редактировалось 4 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mooonlight

Новенький


Зарегистрирован: 11.08.2011
Сообщения: 39

СообщениеДобавлено: Чт Авг 18, 2011 6:49 pm    Заголовок сообщения:
Ответить с цитатой

Друзья, неужели никто не напишет, в какую сторону копать, чтобы понять механизм работы файла sudoers? Приглашаю делиться примерами, тема многим интересна.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Авг 18, 2011 11:29 pm    Заголовок сообщения:
Ответить с цитатой

Полезная ссылка

http://www.opennet.ru/man.shtml?topic=sudoers&category=5&russian=0

Пример файла sudoers

#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

##
# User alias specification
##
User_Alias FULLTIMERS = millert, mikef, dowdy
User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim

##
# Runas alias specification
##
Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase

##
# Host alias specification
##
Host_Alias SPARC = bigtime, eclipse, moet, anchor:\
SGI = grolsch, dandelion, black:\
ALPHA = widget, thalamus, foobar:\
HPPA = boa, nag, python
Host_Alias CUNETS = 128.138.0.0/255.255.0.0
Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias SERVERS = master, mail, www, ns
Host_Alias CDROM = orion, perseus, hercules

##
# Cmnd alias specification
##
Cmnd_Alias DUMPS = /usr/sbin/dump, /usr/sbin/rdump, /usr/sbin/restore, \
/usr/sbin/rrestore, /usr/bin/mt
Cmnd_Alias KILL = /usr/bin/kill
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt
Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su
Cmnd_Alias VIPW = /usr/sbin/vipw, /usr/bin/passwd, /usr/bin/chsh, \
/usr/bin/chfn

##
# Override built-in defaults
##
Defaults syslog=auth
Defaults:FULLTIMERS !lecture
Defaults:millert !authenticate
Defaults@SERVERS log_year, logfile=/var/log/sudo.log

##
# User specification
##

# root and users in group wheel can run anything on any machine as any user
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL

# full time sysadmins can run anything on any machine without a password
FULLTIMERS ALL = NOPASSWD: ALL

# part time sysadmins may run anything but need a password
PARTTIMERS ALL = ALL

# jack may run anything on machines in CSNETS
jack CSNETS = ALL

# lisa may run any command on any host in CUNETS (a class B network)
lisa CUNETS = ALL

# operator may run maintenance commands and anything in /usr/oper/bin/
operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\
/usr/oper/bin/

# joe may su only to operator
joe ALL = /usr/bin/su operator

# pete may change passwords for anyone but root on the hp snakes
pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

# bob may run anything on the sparc and sgi machines as any user
# listed in the Runas_Alias "OP" (ie: root and operator)
bob SPARC = (OP) ALL : SGI = (OP) ALL

# jim may run anything on machines in the biglab netgroup
jim +biglab = ALL

# users in the secretaries netgroup need to help manage the printers
# as well as add and remove users
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

# fred can run commands as oracle or sybase without a password
fred ALL = (DB) NOPASSWD: ALL

# on the alphas, john may su to anyone but root and flags are not allowed
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

# jen can run anything on all machines except the ones
# in the "SERVERS" Host_Alias
jen ALL, !SERVERS = ALL

# jill can run any commands in the directory /usr/bin/, except for
# those in the SU and SHELLS aliases.
jill SERVERS = /usr/bin/, !SU, !SHELLS

# steve can run any command in the directory /usr/local/op_commands/
# as user operator.
steve CSNETS = (operator) /usr/local/op_commands/

# matt needs to be able to kill things on his workstation when
# they get hung.
matt valkyrie = KILL

# users in the WEBMASTERS User_Alias (will, wendy, and wim)
# may run any command as user www (which owns the web pages)
# or simply su to www.
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www

# anyone can mount/unmount a cd-rom on the machines in the CDROM alias
ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Mooonlight

Новенький


Зарегистрирован: 11.08.2011
Сообщения: 39

СообщениеДобавлено: Ср Сен 07, 2011 1:06 pm    Заголовок сообщения:
Ответить с цитатой

den, спасибо за шпаргалку, но по-прежнему не получается заставить запускаться программу через sudo.

Например, /sbin/yast2 запускается под обычным пользователем с минимальными правами.
В sudoers прописано:
user localhost = /sbin/yast2
При выполнении под пользователем команды sudo /sbin/yast2, система требует пароль root, хотя вроде как должна сработать после ввода пароля запустившего ее пользователя.

Почему так? Опиши, пожалуйста, порядок включения разрешений с самого начала для openSuse (например, 11.3)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mooonlight

Новенький


Зарегистрирован: 11.08.2011
Сообщения: 39

СообщениеДобавлено: Пн Сен 26, 2011 1:38 pm    Заголовок сообщения:
Ответить с цитатой

Почему же не получалось настроить файл sudoers так, чтобы при вводе из под пользователя любой разрешенной этому пользователю команды, система не спрашивала root`s password, а спрашивала бы user password?

Подвела невнимательность. Настолько очевидный факт, что даже как-то неудобно о нем говорить. Однако, вот решение вышеописанного вопроса (ответ, кстати, в самом файле sudoers, на самом виду):

# In the default (unconfigured) configuration, sudo asks for the root password.
# This allows use of an ordinary user account for administration of a freshly
# installed system. When configuring sudo, delete the two
# following lines:
Defaults targetpw
ALL ALL = (ALL) ALL

Собственно говоря, достаточно закомментировать (чтобы не удалять) эту строчку:
#Defaults targetpw

Ну и #ALL ALL = (ALL) ALL за компанию, ибо нефиг...

И все. С этого момента, при запуске программы через sudo, система спросит именно user password. И, безусловно, запишет результат в лог.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mooonlight

Новенький


Зарегистрирован: 11.08.2011
Сообщения: 39

СообщениеДобавлено: Пн Сен 26, 2011 1:41 pm    Заголовок сообщения:
Ответить с цитатой

Вот еще, кому пригодится, небольшой мануал по файлику:

Формат файла /etc/sudoers прост: начинается с четырех опциональных секций, и заканчивается присвоением специальных прав. Файл может включать пустые строки, строки комментариев, которые начинаются со значка #. Опциональные (необязательные) секции следующие:

User Alias (Псевдоним пользователя): Присваивает псевдоним одному пользователю (не очень полезно) или группе пользователей. Пользователь может иметь несколько псевдонимов.
"Run as" Alias ("Работает как" Псевдоним): Определяет, вместо кого именно пользователь команды sudo будет работать. По умолчанию sudo подразумевает суперпользователя (root), но есть возможность работать вместо кого-либо другого.
Host Alias (Псевдоним рабочей станции): Определяет, каким рабочим станциям присваиваются права. Если вы не системный администратор группы из нескольких рабочих станций Линукс, то не вам это не нужно. А если нужно, то придется скопировать файл при помощи команды rsync на другие хосты, либо использовать что- либо вроде Network Information Service (NIS), чтобы обеспечить кому надо доступ к этому файлу.
Command Alias (Псевдоним Команды): Определяет псевдоним для той или иной команды. Проще напечатать псевдоним APT, чем полный путь, такой как /usr/sbin/apt-get.

Вы не обязаны использовать псевдонимы, но они сильно облегчают дальнейшее редактирование. Например, если вы хотите наделить Дональда_Дака правами, которые имеет Микки_Маус, просто добавьте первого в группу последнего и вам не придется тратить много времени, переписывая везде одинаковые строки. Существует специальный псевдоним ALL (ВСЕ), и его можно использовать везде: он может означать ВСЕ пользователи, ВСЕ хосты, и т.д.

После этих четырех секций, вы должны заполнить секцию специальных прав, которая выглядит как: "who where = (whoelse) what" - "кто где = вместо_кого что". Это означает: who (кто) (пользователь, группа, или псевдоним пользователя) на рабочей станции where (где) может запускать команду what (что) в качестве пользователя whoelse (вместо_кого). (Если это слишком зашифровано, посмотрите ниже пример). Можно также подключить несколько специальных опций, например, NOPASSWD (без_пароля), позволяющей пользователю запускать sudo без введения собственного пароля; другие опции перечислены в манах.

Данный пример не описывает все возможности конфигурации (для этого существует команда man sudoers), но некоторые опции могли бы выглядеть в файле приблизительно так:

#
# Пример файла /etc/sudoers, с извинениями компании Disney company!
#

# Псевдонимы пользователей
# Первая строка создает псевдоним для трех определенных пользователей.
# Вторая строка включает в группу "утки" всех, за исключением "дональда"
# Третья строка создает псевдоним для одного пользователя; это может
# понадобиться в дальнейшем!
#
User_Alias ПЛЕМЯННИКИ = хью, дью, луи
User_Alias ВСЕ_УТКИ_КРОМЕ_ДОНАЛЬДА = %утки, !дональд
User_Alias МИККИ = микки_маус

# Псевдонимы команд

Cmnd_Alias HALT_OR_REBOOT = /sbin/halt
Cmnd_Alias KILL = /usr/bin/killall
Cmnd_Alias SHUTDOWN = /sbin/shutdown
Cmnd_Alias SU = /bin/su

# Права: кто имеет право запускать что

# Стандартное правило: root и пользователи группы "wheel"
# имеют все права
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL

# Допустим, что микки_маус является системным администратором,
# позволим ему запускать все без пароля
МИККИ ALL = NOPASSWD: ALL

# ПЛЕМЯННИКИ могут выключать машину, если захотят
NEPHEWS HALT_OR_REBOOT, SHUTDOWN


Взято отсюда: http://rus-linux.net/lib.php?name=/MyLDP/admin/sudo.html
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Сен 26, 2011 7:02 pm    Заголовок сообщения:
Ответить с цитатой

Тему закрываю как решенную
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> OpenSUSE Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис