Отправляет email-рассылки с помощью сервиса Sendsay

SUID?

Вопрос простой:
ALT 2.0 - почему при установке SUID бита файлы не исполняются от имени
владельца (root)?
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8027; Возраст листа: 318; Участников: 1164
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/165013



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 08 Jun 2004 12:11:22 +0400 (#165013)

 

Ответы:

i686-pc-linux-gnu)

Расскажите подробнее, возможно смогу помочь:
какие файлы - скрипты или бинарные?
и как вы их запускаете - из командной строки (bash, ksh) или по-другому?

Ответить   Tue, 8 Jun 2004 14:04:42 +0300 (#165032)

 

Vladimir Gilevich wrote:

Скрипт для примера:

root@mailserv damir]# cat adduser

#!/bin/bash

echo 'Username, pls...'
read myUSERNAME
/usr/sbin/useradd $myUSERNAME
echo 'OK!'[root@mailserv damir]#

Вот с такими правами:
[root@mailserv damir]# ls -l
итого 4
-rwsr-xr-x 1 root root 92 Июн 8 15:25 adduser
drwxr-xr-x 2 damir damir 440 Июн 2 18:53 Desktop
drwxr-xr-x 2 damir damir 48 Июн 4 16:35 tmp

[damir@mailserv damir]$ ./adduser
Username, pls...
bla
useradd: PAM authentication failed
OK!
[damir@mailserv damir]$

Вот такая вот беда!
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8050; Возраст листа: 318; Участников: 1164
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/165246



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 08 Jun 2004 15:32:25 +0400 (#165246)

 

i686-pc-linux-gnu)

если изменить ссылку /bin/sh на ksh, то должно выполниться.
а вообще была уже на эту тему хорошая мысль - настроить sudo.

Ответить   Tue, 8 Jun 2004 18:39:20 +0300 (#165265)

 

On Вторник 08 Июнь 2004 19:39, Vladimir Gilevich wrote:

Это выполняться НЕ ДОЛЖНО - sticky bits для скриптов игнорируются
ядром. Интерпретатор может это обойти, но для этого он сам (или
какой-либо helper к нему) должен быть suid root, а это может быть
чревато.

Ответить   "Sergey B. Khvatov" Wed, 9 Jun 2004 10:55:24 +0400 (#165747)

 

i686-pc-linux-gnu)

Но это выполняется, если в качестве shell по-умолчанию настроить ksh.
Видимо это есть как раз тот случай, когда интерпретатор обходит сбрасывание sticky
bit'a. Наверное есть какие-то причины, почему это работает с ksh. В свое время
искал, но ответа не нашел...

Согласен, что может быть черевато.

Ответить   Wed, 9 Jun 2004 11:16:45 +0300 (#165837)

 

On Wed, 9 Jun 2004, Sergey B. Khvatov wrote:

А чем чревато? Если программа написана грамотно, то никакой разницы
нет, бинарик это или скрипт.

В OpenBSD политика несколько иная.

Файлы, испольняемые из каталога пользователя и имеющие SetUID или
SetGID, никогда эти биты не реализуют будь то sh скрипт или программа
на perl или бинарик. А вот из других мест -- пожалуйста (и sh и
бинарик). Только perl не хочет пускаться, но это к perlsec(1).

PS. sh(1) в OpenBSD это Public Domain Korn Shell (pdksh).

Ответить   Thu, 10 Jun 2004 00:39:14 +0400 (MSD) (#166552)

 

On Вторник 08 Июнь 2004 15:32, Дамир Хакимов wrote:

Тогда можно настроить PAM так - он и существует как раз для
подобных задач. Только это с непривычки непросто :-(

Ответить   "Sergey B. Khvatov" Wed, 9 Jun 2004 10:45:43 +0400 (#165742)

 

On Вторник 08 Июнь 2004 12:11, Дамир Хакимов wrote:

Если ЭТО - скрипты, то так и должно быть из соображений
безопасности. Подробности не помню.

Ответить   "Sergey B. Khvatov" Tue, 8 Jun 2004 15:17:14 +0400 (#165041)

 

Sergey B. Khvatov wrote:

А если очень надо, где рыть?
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 8036; Возраст листа: 318; Участников: 1164
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/165097



-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 08 Jun 2004 15:36:39 +0400 (#165097)

 

On Вторник 08 Июнь 2004 15:36, Дамир Хакимов wrote:

Написать wrapper. Он ОЧЕНЬ простой:

#include <unistd.h>
#define MY_SCRIPT "/full/path/to/script"

int main (int ac, char **av) {
execv (MY_SCRIPT, av);
_exit(1);
}

В perl есть собственный механизм для запуска suid скриптов.

Ответить   "Sergey B. Khvatov" Tue, 8 Jun 2004 16:46:52 +0400 (#165114)

 

i686-pc-linux-gnu)

в bash не сработает. потеряет SUID.

а если использовать ksh, то можно будет запускать скрипты из командной строки
и SUID будет применим и для скриптов.

Ответить   Tue, 8 Jun 2004 15:54:40 +0300 (#165123)

 

On Вторник 08 Июнь 2004 16:54, Vladimir Gilevich wrote:

Специально для особо бдительных интерпретаторов можно добавить

setuid(geteuid());

Ответить   "Sergey B. Khvatov" Tue, 8 Jun 2004 17:28:11 +0400 (#165144)

 

i686-pc-linux-gnu)

bash не дает этого сделать.

Не уверен правда bash-ли это,
но если поменять ссылку /bin/sh на ksh, то тогда желаемые права установятся.

Ответить   Tue, 8 Jun 2004 16:46:26 +0300 (#165160)

 

Sergey B. Khvatov wrote:

А не лучше настроить sudo? С точкт зрения безопасности.

Ответить   Max Vasin Tue, 08 Jun 2004 17:16:51 +0400 (#165136)