Почему я могу создать пользователей с тем же UID?
Мое понимание UID — это уникальное положительное целое число, назначенное Unix-подобной операционной системой для каждого пользователя. Каждый пользователь идентифицируется системой по его UID, а имена пользователей обычно используются только как интерфейс для людей.
Как два пользователя могут иметь одинаковый UID, это не конфликт для моей системы и пакетов?
Я добавил двух пользователей с одинаковыми идентификаторами UID и GID: test12 и test13
Я добавил пользователей useradd -ou 1005 -g1000 username.
Я смутился, что является ли это целью и может ли он влиять на разрешения и журналы пользователей и т. д. Итак, если пользователь добавлен с uid=0 и gid=0, будут иметь привилегии, такие как учетная запись root?
8 ответов
На самом деле есть веские причины. Например, я работал в лаборатории, где у каждого из нас был наш собственный компьютер, но наш $HOME был на общем диске, экспортированном сервером. Итак, мой $HOME был
Поскольку папка /users на самом деле не была на моей локальной машине, а экспортирована через NFS, для любого анализа, который был тяжелым для ввода-вывода, я использовал бы данные хранящиеся на локальных жестких дисках, чтобы не обременять сеть лаборатории. Для этого у меня и всех остальных было два пользователя: один из них был общесистемным и один был локальным для рассматриваемой машины. Домашний локальный пользователь был
Однако мне нужно было иметь полный доступ к моим файлам, был ли я зарегистрирован как terdon или как localuser и способ, которым был реализован наш системный администратор, что дает localuser и terdon тот же UID. Таким образом, я мог свободно манипулировать локальными файлами, независимо от того, какой пользователь я в настоящий момент зарегистрировал.
Два пользователя могут иметь одинаковый UID, потому что это просто номер в текстовом файле, поэтому вы можете установить его на все, что хотите, включая значение, которое уже используется. Как вы видели, это не очень хорошая идея.
Unix systems & amp; Linux вообще ничего не делает, чтобы запретить дубликаты в файле /etc/passwd. Цель этого файла — связать UID с физическим именем, которое может отображаться с помощью инструментов командной строки, таких как ls, когда пользователь выводит файлы.
Другая цель этого файл должен указывать, какую оболочку пользователь получит при входе в систему.
Общим вектором атаки в системах типа Unix является добавление таких строк в файл /etc/passwd системы: [!d2 ]
Роль файла /etc/passwd НЕ предназначена исключительно для отслеживания учетных записей пользователей. Роль отслеживания имени пользователя и паролей лежит на файле /etc/shadow. Файлы, такие как /etc/passwd и /etc/group, действительно предназначены для предоставления читаемого человеком имени, когда ваша система перечисляет файлы с дисков.
Помните, что ваши файлы записаны на диск с использованием UID / GID. имена.
Обратите внимание на Uid: и Gid:, цифры — это то, что на самом деле записано на диск!
На самом деле довольно распространено иметь двух пользователей с одинаковым идентификатором. На FreeBSD обычно есть два пользователя с UID 0: root и toor. Root использует встроенную / bin / sh оболочку, а toor использует другую оболочку, обычно bash.
В Linux все пользователи и группы на самом деле являются просто цифрами. Вот что выводил вывод команды id.
Файл /etc/passwd сопоставляет имена пользователей с идентификаторами пользователей (номерами) и в примере, который вы предоставили, вы просто сопоставили два имени пользователя к одному ID пользователя.
Фактически вы создали одного пользователя, test12, ID 1005, у которого также есть второе имя пользователя test13. Однако система отобразит UID 1005 на первое имя пользователя, которое будет найдено, что будет test12
Linux «позволяет» вы это делаете, потому что нет системы, которая бы помешала вам сделать это. /etc/passwd — это просто текстовый файл, имена пользователей сопоставляются с UID, найденным для их записи в этом файле, UID сопоставляются с первым именем пользователя, найденным в этом файле.
Но то, что вы создали, является запутанная ситуация для других администраторов systams; избегайте этого, изменив UID test13
Причина, по которой это разрешено сегодня, заключается просто в том, что система не мешает ей.
Если это изменится, тогда она сломает те системы, в которых администраторы использовали эту функцию ( см. пример Тердона). Поэтому он никогда не менялся, и я не думаю, что это когда-либо будет.
Первоначально были только файлы passwd и group, и они служили своей цели. не было никакой команды adduser, никакой addgroup, файлы были отредактированы root с помощью vi или ed.
Было несколько причуд!
Чтобы запомнить следующий идентификатор пользователя, обычно для админов было обычным пользователем в качестве последней строки, которая имела имя пользователя ! (поскольку ! было недопустимым именем пользователя), и эта запись использовалась для хранения следующего идентификатора пользователя. Грубо, признаюсь, но это сработало! Итак, почему бы не разогнать кишку, что усложнило ее, сродни быстрому развитию.
Были известные недостатки. Главное, что он должен быть читаемым в мире, так что утилиты вроде ls могли бы отображать user-id => name.
Некоторые системы Unix начали вводить несколько сценариев оболочки adduser addgroup, часто они игнорировались, потому что они были в состоянии игнорировать все зашифрованные пароли всех пользователей и идентификаторов в системе.
были несогласованными между Unix, поэтому большинство людей просто продолжалось с ручным редактированием.
Прошло немало лет, прежде чем был изобретен файл паролей shadow, это обеспечило немного большую безопасность, скрывая зашифрованные пароли. Опять же, была добавлена достаточно сложная сложность, но она все еще была довольно грубой и простой. Были введены утилиты useradd и groupadd, в которых обновлены shadow и shadow-. Начнем с того, что часто это были простые оболочки оболочки оболочки, связанные с запатентованными утилитами adduser .
Сети компьютеров росли, люди работали по несколько за раз, чтобы получить работу, поэтому администратор файлов passwd/group стал кошмаром, особенно с NFS, поэтому в «Желтые страницы» также известны как NIS, чтобы облегчить бремя.
Уже стало очевидным, что нужно немного более гибкое, и PAM был изобретен. Поэтому, если вы были действительно сложны и хотели иметь централизованную, безопасную, уникальную систему идентификации всех колоколов и свистов, вы могли бы обратиться к центральному серверу для аутентификации, возможно, к серверу Radius, LDAP-серверу или Active Directory. [!d12 ]
Мир вырос. Но файлы passwd / group / shadow по-прежнему оставались для нас меньшими пользователями / разработчиками / лабораториями. Мы все еще не требовали всех колоколов и свистов. Я предполагаю, что философия изменилась к настоящему времени: «Если вы собираетесь сделать это лучше, вы не будете использовать ее вообще», так что не беспокойтесь об этом.
Вот почему я не думаю, что простой файл passwd будет когда-либо изменяться. Там больше нет смысла, и это просто отлично подходит для тех 30 фунтов малины Pi с 2, может быть, 3 пользовательской температурой мониторинга и твиттер-фидами. Хорошо, вам просто нужно быть немного осторожным с вашим идентификатором пользователя, если вы хотите, чтобы они были уникальными, и нет ничего, что помешало бы энтузиасту обернуть «Если вы собираетесь сделать это лучше, вы не будете использовать его в all « в скрипте, который сначала выбирает следующий уникальный идентификатор из базы данных (файла), чтобы установить уникальный идентификатор, если это то, что вы хотите. Это открытый источник.
Почему я могу создавать пользователей с одинаковым UID?
Я понимаю, что UID — это уникальное положительное целое число, назначаемое Unix-подобной операционной системой каждому пользователю. Каждый пользователь идентифицируется в системе по его UID, а имена пользователей обычно используются только как интерфейс для людей.
Как два пользователя могут иметь одинаковый UID, не является ли это конфликтом для моей системы и пакетов?
Я добавил двух пользователей с одинаковыми UID и GID: test12 а также test13
Выход из /etc/passwd :
Я добавил пользователей по useradd -ou 1005 -g1000 username.
Я запутался, какова цель этого, и может ли это повлиять на разрешения, журналы пользователей и т. Д. Итак, теперь, если пользователь добавляется с uid=0 а также gid=0 будет ли иметь привилегии, такие как учетная запись root?
10 ответов
Ответ здесь заключается в том, что Linux не защищает вас от вас самих.
Если вы действительно хотите su root и перейдите в файлы /etc и дайте всем пользователям один и тот же UID. Это просто текстовый файл.
Но вы действительно не должны, и это будет иметь непредвиденные последствия.
На самом деле есть веские причины для этого. Например, я работал в лаборатории, где у каждого был свой компьютер, но наш $HOME находился в общем диске, экспортированном сервером. Так что мой $HOME было
Поскольку /users На самом деле папка находилась не на моем локальном компьютере, но экспортировалась через NFS, для любого анализа, который был слишком тяжел для операций ввода-вывода, я бы использовал данные, хранящиеся на локальных жестких дисках, чтобы не перегружать сеть лаборатории. Для этого у меня и всех остальных было два пользователя: один для всей системы и один для данной машины. Дом местного пользователя был
Однако мне нужно было иметь полный доступ к моим файлам, независимо от того, вошел ли я в систему как terdon или как localuser и то, как наш сисадмин реализовал это, дав localuser а также terdon тот же UID. Таким образом, я мог свободно манипулировать своими локальными файлами независимо от того, с каким пользователем я в данный момент вошел.
Два пользователя могут иметь один и тот же UID, потому что это просто число в текстовом файле, поэтому вы можете установить для него все, что захотите, включая уже использованное значение. Как вы уже видели, делать это не очень хорошая идея.
На самом деле довольно часто иметь двух пользователей с одинаковым идентификатором. Во FreeBSD обычно есть два пользователя с UID 0: root и toor. Root использует встроенную оболочку /bin/sh, а toor использует другую оболочку, обычно bash.
Системы Unix и Linux, как правило, ничего не делают, чтобы запретить дубликаты в /etc/passwd файл. Цель этого файла — связать UID с физическим именем, которое может отображаться такими инструментами командной строки, как ls когда пользователь перечисляет файлы.
Другое предназначение этого файла — указать, какую оболочку получит пользователь при входе в систему.
Распространенным вектором атаки в системах типа Unix является добавление таких строк в систему /etc/passwd файл:
Роль /etc/passwd Файл НЕ предназначен исключительно для отслеживания учетных записей пользователей. Роль отслеживания имен пользователей и паролей лежит на /etc/shadow файл. Файлы, такие как /etc/passwd а также /etc/group на самом деле предназначены для предоставления удобочитаемого имени, когда ваша система выводит список файлов с дисков.
Помните, что ваши файлы записываются на диск с использованием UID/GID, а не реальных имен.
Обратите внимание на Uid: а также Gid: номера — это то, что на самом деле записано на диск!
В Linux все пользователи и группы на самом деле просто числа. Вот что на выходе id Команда, которую вы опубликовали, показывает.
/etc/passwd файл сопоставляет имена пользователей с идентификаторами пользователей (числами), и в приведенном вами примере вы просто сопоставили два имени пользователя с одним и тем же идентификатором пользователя.
По сути, вы создали одного пользователя, test12 , ID 1005, который также имеет второе имя пользователя test13 , Однако система отобразит UID 1005 на первое найденное имя пользователя, которое будет test12
Linux «позволяет» вам делать это, потому что нет системы, которая бы помешала вам сделать это. /etc/passwd это просто текстовый файл, имена пользователей сопоставляются с UID, найденным для их записи в этом файле, UID сопоставляются с первым именем пользователя, найденным в этом файле.
Но то, что вы создали, — это запутанная ситуация для других администраторов систем; избежать этого, изменив UID test13
Причина, по которой это разрешено сегодня, заключается просто в том, что система не препятствует этому.
Если бы это изменилось, то это сломало бы те системы, где администраторы использовали эту функцию (см. Пример Terdon). Так что это никогда не менялось, и я не думаю, что это когда-либо изменится.
Первоначально были только файлы passwd и group, и они служили своей цели. не было команды adduser, addgroup, файлы редактировались пользователем root с помощью vi или ed.
Было несколько причуд!
Чтобы запомнить следующий идентификатор пользователя для использования, для администраторов было свойственно иметь специального пользователя в качестве последней строки, которая имела имя пользователя ! (так как ! было неверное имя пользователя), и эта запись использовалась для хранения следующего идентификатора пользователя. Грубый, я признаю, но это сработало! Так зачем ломать кишку, делая ее более сложной, сродни гибкому развитию сегодня.
Были известные недостатки. Главное, чтобы он был читабельным, чтобы утилиты вроде ls мог бы карту user-id => name , Это означало, что любой мог видеть зашифрованный пароль каждого, всех пользователей и идентификаторов в системе.
Некоторые системы Unix начали вводить пару сценариев оболочки adduser addgroup часто они игнорировались, потому что они были несовместимы между Unix, поэтому большинство людей просто продолжили ручное редактирование.
Прошло довольно много лет, прежде чем shadow Файл паролей был изобретен, это обеспечило немного большую безопасность, скрывая зашифрованные пароли. Опять же, была добавлена достаточная сложность, но она все еще была довольно грубой и простой. Коммунальные услуги useradd а также groupadd были введены, которые держали shadow а также shadow- обновлено. Начнем с того, что это часто были простые оболочки сценариев оболочки вокруг проприетарных утилит adduser/addgroup. Опять же, этого было достаточно, чтобы продолжать идти.
Сети компьютеров росли, люди работали над несколькими одновременно, чтобы сделать работу, поэтому администратор passwd/group файлы становились кошмаром, особенно с NFS, поэтому появились «Желтые страницы», также известные как NIS, для облегчения бремени.
Теперь стало очевидно, что нужно что-то более гибкое, и был изобретен PAM. Поэтому, если вы действительно искушены и хотели бы иметь централизованную, безопасную систему с уникальным идентификатором и всеми системами аутентификации, вы должны обратиться к центральному серверу для аутентификации, например, к серверу Radius, серверу LDAP или Active Directory.
Мир вырос. Но файлы passwd/group/shadow все еще оставались для нас меньших пользователей / разработчиков / лабораторий. Нам все еще не требовались все навороты. Я полагаю, что философия к настоящему времени немного изменилась: «Если вы собираетесь сделать это лучше, вы не будете его использовать вообще», так что не беспокойтесь об этом.
Вот почему я не думаю, что простой файл passwd когда-либо изменится. Больше нет никакого смысла, и это просто замечательно для тех Raspberry Pi за 30 фунтов стерлингов с 2, 3, 3 наблюдателями температуры пользователя и твиттерами. Хорошо, вам просто нужно быть немного осторожнее с вашими идентификаторами пользователей, если вы хотите, чтобы они были уникальными, и ничто не мешает энтузиасту обернуть useradd в скрипт, который сначала выбирает следующий уникальный идентификатор из базы данных (файла), чтобы установить уникальный идентификатор, если это то, что вы хотите. В конце концов, это открытый исходный код.
Thread: uid=1000. gid=1000. why 1000?
Frothy Coffee! 
uid=1000. gid=1000. why 1000?
A very simple question.
uid seems to be user id, while gid seems to be group id.
But, why I notice many times that both variables are assigned to 1000? Does this 1000 have some particular meanings?
- View Profile
- View Forum Posts
- Private Message
Frothy Coffee! 
Re: uid=1000. gid=1000. why 1000?
- View Profile
- View Forum Posts
- Private Message
- Visit Homepage
mmmm. Ubuntu. 
Re: uid=1000. gid=1000. why 1000?
1000 just happens to be the point where human user ID’s start in Ubuntu. That gives plenty of user id’s for system services, and in the end where to start human users is just a question of choosing nice a number to start counting from. And since you are the first user created on the machine, you’ll of course get the first UID and GID as well.
Most Linux and Unix systems start counting human user’s IDs from 500 or 1000, depending on your distribution (or Unix variant).