Можно ли запретить пользователям запускать определенные программы на своих компьютерах с Linux? Есть ли метод белого списка? Черный список?
Простым решением может быть простое удаление разрешений на выполнение для системных двоичных файлов. Если вы хотите запретить пользователям компилировать или запускать что-то из каталогов, у которых есть доступ на запись, вы можете создать отдельный раздел и смонтировать эти файловые системы с опцией noexec.
man mount (опция noexec)
Не разрешайте прямое выполнение любых двоичных файлов в смонтированной файловой системе. (До недавнего времени двоичные файлы в любом случае можно было запускать с помощью команды типа /lib/ld*.so / mnt / binary. Начиная с Linux 2.4.25 / 2.6.0 этот трюк не работает.)
Я считаю, что еще один способ добиться этого вам нужно будет использовать что-то вроде AppArmor или SELinux.
Ответ на этот вопрос зависит от того, хотите ли вы использовать черный список или белый список.
Белый список на самом деле довольно прост. Используйте тот же подход, что и в Ubuntu и многих других дистрибутивах. Создайте группу для конкретной программы или группы программ, установите для нее группу исполняемого файла, а затем добавьте пользователей в эту группу, если вы хотите, чтобы они имели к ней доступ. Вот как осуществляется доступ к sudo, принтерам и множеству других вещей в Ubuntu (и других дистрибутивах).
Черный список на самом деле сложнее, но это не так уж плохо, imho. Черный список я считаю по своей сути менее безопасным. На самом деле я не могу придумать способ сделать это, чтобы не обрабатывать, это похоже на псевдо-белый список, то есть каждый является членом соответствующей группы, и вы просто удаляете тех, кто вам не нужен.
Используйте группы и запретите выполнение программ. Или вы ищете большего?
Наверное, можно что-нибудь взломать вместе со стандартными разрешениями и группами * nix.
Однако, если вам нужно что-то большее, вы, вероятно, захотите Google POSIX ACL. Большинство (все?) Основных файловых систем Linux поддерживают их, и они предоставляют вам дополнительные возможности контроля и детализации.
Если вы хотите предоставить людям ограниченный доступ к оболочке, взгляните на rbash. Он предлагает пользователю различные ограничения. Также взгляните на файл limits.conf PAM (/etc/securit/limits.conf в Ubuntu). Третий вариант - создание среды jail / chroot для ваших пользователей, где вы точно решаете, к каким двоичным файлам и библиотекам они имеют доступ.
Другие также указывали на использование разрешений, noexec и ACL для этого. На самом деле, какое решение лучше всего зависит от ваших потребностей.
Возможно нет. Это зависит от того, что означает «определенные программы». Если у пользователя есть полезная интерактивная оболочка, он может установить практически любое программное обеспечение, которое пожелает. Но если вы не хотите, чтобы они могли запускать определенную копию программного обеспечения, которое вы уже установили, обычные разрешения для файлов будут работать нормально. Например, создайте группу «xmmsblacklist», chmod 705 / usr / bin / xmms, chgrp xmmsblacklist / usr / bin / xmms и добавьте пользователей в эту группу.