Bug 6042 - pppd: меняет права на устройство
: pppd: меняет права на устройство
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/ppp)
: unstable
: all Linux
: P5 normal
Assigned To:
:
:
:
:
: 7079 12100 14167
  Show dependency tree
 
Reported: 2005-02-05 17:37 by
Modified: 2008-03-24 12:46 (History)


Attachments
вывод strace (18.11 KB, application/x-tbz)
2005-12-04 14:36, Dmitry Khanjin
no flags Details
don't remove group write permission (drop others' though) (529 bytes, patch)
2006-11-13 16:20, Michael Shigorin
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-02-05 17:37:34
Если я не ошибаюсь в адресовании баги, 
то pppd при установлении соединения меняет права 
на /dev/modem (устройство, по которому переговаривается) 
на 640, то есть группа (uucp) теряет право записывать в порт. 
Если это он виноват, надо его отучить менять права на устройства.
------- Comment #1 From 2005-03-28 22:39:12 -------
Не этот ли код с этим связан? Просто ничего другого в ppp про chmod не 
нашёл :) 

ppp-2.4.2-asp-cbcp-mps.patch: 
if (fstat(ttyfd, &statbuf) < 0 
+           || fchmod(ttyfd, statbuf.st_mode & ~(S_IWGRP | S_IWOTH)) < 0) { 
+           warn("Couldn't restrict write permissions to %s: %m", devnam); 
+       } else 
+           tty_mode = statbuf.st_mode; 
------- Comment #2 From 2005-07-13 10:47:23 -------
Женя, можешь проверить/починить?
------- Comment #3 From 2005-07-13 21:46:53 -------
Уговорили... Беру на выходные модем:)
------- Comment #4 From 2005-08-04 11:56:42 -------
И как ?
------- Comment #5 From 2005-08-04 12:32:13 -------
Нужно проверить еще на чистом Compact 3.0rcX
Ибо у меня все работает(с)
------- Comment #6 From 2005-10-11 10:26:55 -------
Дистрибутив: Master2.4
Таже ситуация!
Кто-то меняет права на модем.
Обычно на 640, а недавно на 600.
Модем пользуют: pppd(in) и qico(in).
Оба висят на mgetty.
------- Comment #7 From 2005-10-13 11:50:48 -------
Имею: ppp-2.4.2-alt6
Права меняет с завидной повторяемостью.

На буке после kppp сеанса права меняются с 660 на 640. В следствии чего qico
звонить не может.

На сервере, после входящего ppp сеанса права меняются с 660 на 600. В следствии
чего qico виснит при первом же Fidonet сеансе при попытке закрыть устройство.
После чего порт вообще блокируется.
------- Comment #8 From 2005-10-13 15:04:55 -------
2ldv: вам не интересен этот пакет? :) 
2mike: сделай что-нибудь :) 
 
------- Comment #9 From 2005-10-13 18:54:29 -------
2lav: меня устраивает работа этого пакета в том смысле, что я пока не готов
инвестировать в его доработку. :)
------- Comment #10 From 2005-10-14 18:09:09 -------
Возможно это из-за отсутствия записи в /etc/security/console.perms.
Сегодня на серваке добавил, вечером проверю на буке и сервере.

Как временное решение в /etc/ppp/ip-down.local добавлял команду востановления
прав. Ночь прожил без приключений.
Хотя заметил одну вещь. После того как я подключился через ppp на сервак и
глянул права, то увидел 0600. Выключился, подключился из вне и увидел 0660. Т.е
сбросило сразу после подключения, а после отключения востановило из
ip-down.local. :)
------- Comment #11 From 2005-10-18 13:10:13 -------
На клиенте пользующем KPP прописывание прав в /etc/security/console.perms не
помогает. Устойчиво меняет на 0640.
На сервере, уже три дня как не слетали права.
------- Comment #12 From 2005-10-25 10:58:01 -------
(In reply to comment #11)
> На клиенте пользующем KPP прописывание прав в /etc/security/console.perms не
> помогает. Устойчиво меняет на 0640.
> На сервере, уже три дня как не слетали права.
Вот они и слетели.
Складывается впечатление что ppp в отдельных случаях забывает или уже не в
состоянии востановить права!
Надо что-то делать!

------- Comment #13 From 2005-11-20 21:35:38 -------
(In reply to comment #12)
> (In reply to comment #11)
> > На клиенте пользующем KPP прописывание прав в /etc/security/console.perms не
> > помогает. Устойчиво меняет на 0640.
> > На сервере, уже три дня как не слетали права.
> Вот они и слетели.
Похоже, на сервере они слетали из-за mgetty. Обновил Mgetty из Сизифа и уже пол
месяца права не слетали.

------- Comment #14 From 2005-12-04 14:34:49 -------
Я вот нынче обнаружил, что права на порт меняются сразу после старта pppd. 
Он у меня запускается на роутере, доступ к которому только по ssh, поэтому 
пляски вокруг console.perms не помогли. 
А обнаружил это просто: 
sudo chmod 660 /dev/ttyPCT (модем ZyXel, чип PCtel789) 
Запуск скрипта дозвона и сразу 
ls -l /dev/ttyPCT  выдает 
crw-r-----  1 root uucp 62, 79 Дек  4 12:50 /dev/ttyPCT 

Натравил на это дело strace, вывод прилагаю. Там есть еще маленькие comments. 
Не умея пока разобраться, кладу все. 

Система- ALM2.4+updates+несколько пересобранных в хашере пакетов, среди них 
ppp-2.4.2-alt6. 
------- Comment #15 From 2005-12-04 14:36:08 -------
Created an attachment (id=1273) [details]
вывод strace
------- Comment #16 From 2005-12-04 22:08:55 -------
Вот комментарий к выводу strace: 
Дал команду 
sudo strace -o ~/pppd.trace -ff /мой/скрипт/дозвона 
 
Это кусочек вывода ps -A _во время выполнения_ strace: 
 9629 pts/0    00:00:04 strace 
 9633 ?        00:00:00 pppd 
 
Нашел такую штуку: 
[diman@beer diman]$ grep chmod pppd.trace.9633 
fchmod(7, 020640)                       = 0 
 
Вот предшествующий кусок: 
open("/var/lock/serial/LCK..ttyPCT", O_RDWR|O_CREAT|O_EXCL, 0644) = 7 
getpid()                                = 9633 
write(7, "      9633\n", 11)            = 11 
close(7)                                = 0 
open("/dev/ttyPCT", O_RDWR|O_NONBLOCK)  = 7 
fcntl64(7, F_GETFL)                     = 0x802 (flags O_RDWR|O_NONBLOCK) 
fcntl64(7, F_SETFL, O_RDWR)             = 0 
fstat64(7, {st_mode=S_IFCHR|0660, st_rdev=makedev(62, 79), ...}) = 0 
fchmod(7, 020640)                       = 0 
 
Что, pppd после открытия порта меняет права на него? Или я не то подумал? 
 
------- Comment #17 From 2006-09-17 04:31:45 -------
Я не понял, pppd не восстанавливает права на устройство по окончании работы?

P.S. Пакет ppp давно ищет хорошие мантейнерские руки.
------- Comment #18 From 2006-09-17 11:54:26 -------
Не восстанавливает. Хотя было бы верным не менять их вообще. Тут как с fstab 
почти :)
------- Comment #19 From 2006-11-13 16:04:56 -------
Ну вот, припекло.  Придётся заняться.
------- Comment #20 From 2006-11-13 16:20:03 -------
Created an attachment (id=1680) [details]
don't remove group write permission (drop others' though)

так покатит?  мне (на эту тему) достаточно

btw думаю ещё control прикрутить.
------- Comment #21 From 2006-11-13 20:24:49 -------
(In reply to comment #20)
> 
> так покатит?  мне (на эту тему) достаточно
> 

По-моему тоже, достаточно. Полет нормальный (на М2.4).

> btw думаю ещё control прикрутить.
------- Comment #22 From 2007-02-16 12:03:59 -------
Дим, приложи патчик pls или добавь в заливателей lakostis mike mithraen (тех,
кто ковырял).

ppp     ldv
------- Comment #23 From 2007-03-25 22:43:20 -------
fixed in 2.4.4
------- Comment #24 From 2007-09-25 18:07:39 -------
Увы, на 2.4.4-alt7 опять воспроизводится.
------- Comment #25 From 2007-09-27 20:27:53 -------
(In reply to comment #24)
> Увы, на 2.4.4-alt7 опять воспроизводится.
Виновник найден, это ppp-2.4.4-cbcp-alt.patch, который в т.ч. откатывает
ppp-2.4.2-alt-leave-ttyperms-alone.patch:

-                  || fchmod(ttyfd, statbuf.st_mode & ~S_IWOTH) < 0) {
+                  || fchmod(ttyfd, statbuf.st_mode & ~(S_IWGRP | S_IWOTH)) < 0) {

Придётся сделать ещё один патч к этому патчу...
------- Comment #26 From 2007-09-27 21:56:58 -------
Объехато здесь (mike/fix-perms-6042):
http://git.altlinux.org/people/mike/packages/?p=ppp.git;a=commitdiff;h=06b8deb7a0e5efba8f14a27944986c081b279952

2 mithraen: возьмёшь или выдашь? :)
------- Comment #27 From 2007-09-29 16:41:30 -------
Спасибо!
Отправил в incoming/