nataraj: (Default)
[personal profile] nataraj
Команда для смены идентификации пользователя UNIX (например, /usr/bin/sudo или /bin/su -c) []:
Говорит коммунивер, и введенное совершенно не проверяет...

Собсвенно говоря видимо нужна защита от идиота... (Я однажды непосмотрев нажал Enter и перешел к след. пункту...) потом был несколько удивлен результатом...

Так интересно как можно проверить что sudo или su -c это то что надо....
Проверить что оно запущенное без параметров выполняется и выводит что-то на STDOUT?
А если что-то незаладиться и оно начнет ждать ввода? Это ж инсталлятор тогда зависнет... :-/

Как быть,

Date: 2009-03-19 07:51 pm (UTC)
From: [identity profile] alexkuklin.livejournal.com
для начала, убери шрифты...

потом - попробуй сделать что-то безвредное, что может только рут, при помощи этой команды

Date: 2009-03-19 07:56 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
для начала, убери шрифты...
Ты о неверно закрытом теге <b>?

потом - попробуй сделать что-то безвредное, что может только рут, при помощи этой команды
Так он сцуко пароль попросит... а этого как раз не надо...

Date: 2009-03-19 08:03 pm (UTC)
From: [identity profile] alexkuklin.livejournal.com
а не спастись
не факт, что пользователь - в судуерах.
так что без проверки нормальной - не обойтись, по-хорошему

Date: 2009-03-19 08:23 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
так нормальной проверки по большому счету не очень надо... достаточно проверить что оно вообще умеет запускаться...
Меня пугает то, что запустившись криво, оно начнет ждать ввода...
Вот если бы можно было бы сделать system('sudo') и отстрелить его через секунду, то тогда можно было бы быть уверенным в том оно это или не оно... Кажется такое можно сделать форком и сигналами, только вот на полное осознание этого моей квалификации не хватает...

Date: 2009-03-19 08:25 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
А вот что безобидное сделать? /cat/proc/1/environ? Непортабельно.
touch foo; ${SUDOCMD} chown root foo
Вот это похоже на правду.
Кстати, если ввести в качестве SUDOCMD fakeroot, то сработает.

Date: 2009-03-19 08:27 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
А вообще коммунивер не рассчитан на идиота (в роли системного администратора). Там всю систему менять надо, если под это затачивать.

;-)

Date: 2009-03-19 08:34 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
файл Config
3633 tolik # Каой вообще перл у нас? И суидный ли он?
3633 tolik my $suidperl = checkperl();
2479 vitus # Защита от complete idiot-а
2708 tolik Die("Текущая директория недоступна для записи\n") unless (-w ".");
4119 tolik Die("Файл cmw.conf недоступен для записи\n")
4119 tolik if (-f "cmw.conf" && ! (-w "cmw.conf"));

Date: 2009-03-19 08:35 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Так оно ж пароль будет спрашивать... Этого я избежать и хочу...

Date: 2009-03-19 09:53 pm (UTC)
From: [identity profile] aceler.livejournal.com
Проверить что пользователь в судоерсах — sudo -l.

Date: 2009-03-19 10:03 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
На эту команду он у меня тоже пароль спрашивает...

Date: 2009-03-20 07:29 am (UTC)
From: [identity profile] blog.vnaum.com (from livejournal.com)
sudo whoami

Date: 2009-03-20 07:35 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
спрашивает пароль, для автоматической проверки не подходит...

Date: 2009-03-20 09:48 am (UTC)
From: [identity profile] blog.vnaum.com (from livejournal.com)
Тогда расшифровывай, что имелось в виду под "то что надо"
> Так интересно как можно проверить что sudo или su -c это то что надо....

В моём представлении "что надо" - это "в результате выполнения этой
команды можно стать рутом". И если эта команда требует интерактивного
ввода, то его придётся-таки потребовать. Да, если пользователь не вписан в sudoers
или не помнит свой пароль (к примеру, ходит по ключу последние пять лет)
- то самый настоящий /usr/bin/sudo не является тем чем надо.

А ежели ослабить требования к "то что надо" до минимальных - то уж или
проверять на то что такая команда просто есть и исполняемая, или на
пачку готовых шаблонов (su / sudo / fakeroot).

Самым толковым вариантом мне вообще представляется вменяемое умолчание:
> Команда для смены идентификации пользователя [sudo]:

Date: 2009-03-21 08:47 am (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
sudo -h не требует пароля.

aptitude install timeout — запуск с таймаутом.

Запуск в фоне (&).

А вообще же, как уже здесь говорили, правильнее — вменяемое умолчание, проверка введённых данных (например на непустоту), проверка кодов ошибок и результата (если с привилегиями нужно скопировать файл, то проверяем, что он действительно скопировался).

Date: 2009-03-21 10:03 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Тогда расшифровывай, что имелось в виду под "то что надо"
Я бы проверил бы что

1. Команда без доп параметров запускается, и не уходит в бесконечный цикл в ожидании чего либо. (убеждаемся что нам не подсунули /usr/bin/mc например)

2. Комадна с доп параметром "echo aaa" либо уходит в бесконечное ожидание ввода пароля, либо выполняет указанное действие.

3. Если выполняет указанное действие то сделать что-то что может только рут.

конструкцию с форками и сигналми которая бы могла проверить все это я пока соорудить не смог... Правда уделял этому не очень много времени.

Date: 2009-03-23 04:51 am (UTC)
From: [identity profile] blog.vnaum.com (from livejournal.com)
Что-то как-то действительно слишком много танцев для проверки от невнимательного админа.

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

Да, это не спасёт от изобретательного лжеца - но если уж изобретательный лжец решил не устанавливать софт, то он может и вовсе не запускать инсталлятор Ж-)

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 23rd, 2026 08:11 pm
Powered by Dreamwidth Studios