Здравствуйте. В общем, подумал я о том, что, вместо того, чтобы обслуживать каждую машину по-отдельности, можно всё «серьёзное» оборудование сбить в один мощный сервер, а отдельным пользователям раздать какие-то дешёвки, на вроде Raspberry Pi, для создания тонких клиентов. Идея неплохая, можно сказать, проверенная годами, меньше возни по-поводу каждой отдельной машины, абсолютная взаимозаменяемость клиентских машин и т.д.. Один раз настроил, одну машину обслуживаешь – кайф (пять минут на установить PXE-загрузку на мелкашах + несколько доп. пунктов даже не считаются). Но есть одна маленькая проблема – проблема разграничения доступа. Во-первых, кто-либо мажет, например, запустить майнер или заразить систему вирусом; во-вторых, раз всем так просто пересесть за другой компьютер и войти в свой аккаунт, то почему кто-то другой не может сесть за случайный компьютер и взломать акк директора, например (мы же все знаем, насколько надёжными являются пароли четыре единицы пользователей); а в-третьих, как позволить пользователям устанавливать желаемые пакеты? Ну, с первым проще всего (по крайней мере, в теории): создать для каждого пользователя cgroup с ограничениями по ресурсам и запускать сеансы и прочие процессы из под этих cgroup. Со вторым сложнее, моя идея – добавить на мелкаши по адаптеру для смарт-карт, и настроить систему следующим образом: когда вставляется карта доступа происходит запрос на подписание рандомного токена; проводится проверка на то, чьим ключом был подписан токен; если подписатель опознан, запрашивается пароль (да, дополнительно) (и да, логина не нужно); после авторизации будет проводится регулярные запросы на подписание новых и новых токенов; если токен не был подписан или был подписан другой парой ключей, немедленно производится выход из сеанса пользователя и снижение квоты вычислительных ресурсов cgroup пользователя до нуля. И третье: вместо того, чтобы всем делать общий $PATH
, всем сделать по отдельной папке ~/.local/bin
и туда хардлинкить всё, что пользователь захочет «установить» себе (разумеется, во имя безопасности, папку создадим под root и без права записи пользователем. Если он захочет установить что-то, он использует API и подключится к сервису (программы разработаем отдельно, возможно замаскируем под apt какой-нибудь или другой известный менеджер пакетов)).
Как вы считаете, имеет ли такая идея право на жизнь? Что вы вообще думаете об этом?