>_ IzzyLab

Практическое задание

awk: разбор /etc/passwd

сложно

Из /etc/passwd выпиши имена пользователей, у которых login shell (последнее поле) равен /bin/bash, отсортированные по возрастанию UID (третье поле, число). Результат — в /root/bash_users.txt, по одному имени на строку.

Что потренируешь:
  • awk
  • разделитель полей
  • /etc/passwd
  • фильтрация
  • sort

Разбор темы

/etc/passwd — таблица с полями через двоеточие: имя, UID, GID, шелл и прочее. Чтобы awk видел эти поля, разделитель переключают на двоеточие (флаг -F или переменная FS), после чего к нужным колонкам обращаются по номеру. Фильтрация по точному строковому равенству отбирает нужные записи, а поскольку сортировать надо по числовому UID, а выводить имя — удобно вывести пару «ключ-значение», отсортировать sort численно и затем оставить только имя.

Что проверяется

  1. включены все пользователи с shell /bin/bash
  2. пользователь с nologin исключён
  3. отсортировано по возрастанию UID (yan раньше zoe)

Как это выглядит