2013-11-13 5 views
0

Мне нужна помощь в написании сценария Bourne/BASH, который определяет количество потенциальных пользователей для системы, получая подсчет количества паролей, содержащихся в файле паролей системы.Сценарий BASH для получения количества потенциальных пользователей

Я пробовал/etc/passwd. Всегда возникает вопрос: «Разрешение отказано». Я изменяю себя как пользователь root, там же проблема. Я не могу понять, как это сделать.

+1

Как root, вы должны уметь читать/etc/passwd –

+0

Показать сценарий! '/ etc/passwd' должен быть доступен для чтения. 'getent passwd' также должен указывать возможные пути доступа пользователей. –

+1

Даже будучи не-root, он должен быть доступен для чтения. Sth else здесь не так. – Alfe

ответ

0

Если предположить, что ваши учетные записи пользователей несистемные начать нумерацию в 500:

getent passwd | awk -F':' '{ if ($3 >= 500) print $1}' 

И если они начинаются с 1000:

getent passwd | awk -F':' '{ if ($3 >= 1000) print $1}' 

Следующая:

  1. Подсчитайте количество счетов с высоким идентификатором «никто» (e. g., "nfsnobody"). Это все пользователи, которые были возвращены из приведенных выше команд, которые выглядят как фиктивные учетные записи.

  2. Дозапись | wc -l к команде, используемой сверху и вычесть отсчет с шага 1.

Это должно обеспечить количество несистемных учетных записей (например, «потенциальных» пользователей) в системе.

0

Файл /etc/passwd обычно не защищен от чтения для обычных пользователей, поэтому вам необходимо выяснить, почему это происходит в вашей системе. Но даже если вы можете прочитать его, он будет содержать множество технических пользователей (например, lp, syslog, bin, daemon и т. Д.); Я не уверен, что вы хотите включить их. Чтобы отфильтровать их, вам понадобится список имен известных технических пользователей, например. г .:

egrep -v '^(daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|nobody|syslog)' /etc/passwd 
Смежные вопросы