Как не root'у пользоваться /dev/ttyS0
От: Alhim Украина  
Дата: 17.06.04 09:54
Оценка:
При попытке под обычным пользоватлем открывать файл порта выдаётся сообщение о недостатке прав. Как это можно обойти?
Re: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.06.04 09:56
Оценка: -1
Здравствуйте, Alhim, Вы писали:

A>При попытке под обычным пользоватлем открывать файл порта выдаётся сообщение о недостатке прав. Как это можно обойти?


Например, поставить SUID на прогу, которой открываете и права владения на root'а

Нет ничего невозможного..
Re: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 17.06.04 10:33
Оценка: +1
Здравствуйте, Alhim, Вы писали:

A>При попытке под обычным пользоватлем открывать файл порта выдаётся сообщение о недостатке прав. Как это можно обойти?


права на нем поменять... например дать ему группу termuser и всех, кому надо в эту группу... а suid не есть хорошо.
Re[2]: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.06.04 10:57
Оценка:
Здравствуйте, aka50, Вы писали:

A>>При попытке под обычным пользоватлем открывать файл порта выдаётся сообщение о недостатке прав. Как это можно обойти?

A>права на нем поменять... например дать ему группу termuser и всех, кому надо в эту группу... а suid не есть хорошо.
Понятно, что не хорошо, но часто так и делают..

Нет ничего невозможного..
Re[3]: Как не root'у пользоваться /dev/ttyS0
От: raskolnikov  
Дата: 17.06.04 12:04
Оценка:
Здравствуйте, butcher, Вы писали:


A>>... а suid не есть хорошо.

B>Понятно, что не хорошо,
A sachem togda predlogat'

Aaaaa, tak eto s suid prikol byl?

B>..но часто так и делают..

Esli napered ne snajut, kakie resursy programma ispol'suet.
Sdes' ved' rech idet o konkretnom "device"

Kstati luchsche vmesto suid-bita paket "sudo" ispol'sovat'.
Re[4]: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.06.04 12:18
Оценка:
Здравствуйте, raskolnikov, Вы писали:

A>>>... а suid не есть хорошо.

B>>Понятно, что не хорошо,
R> A sachem togda predlogat'
один из рабочих и часто используемых вариантов

R>Aaaaa, tak eto s suid prikol byl?

ну, можно и так сказать

R>Kstati luchsche vmesto suid-bita paket "sudo" ispol'sovat'.


да, тоже вариант

Нет ничего невозможного..
Re[4]: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 17.06.04 12:18
Оценка:
Здравствуйте, raskolnikov, Вы писали:

R>Kstati luchsche vmesto suid-bita paket "sudo" ispol'sovat'.


к стати о sudo. Я тут наткнулся на такую весч, что sudo не хочет выполняться из под рута:

station# sudo -u someuser test
You are already root, you don't need to use sudo.


вот такая петрушка. Можно конечно в исходники слазить, но вдруг есть решение
(мое решение, просто тупая прога на 10 строчек специально для рута)
Re[5]: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.06.04 12:24
Оценка: 1 (1)
Здравствуйте, aka50, Вы писали:

A>к стати о sudo. Я тут наткнулся на такую весч, что sudo не хочет выполняться из под рута:


A>
A>station# sudo -u someuser test
A>You are already root, you don't need to use sudo.
A>


A>вот такая петрушка. Можно конечно в исходники слазить, но вдруг есть решение

A>(мое решение, просто тупая прога на 10 строчек специально для рута)

Попробуйте так:
 # su -l someuser -c test

Нет ничего невозможного..
Re: Как не root'у пользоваться /dev/ttyS0
От: Аноним  
Дата: 18.06.04 10:06
Оценка:
A>При попытке под обычным пользоватлем открывать файл порта выдаётся сообщение о недостатке прав. Как это можно обойти?

А как эту проблему можно обойти под MacOS X для application package? С sudo или su из командной строки это, само-собой, не запускается.
Re[2]: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 18.06.04 10:13
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А как эту проблему можно обойти под MacOS X для application package? С sudo или su из командной строки это, само-собой, не запускается.

Почему "само-собой не запускается"?

aka50 ведь сказал, выставляете правильные права на файл девайса и вперёд.

Нет ничего невозможного..
Re[3]: Как не root'у пользоваться /dev/ttyS0
От: Аноним  
Дата: 18.06.04 10:52
Оценка: :))
Здравствуйте, butcher, Вы писали:

B>Почему "само-собой не запускается"?

Потому что приложение представляет собой директорию, в которой хранятся ресурсы. И в консоли в эту директорию можно только войти, и я не знаю как сказать ей выполнится.

B>aka50 ведь сказал, выставляете правильные права на файл девайса и вперёд.

А это решение не подходит т.к. требует логина под root-ом (или пользователем который может поменять права), но тогда и программа под этим пользователем отработает без проблем...
Re[6]: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 18.06.04 11:25
Оценка:
Здравствуйте, butcher, Вы писали:

B>Здравствуйте, aka50, Вы писали:


A>>к стати о sudo. Я тут наткнулся на такую весч, что sudo не хочет выполняться из под рута:


A>>
A>>station# sudo -u someuser test
A>>You are already root, you don't need to use sudo.
A>>


A>>вот такая петрушка. Можно конечно в исходники слазить, но вдруг есть решение

A>>(мое решение, просто тупая прога на 10 строчек специально для рута)

B>Попробуйте так:

B>
B> # su -l someuser -c test
B>


оо... как все просто . thnx
Re[4]: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 18.06.04 11:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, butcher, Вы писали:


B>>Почему "само-собой не запускается"?

А>Потому что приложение представляет собой директорию, в которой хранятся ресурсы. И в консоли в эту директорию можно только войти, и я не знаю как сказать ей выполнится.

B>>aka50 ведь сказал, выставляете правильные права на файл девайса и вперёд.

А>А это решение не подходит т.к. требует логина под root-ом (или пользователем который может поменять права), но тогда и программа под этим пользователем отработает без проблем...

в смысле под рутом? под рутом надо сделать 2 комнды и добавить юзера в группу termuser (ну и создать ее если еще нету такой)

chown root:termuser /dev/ttyp0
chmod g+rw /dev/ttyp0

после этого все пользователи из группы termuser могут делать че угодно с этим девайсом
Re[5]: Как не root'у пользоваться /dev/ttyS0
От: Alexey_Mel  
Дата: 18.06.04 16:02
Оценка: -1
Здравствуйте, aka50, Вы писали:

A>после этого все пользователи из группы termuser могут делать че угодно с этим девайсом


Все что в /dev вотчина root-a и кому попало права на эти файлы дать нельзя. А можно, я думаю, сделать следующее: сделать неболшую программу, которая будет открывать нужный файл в /dev, а в программе сделать AuthorizationExecuteWithPrivileges на ту программу с правами root-а и через получившуюся трубу общаться с девайсом.
Re[6]: Как не root'у пользоваться /dev/ttyS0
От: butcher Россия http://bu7cher.blogspot.com
Дата: 18.06.04 16:13
Оценка:
Здравствуйте, Alexey_Mel, Вы писали:

A_M>Все что в /dev вотчина root-a и кому попало права на эти файлы дать нельзя. А можно, я думаю, сделать следующее: сделать неболшую программу, которая будет открывать нужный файл в /dev, а в программе сделать AuthorizationExecuteWithPrivileges на ту программу с правами root-а и через получившуюся трубу общаться с девайсом.


Помоему, это очень сильно смахивает на SUID, или я не так понял?

Нет ничего невозможного..
Re[7]: Как не root'у пользоваться /dev/ttyS0
От: Alexey_Mel  
Дата: 18.06.04 16:26
Оценка:
Здравствуйте, butcher, Вы писали:


B>Помоему, это очень сильно смахивает на SUID, или я не так понял?


Ну, в общем, похоже. Только не из терминала а полностью программно.

Runs an executable tool with root privileges.
OSStatus AuthorizationExecuteWithPrivileges (
AuthorizationRef authorization,
const char *pathToTool,
AuthorizationFlags options,
const * char *arguments,
FILE **communicationsPipe
);
Re[8]: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 18.06.04 18:37
Оценка: +1
Здравствуйте, Alexey_Mel, Вы писали:

A_M>Здравствуйте, butcher, Вы писали:


A_M>Все что в /dev вотчина root-a и кому попало права на эти файлы дать нельзя. А можно, я думаю, сделать следующее: сделать неболшую программу, которая будет открывать нужный файл в /dev, а в программе сделать AuthorizationExecuteWithPrivileges на ту программу с правами root-а и через получившуюся трубу общаться с девайсом.


Народ, ну почитайте что-ли по юниксовым правам чтонить? !!! Какие права? Какие "кому попало"? Зачем же тогда их придумывали? Видно непонимание юниксовых прав... в корне.

Итого:
Если у файла есть владелец, например root, то только он может чето-то сделать с этим файлом (например поменять права, ну и еще кто имеет права записи в директорию могут его удалить, переименовать).
Если юзер не является владельцем, но является членом группы, имеющей доступ к файлу, то он сможет выполнять разрешенные действия с этим файлом (rwx).

Таким образом команда: chown root:termuser /dev/file делает так, что все кто входит в группу termuser имеют rw доступ к файлу (после комманды chmod g+rw). Но ни перименовать, ни удалить (директория принадлежить руту и права на ней dr-xr-xr-x) не могут.

B>>Помоему, это очень сильно смахивает на SUID, или я не так понял?


A_M>Ну, в общем, похоже. Только не из терминала а полностью программно.


A_M>Runs an executable tool with root privileges.


skip

A_M>);


блин... лисапед... ну есть же sudo! и зачем такой изврат. (особенно прикольно посмотреть как ты будешь ioctl() транслировать). Да и баги в программе возможны... и как будешь от них защищаться? Мда...

Далее... не понял что означает "Только не из терминала а полностью программно"? Это как?
Re[9]: Как не root'у пользоваться /dev/ttyS0
От: Alexey_Mel  
Дата: 20.06.04 16:24
Оценка:
Здравствуйте, aka50, Вы писали:

<skip>

A>блин... лисапед... ну есть же sudo! и зачем такой изврат. (особенно прикольно посмотреть как ты будешь ioctl() транслировать). Да и баги в программе возможны... и как будешь от них защищаться? Мда...


Ну дык может подскажешь как MacOS X application package под sudo запустить? А ioctl(...) в той же трубе может быть. Да и программы без багов писать можно и нужно.
Re[10]: Как не root'у пользоваться /dev/ttyS0
От: aka50 Россия  
Дата: 21.06.04 06:24
Оценка:
Здравствуйте, Alexey_Mel, Вы писали:

A_M>Здравствуйте, aka50, Вы писали:


A_M><skip>


A>>блин... лисапед... ну есть же sudo! и зачем такой изврат. (особенно прикольно посмотреть как ты будешь ioctl() транслировать). Да и баги в программе возможны... и как будешь от них защищаться? Мда...


A_M>Ну дык может подскажешь как MacOS X application package под sudo запустить? А ioctl(...) в той же трубе может быть. Да и программы без багов писать можно и нужно.


зачем тебе package под sudo пускать? Далее, я так подзреваю, всегда есть бинарный файл, который собсвенно делается exec(). Вот его и надо из под sudo запускать. А то что из под гуи это выглядит, как запуск "директории"... ну значить надо читать и разбираться... но правами это решается на раз.. Если не пнятно ... значит полохо объяснял .

A_M>А ioctl(...) в той же трубе может быть. Да и программы без багов писать можно и нужно.

ioctl()? Ну ioctl трубы будет... ioctl девайса не будет ...

Вывод: читам google и много думаем. Темы:
unix permissions
ioctl devices internals

потом можно о чем то говорить...
Re[11]: Как не root'у пользоваться /dev/ttyS0
От: Alexey_Mel  
Дата: 21.06.04 07:17
Оценка:
Здравствуйте, aka50, Вы писали:

<skip>

A>зачем тебе package под sudo пускать? Далее, я так подзреваю, всегда есть бинарный файл, который собсвенно делается exec(). Вот его и надо из под sudo запускать. А то что из под гуи это выглядит, как запуск "директории"... ну значить надо читать и разбираться... но правами это решается на раз.. Если не пнятно ... значит полохо объяснял .


блин лисапед...((с) ваше) тебеж писали "А это решение не подходит т.к. требует логина под root-ом (или пользователем который может поменять права), но тогда и программа под этим пользователем отработает без проблем..." Я понял, что задача такова что бы под рутом не грузиться вообще, тогда максимум возможен ввод пароля root-а, как для sudo. Но sudo не делать "Потому что приложение представляет собой директорию, в которой хранятся ресурсы. И в консоли в эту директорию можно только войти, и я не знаю как сказать ей выполнится".

Конечно можно перед запуском той проги попытаться под sudo выполнить скрипт настройки прав на нужные файлы... тоже решение.

A_M>>А ioctl(...) в той же трубе может быть. Да и программы без багов писать можно и нужно.

A>ioctl()? Ну ioctl трубы будет... ioctl девайса не будет ...
На счет трубы ты сам, кажется, не понял... В прогу-трубу предать интерфейс устройства (en0 допустим), а она уже откроет файл, забиндит интерфейс, настроит и т.д. Она же будет получать запросы и пихать в девайс, получать ответы и отсылать назад. Если не пнятно ... значит полохо объяснял ((с) ваше)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.