Я хочу запретить другим пользователям, включая root, использовать приложение, которое я установил.
Правильная установка владельца и группы владельцев файла, а также его chmod
не позволит нежелательным пользователям, кроме root
выполнить файл. Обратите внимание, что если другие пользователи могут прочитать файл, но не могут выполнить его, они все равно могут скопировать его и изменить бит x
в своей собственной копии, поэтому вы должны отключить разрешение r
разрешением x
если хотите предотвратить выполнение.
Вы не можете предотвратить выполнение root
с помощью вышеуказанного механизма, так как root
может chmod
любого файла, а также может изменить владельца и группу-владельца на что угодно. Единственный способ полностью запретить root
выполнять файл - это вообще не находиться в системе.
Вы можете приблизиться к этому, сохранив исполняемый файл в зашифрованном томе и разблокировав том непосредственно перед тем, как вызывать исполняемый файл, и сразу после этого закрывайте том. Однако root
процесс может считывать исполняемый образ любого другого процесса через /proc
, поэтому теоретически для другого root
процесса теоретически возможно скопировать исполняемый файл из того, что находится в памяти. Я не уверен, возможно ли изменить это поведение Linux с помощью опции компиляции ядра, если это так, то это может быть что-то, чтобы рассмотреть.
Если у вас есть ненадежные люди, входящие в систему как root
, или ненадежные процессы, выполняющиеся как root
, вам действительно нужно решить эти проблемы. Вы можете заняться виртуализацией и отключить ненадежный раздел вашей системы на собственной виртуальной машине.