Стоит ли когда-либо делиться идентификатором пользователя?

Стоит ли когда-либо делиться идентификатором пользователя?

В Un*x, хорошая ли это идея иметь один идентификатор пользователя, под которым могут входить разные люди, когда что-то делают?

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

Сейчас я работаю в компании, где есть сервер, на который многие люди заходят с одним идентификатором пользователя и что-то делают. Я устанавливаю на него какое-то программное обеспечение. Это не совсем публичный сервер, и он доступен только через VPN, но тем не менее его используют многие люди, чтобы запускать тесты на пользовательском программном обеспечении и тому подобное. Это промежуточный сервер.

Я думаю, что использование одного пользователя, по крайней мере, скрывает аудиторский след, и это плохо. И это просто неэлегантно, потому что у людей нет собственных пространств на сервере.

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

?

решение1

Используйте отдельные UID. Наличие нескольких пользователей с одинаковым UID делает невозможным определение того, кто есть кто. Любые обратные поиски от UID к logname становятся ненадежными.

Одним из стандартных решений для ваших требований является установка и использование sudo. sudo позволяет вам предоставлять возможность запускать программы от имени другого пользователя любым пользователям или группам пользователей по вашему желанию. Файл sudoersобеспечивает значительную гибкость в том, кому разрешено что делать. Действия, выполняемые с использованием, sudoобычно регистрируются.

Некоторые дистрибутивы блокируют root и sudoпозволяют пользователям выполнять действия, которые необходимо выполнять от имени root.

Возможно и распространено разрешить пользователям выполнять suили использовать -iопцию стать другим пользователем. Это несколько сокращает аудиторский след, но в сочетании с учетом процессов вы можете получить очень хороший аудиторский след.

Помните, что любой, у кого есть root-доступ, обычно может обойти ваш контрольный журнал. Не давайте людям root-доступ, если вы им не доверяете.

решение2

Как вы сказали, для целей аудита это крайне неидеально. Имея несколько идентификаторов пользователей, вы позволяете себе видетьВОЗделаетсячтов чемвремя. Это не значит, что это надежно. Ничто на самом деле не мешает им сообщать друг другу свои учетные данные или другим пользователям красть учетные данные.

Если вы создаете собственное программное обеспечение, я считаю, что наибольший риск исходит от кого-то, кто задается вопросом, что rm -rfпроисходит в корневом каталоге, а также от других потенциально ужасных вещей (но вы же протестировали резервные копии...верно?)

решение3

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

Я думаю, что лучшим способом для вас было бы создать 2 или 3 группы и по одному идентификатору пользователя в каждой, чтобы вы могли, по крайней мере, управлять группами (что займет меньше времени и усилий, чем отдельный идентификатор пользователя для каждого пользователя), и иметь некоторые возможности по управлению разрешениями и аудиту.

Связанный контент