2010-08-18 2 views
1

Мне нужен лучший способ предотвратить выполнение обычными пользователями моего скрипта python. Я делаю что-то вроде этого:Предотвращение обычных пользователей для выполнения

if __name__ == '__main__': 
    if os.getenv('USER') == 'root': 
     addUser = addUser() 
    else: 
     print 'Only root can run that!' 

Это работает, но это довольно уродливо! Мой скрипт посвящен управлению пользователями в системе Debian.

+7

Что случилось с защитой на уровне ОС? 1.e., 'chown' root и' chmod', чтобы убедиться, что только root может его запустить? Что не так с функциями ОС? –

ответ

12

Код Python можно просмотреть и отредактировать, чтобы обойти любую защиту, которую вы вложили. Лучше всего ограничить доступ к исполняемому файлу пользователем в debian, поэтому только root может выполнять/просматривать/редактировать.

См chmod

5

Это более нормальным, чтобы ограничить доступ к ресурсам исполняемым нуждается для работы, чем для обеспечения разрешения на уровне исполняемого файла. Например, команда mount(8) обычно может запускаться любым пользователем, но файлы устройств, необходимые для фактического монтирования реальных томов, ограничены определенными пользователями или группами, а команда монтирования проверяет, возможно ли выполнение операции, прежде чем даже попытаться сделать системные вызовы для выполнения операций с устройством.

Это также работает с обычными файлами. Например, для многих менеджеров пакетов Linux требуется база данных установленных программ. Перед установкой чего-либо диспетчер пакетов проверяет разрешения на файл базы данных, чтобы узнать, может ли вызывающий пользователь писать на него, а также проверяет каталоги назначения, чтобы узнать, может ли пользователь их модифицировать. даже если менеджер пакетов не выполняет эти проверки, они не могут внести эти изменения при попытке, ядро ​​просто не позволяет программе выполнять действие, которое владелец не разрешает делать.

Смежные вопросы