/etc/shadow и совместимость формата/etc/passwd

Можно найти rpm -q <package name> полезный, или даже rpm -U для обновления.

4
01.06.2012, 03:09
2 ответа

Насколько я знаю, все варианты Unix имеют /etc/passwd файл с традиционным расположением, ради приложений, которые читают файл непосредственно. Каждая строка в файле содержит разделенные от двоеточия записи, которые соответствуют struct passwd поля:

  1. имя пользователя (вход в систему)
  2. зашифрованный пароль (если есть)
  3. идентификатор пользователя (число, в десятичном числе)
  4. основной идентификатор группы (число, в десятичном числе)
  5. Поле Gecos. Это поле не используется системными программами за исключением целей дисплея. Это - обычно разделенный запятыми список полей, при этом первые три являются полным именем, номером станции и номером телефона.
  6. корневой каталог
  7. оболочка входа в систему

Одна вещь, которая варьируется между системами, состоит в том, сколько свободы можно взять с синтаксисом. Например, GNU libc (т.е. Linux) игнорирует строки, которые начинаются #: они - комментарии. GNU libc также игнорирует пробел в начале строки, таким образом, они могут быть расположены с отступом. Недопустимая строка могла бы заставить программы прекращать обрабатывать файл или пропускать к следующей строке.

Большинство современных систем больше не хранит зашифрованный пароль во втором поле. Содержание того поля не является надежным признаком того, есть ли у пользователя набор пароля (и даже если Вы узнали это, это не надежный признак того, может ли пользователь войти в систему, потому что существует много других методов аутентификации, таких как ключи SSH, одноразовые пароли, биометрика, смарт-карты, …).

Когда пароли не находятся в /etc/passwd, то, где они, системно-зависимо. Розеттский камень для Unix упоминает много вариантов Unix.

  • Использование Соляриса /etc/shadow, и это было скопировано другими включая Linux. Linux и теневые файлы Соляриса имеют тот же формат; я не знаю, если другие системы, которым назвали файл /etc/shadow используйте тот же формат.
  • Системы BSD имеют /etc/master.passwd, и дополнительно имейте файлы базы данных для более быстрого доступа, обновленного pwd_mkdb.

Помните это /etc/passwd как гарантировали, не будет содержать полный список пользователей в течение нескольких десятилетий: пользователи могут произойти из других баз данных, таких как NIS (YP) или LDAP. Как системный администратор, избегайте редактирования /etc/passwd зарегистрируйте непосредственно; использовать vipw вместо этого, если Ваша система обеспечивает его (и если это не делает, консультируйтесь со своими руководствами для наблюдения, какому методу рекомендуют изменить пользовательскую базу данных).

Что я записал выше движений для групп, также. Поля в /etc/group struct group участники: название группы, пароль (в основном неиспользованный), числовой идентификатор группы и разделенный запятыми список имен пользователей (пользователи, у которых есть эта группа как вторичная группа). Linux имеет a /etc/gshadow файл, но это редко используется, поскольку групповая аутентификация широко не осуществлена.

3
27.01.2020, 20:54
  • 1
    , но он мало неправ... Системам BSD выделили 5-е поле 'классу'. - passwd (5) - openbsd.org/cgi-bin / … –  jirib 01.06.2012, 11:45
  • 2
    Разделение между/etc/passwd и/etc/shadow (или/etc/master.passwd) логично. Первый - читаемый мир, последний читаем для корня. Таким образом это останавливает деточек сценария для повреждения хешированных паролей. –  jirib 01.06.2012, 11:50
  • 3
    @JiriXichtkniha поле класса находится в master.passwd (то же как в другом BSDs). Формат /etc/passwd на OpenBSD классический. –  Gilles 'SO- stop being evil' 01.06.2012, 13:38

Сначала не все системы UNIX используют/etc/shadow, таким образом, там не равны :D BSD использует/etc/master.passwd, AIX использует/etc/security/passwd...

2
27.01.2020, 20:54
  • 1
    ?... Я предполагаю второй, был бы: с тех пор не все они реализуют те файлы, можно только сказать, что те, которые действительно реализуют их, следуют за тем же форматом. BTW, Mac OS также имеет/etc/passwd файл, но никакой/etc/shadow. –  devius 31.05.2012, 12:31
  • 2
    Вы не угадываете, конечно. BSD использует 'класс' в их passwd, master.passwd для использования его login.conf. –  jirib 31.05.2012, 12:38
  • 3
    "BTW, Mac OS также имеет/etc/passwd файл, но никакой/etc/shadow". - предполагают почему? Mac OS так или иначе основан на FreeBSD' на ветвлении - Darwin. –  jirib 31.05.2012, 12:40
  • 4
    Вы все еще предполагаете "весь Unix, и подобные Unix" системы используют/etc/shadow. Ваш вопрос является все еще неправильным. Посмотрите здесь - bhami.com/rosetta.html - для фундаментального исследования. –  jirib 31.05.2012, 12:50
  • 5
    Вопрос глуп: 1. не все нельды использует/etc/shadow, 2. бинго, они не syntactly, равный не потому что variancy местоположения/etc/shadows, но потому что существует отличающееся довольный подходящие определенные потребности ОС! –  jirib 31.05.2012, 13:23

Теги

Похожие вопросы