Возможно ли создать исходный сокет без привилегий root? Если нет, может ли скрипт самостоятельно повысить свои привилегии?Создание исходного сокета в Python без привилегий root
Я написал сценарий Python, используя сокеты:
#!/usr/bin/env python
import socket
rawSocket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0800))
print "Worked!"
Запуск его с привилегиями суперпользователя печатает Worked!
. Тем не менее, он дает ошибку при запуске с обычными привилегиями пользователя.
Я хочу выполнить свой сценарий как обычный пользователь, и он должен создать сырое сокет, не прося ничего. Является ли это возможным?
Большинство современных систем игнорируют биты suid/sgid на скриптах с любым интерпретатором. Perl непосредственно изобрел «suidperl», чтобы переопределить это в явном требовании. – Netch
Да, это правда. Процесс, выполняемый первым, является интерпретатором, поэтому любой SUID/CAP, установленный в файле, будет проигнорирован. – smeso
Я много раз пробовал Google, и каждый говорит то же самое, о чем вы, ребята, упоминаете. Ну, если нет решения моей проблемы, то ответ заключается в том, что нет никакого решения сделать, используя полностью python. –