Назад | Перейти на главную страницу

Запретить пользователю запускать определенные команды

Кто-нибудь знает способ запретить пользователю запускать определенные команды? Например, я хотел бы запретить пользователям копировать данные на сервер и с сервера без прохождения нашего репозитория SVN. (экспорт SVN против scp)

Любые идеи?

Вы не можете (надежно) запретить пользователям запускать определенный список команд.
Они как-нибудь найдут способ обойти ваши ограничения. (Не пытайтесь понять, как - вы никогда не подумаете обо всех возможностях, потому что это бесконечное множество.)

Вы жестяная банка ограничить пользователей только уметь запускать определенный список команд. (Вызвать bash с -r флаг (или жестко привяжите его к имени rbash) и обратитесь к разделу «ОГРАНИЧЕННАЯ ОБОЛОЧКА» страница руководства bash.)
Это неприемлемо для реального использования - это все равно, что просить пользователей печатать в боксерских перчатках.
Если их учетные записи настолько повреждены, вы также можете заставить их использовать удаленно запускаемые инструменты управления пакетами, а не предоставлять им доступ к оболочке.

Другой (более жизнеспособный) вариант - сделать область развертывания доступной для записи только с определенным UID и заставить пользователей использовать sudo для запуска сценария развертывания, который вносит в него изменения.

В Linux (и в Mac OS, являющейся unix-подобной системой) вы можете использовать acl, который расширяет стандартные разрешения на основе «Пользователь-владелец», «Пользователь группы-владельца» и «Другие». Таким образом, вы можете создать дополнительную группу под названием, например, «тестеры», которая отключила бит выполнения для двоичного файла, который вы хотите исключить.

http://www.techrepublic.com/blog/mac/introduction-to-os-x-access-control-lists-acls/1048

Конечно, это не мешает пользователям устанавливать некоторые программы в свой домашний каталог.

Вот Можно ли предотвратить SCP, сохранив при этом доступ по SSH? у вас есть обсуждение, которое тоже может оказаться полезным

HTH