разбор `/ etc / passwd` файла для поиска пользователей с интерактивными оболочками

Терминал представляет собой командную строку или интерпретатор между пользователем и машиной, целью которой является доступ к исходному коду, который не будет доступен при нормальном использовании.

1
задан 1 February 2016 в 10:44

1 ответ

Прокрутите файл, разбивая каждую строку на поля и проверяя, не имеет ли 6-го поля «без входа» для всех строк, где UID больше 1000

>>> with open("/etc/passwd") as file:
...     for line in file:
...        if  int(line.split(":")[2])  > 1000  and not str(line.split(":")[6]).__contains__("nologin"):
...            print line
... 
testuser:x:1001:1001:,,,:/home/testuser:/bin/bash

tester:x:1002:1002:TESTER,,,:/home/tester:/bin/bash

newUser:x:1003:1003::/home/newUser:

testUser:x:1004:1004::/home/testUser:

testuser2:x:1005:1005:asdf,asdf,asdf,asdf,asdf:/home/testuser2:/bin/bash

Имена пользователей, у которых есть набор оболочек может войти в эту оболочку, например, xieerqi имеет /bin/mksh, а testUser - /bin/bash. У других пользователей нет набора оболочки, который по умолчанию будет /bin/bash

1
ответ дан 23 May 2018 в 13:51
  • 1
    вы имеете в виду, что все оболочки являются интерактивными, кроме как с no-login? – Kishor Pawar 1 February 2016 в 09:22
  • 2
    Серж, я боюсь, что вопрос довольно неоднозначный, и ваш ответ неправильно направлен тоже. Не ваша вина на самом деле, поскольку OP не совсем ясно о различиях между сеансами оболочки. – heemayl 1 February 2016 в 09:23
  • 3
    heemayl точно я не понимаю концепцию оболочки. – Kishor Pawar 1 February 2016 в 09:24
  • 4
    @KishorPawar. Все общие оболочки, такие как bash, ksh, csh, dash - все это интерактивно, если вы можете ввести что-то с клавиатурой. Если вы используете их для запуска скрипта, это не интерактивно. Это другой вопрос. Если у пользователя есть оболочка, установленная в /etc/passwd, это означает, что они могут входить в интерактивный режим и управлять системой с помощью клавиатуры. Поэтому каждый пользователь, у которого есть какая-то форма оболочки (или, например, некоторые мои пользователи - пустые), сможет войти в систему и работать в интерактивном режиме – Sergiy Kolodyazhnyy 1 February 2016 в 09:30
  • 5
    Вы также можете использовать /bin/false для отключения оболочки для пользователя – Germar 1 February 2016 в 09:42

Другие вопросы по тегам:

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