Сайт | Скачать | Видео | Wiki

Автор Тема: loginroot  (Прочитано 5295 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
loginroot
« : 22 Сентябрь 2018, 21:15:55 »
 Переписал loginroot на си. Пример запуска из консоли:
Код
# ./loginroot leafpad /usr/bin/gparted 
(правка пускового скрипта, там была ошибка "от производителя")
В пусковой скрипт любой программы (не обязательно gparted, он под руку подвернулся) вписываем в начале:
Код
if [ "`id -u`" != 0 ]; then
  loginroot $0 $@
exit 0
fi
« Последнее редактирование: 23 Сентябрь 2018, 08:07:44 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #1 : 22 Сентябрь 2018, 22:04:13 »
Код
 Переписал loginroot на си
из под юзера запустить любую программулину с рутовыми правами?
без запроса паролей?
исходники на гитхабе?

1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #2 : 23 Сентябрь 2018, 06:31:27 »
без запроса паролей?
С запросом. Без запроса sudo есть.
исходники на гитхабе?
Нет, в архиве.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #3 : 23 Сентябрь 2018, 07:27:57 »
глянул, гуй для запроса рутового пароля, нормально
сходу не въехал, думал замена sudo, su  :o

пс
под убунтой su не нравится что запускается не в терминале:
Код
su: must be run from a terminal
соответственно 16я строчка
Код
if((system(cmd))!=0) { printf("%s\n","Неверный пароль"); exit(1); }
постоянно возвращает "неверный пароль"
« Последнее редактирование: 23 Сентябрь 2018, 08:39:53 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #4 : 23 Сентябрь 2018, 09:11:45 »
под убунтой
То "бубунта", там свои тараканы.
Для сравнения собрал gksu. Потянул зависимоти: libgksu, libgtop, libgnome-keyring, libgconf, всё в сборе 1964 Kb, и не работает
Код
Failed to run leafpad as user root
Failed to fork new process: Нет такого файла или каталога
"Ноев ковчег был построен любителем, а профессионалы создали Титаник"
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #5 : 23 Сентябрь 2018, 09:35:05 »
"Ноев ковчег был построен любителем, а профессионалы создали Титаник"
ну "профессионалы" Титаник нормально собрали имхо,
они ж не думали что им будут ТАранить айсберги :)
- -- -- --- -- -
под бубунтой su пароль только с tty принимает(соображения безопасности)
через stdin не передать, печалька
...
sudo попробовать прилепить может?(это мысли вслух :) )

« Последнее редактирование: 23 Сентябрь 2018, 09:36:47 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #6 : 23 Сентябрь 2018, 09:49:14 »
sudo попробовать прилепить
Попробуйте. Вместо "su -c" "sudo" строка 10:
Код
char cmd[48]="sudo \"";
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #7 : 23 Сентябрь 2018, 09:55:09 »
Попробуйте. Вместо "su -c" "sudo" строка 10:
уже ковыряю )
немного не то получается
еще раз потом в консоли пароль спрашивает
а нужно чтоб из entry передал
« Последнее редактирование: 23 Сентябрь 2018, 09:57:43 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #8 : 23 Сентябрь 2018, 09:58:25 »
советуют
Код
echo <password> | sudo su -c <command> <user>
или
Код
echo <password> | sudo -S -u <user> <command>

пс не робит ((
передает <password> в <command>, а не sudo
(под бубунтой)
« Последнее редактирование: 23 Сентябрь 2018, 11:03:37 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #9 : 23 Сентябрь 2018, 09:59:43 »
еще раз потом в консоли пароль спрашивает
У меня тоже, но это просто видимость, ничего вводить не надо
Код
# ./loginroot leafpad
Password:
#
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #10 : 23 Сентябрь 2018, 13:10:58 »
 Добавил sudo. После установки сделать "ln -s loginroot loginsudo". Если вызвать как loginroot, работает как "su -c", если как loginsudo, как "sudo"
« Последнее редактирование: 23 Сентябрь 2018, 17:52:56 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: loginroot
« Ответ #11 : 23 Сентябрь 2018, 16:26:26 »
30я строчка
Код
if (argc=='3') { strcat(cmd," "); strcat(cmd,argv[3]); }
если число аргументов три(argc=='3') добавим четвертый?? (argv[3])  - не могу въехать  ???
и почему argc сравнивается со строкой('3'), это же числовой тип, в Си вроде строго с этим
и компилятор не ругается..странно..
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #12 : 23 Сентябрь 2018, 17:08:18 »
не могу въехать
В мою дурость трудно въехать :D Это ошибка. Должно быть:
Код
if (argv[3]) { strcat(cmd," "); strcat(cmd,argv[3]); } 
Исправил, перезалил.
 :(  :'( тоска зелёная, в команду всякий мусор полез, пришлось переделывать
Код
	if (argc>=3) { strcat(cmd," "); strcat(cmd,argv[2]); }
if (argc==4) { strcat(cmd," "); strcat(cmd,argv[3]); }
Ещё раз перезалил.
« Последнее редактирование: 23 Сентябрь 2018, 17:56:06 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: loginroot
« Ответ #13 : 23 Сентябрь 2018, 17:41:38 »
loginroot на си
В чем смысл гуев на СИ? На yad тормозило? Или чтобы никто у нас поправить не мог... ;)
1. При запросе пароля нет ОК
2. При неправильном пароле - ошибки только в консоле. Раз си - где libnotify ?
3. Под gtk3 будет? Если поправить Makefile - не компилится

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: loginroot
« Ответ #14 : 23 Сентябрь 2018, 18:07:51 »
Вообще-то loginroot специально для Richy64. На PRA не нужен, там sudo есть.
На yad тормозило?
На yad у меня мозги тормозят. На gtkdialog ошибки лезли.
При запросе пароля нет ОК
И не надо, Enter в этом случае намного удобнее.
Раз си - где libnotify ?
Какой прыткий. Не всё сразу, надо растянуть удовольствие.
Под gtk3 будет?
Нет, там всё по другому и неизвестно как. Инструкции устарели, новых нет.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64