Найти - Пользователи
Полная версия: Настройка сети через Питон по средствам ifconfig
Начало » Network » Настройка сети через Питон по средствам ifconfig
1 2 3
CryptSpirit
дело в том что это изначально задумывался как апплет (то есть редактировать на скорую руку так сказать) ну а где вы видели апплеты которые пароль запрашивают при старте. Или есть способ при редактировании запросить а апплет пушай грузиться с ДЕ. Можно такое замутить. Если да то как?
Alex2ndr
o7412369815963
потому что можно все четко настроить, кому что можно, кому нельзя. разработчики все продумали.
и нет аргументов за то что он не безопасен.
А как вы думаете - почему разработчики DE так не сделали? Думаю что не просто так. Я бы, как админ, такое пользователям разрешать не стал.

CryptSpirit
дело в том что это изначально задумывался как апплет (то есть редактировать на скорую руку так сказать) ну а где вы видели апплеты которые пароль запрашивают при старте. Или есть способ при редактировании запросить а апплет пушай грузиться с ДЕ. Можно такое замутить. Если да то как?
Можно сделать в лоб. Разбить апплет на два физических приложения:
1. Гуй и все что с ним связано.
2. Утилита, которая вносит изменения с рутовыми правами.
И потом вызывать из первой вторую например так так -
os.system(“gksudo part2.py”)
Ну или через subprocess.
CryptSpirit
Спасибо. решение мне понравилось
o7412369815963
Alex2ndr
А как вы думаете - почему разработчики DE так не сделали? Думаю что не просто так.
разработчики как раз не из под рута аплеты запускают
init(1)-+-clock-applet(1906,user)
|-dbus-daemon(1768,user)
|-dbus-launch(1340,gdm)
|-dbus-launch(1767,user)
|-dropbox(1812,user)-+-{dropbox}(1880)
|-evolution-data-(2089,user)-+-{evolution-data}(2090)
|-evolution-excha(2092,user)---{evolution-exch}(2094)
|-gconfd-2(1771,user)
|-gnome-keyring-d(1712,user)-+-{gnome-keyring-}(1713)
|-gnome-keyring-d(1938,user)
|-gnome-screensav(1975,user)
|-gnome-settings-(1776,user)
|-gnome-terminal(2054,user)-+-bash(2497)
|-gvfs-afc-volume(1868,user)---{gvfs-afc-volum}(1871)
|-gvfs-fuse-daemo(1783,user)-+-{gvfs-fuse-daem}(1784)
|-gvfs-gdu-volume(1837,user)
|-gvfs-gphoto2-vo(1866,user)
|-gvfsd(1778,user)
|-gvfsd-burn(1934,user)
|-gvfsd-metadata(1931,user)
|-gvfsd-trash(1820,user)
|-indicator-apple(1904,user)
|-indicator-apple(1910,user)
|-indicator-appli(1948,user)
|-indicator-me-se(1936,user)
|-indicator-messa(1946,user)
|-indicator-sessi(1932,user)
|-indicator-sound(1944,user)
|-netspeed_applet(1909,user)
|-notification-ar(1908,user)
Alex2ndr
Я бы, как админ, такое пользователям разрешать не стал.
Как такое можно было подумать. Разрешение нужно давать программе, а не пользователю.
Alex2ndr
o7412369815963
разработчики как раз не из под рута аплеты запускают
Все верно. Разработчики используют примерно такой же прием, какой я описал постом выше.

o7412369815963
Как такое можно было подумать. Разрешение нужно давать программе, а не пользователю.
Ээээ…..???? Мы говорим о Linux? Как можно дать программе разрешение делать что-то? Приведите пример. Насколько я понимаю вся система прав в unix подобных системах строится на пользователях.
И к тому же с точки зрения безопасности давать разрашение программе глупо - получается что даже пользователь nobody может выполнить что-то с правами рута.
Ed
Ээээ…..???? Мы говорим о Linux? Как можно дать программе разрешение делать что-то? Приведите пример.
Можно мне ?
$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | ./python
Wow! I am root
$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | /usr/bin/python
Wow! I am ed
sypper-pit
Ed
Браво красивый каламбур :)

Код:

$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | ./python
Wow! I am root
$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | /usr/bin/python
Wow! I am ed
©
Alex2ndr
Ed
Ээээ…..???? Мы говорим о Linux? Как можно дать программе разрешение делать что-то? Приведите пример.
Можно мне ?
$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | ./python
Wow! I am root
$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | /usr/bin/python
Wow! I am ed
И какое это имеет отношение к моему вопросу? Кроме того я ваш пример не могу воспроизвести - у меня нет ./python . Я даже не понимаю как это воспроизвести. Разве что первый от рута запустить.

Да - я знаю, что программа получает те права, которые есть у пользователя, запустившего ее. Кроме случаев с битом suid, но питонщикам это не интересно т к он ставится только на бинарники.
Но как может именно конкретная программа получать права выше пользовательских? Т е запускаю от пользователя и могу редактировать рутовые файлы… как? Имхо для питона - невозможно.
Ed
Alex2ndr
Как можно дать программе разрешение делать что-то? Приведите пример.
Alex2ndr
И какое это имеет отношение к моему вопросу?
Самое прямое. Я дал программе ./python разрешение делать что угодно и привел пример. Вы вроде про это спрашивали?
Если вы имели в виду что-то другое, то спрашивайте про что-то другое :)
Alex2ndr
Разобрался в том, что вы сделали. Вот полная версия фокуса:
alex@kubu-book:~$ sudo cp /usr/bin/python2.6 ./python
alex@kubu-book:~$ ll ./python
-rwxr-xr-x 1 root root 2,2M 2010-08-01 23:26 ./python
alex@kubu-book:~$ sudo chmod u+s ./python
alex@kubu-book:~$ ll ./python
-rwsr-xr-x 1 root root 2,2M 2010-08-01 23:26 ./python
alex@kubu-book:~$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | ./python
Wow! I am root
alex@kubu-book:~$ echo 'import os,pwd;print "Wow! I am %s"%pwd.getpwuid(os.geteuid())[0]' | python
Wow! I am alex
alex@kubu-book:~$
Только этот вариант имхо лучше НИКОГДА не применять. Фокус хороший - не спорю. А с конкретным питоновским скриптом такое проделать слабо? :) Т е не с самим питоном, а дать такие права конкретной программе на питоне.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB