1

ワンライナーシェルコマンドか、そのマシンにログインできるLinuxサーバー上のすべてのユーザーを一覧表示する短いBash/Pythonスクリプトのいずれかが必要です。したがって、www-dataやmailのようなユーザーはもちろん除外されますrootが、リストの一部になります。

たとえば、このコードは機能します。ここで見つけました。しかし、私はもっとシンプルなものを探しています。

awk -F: '$2 != "*" && $2 !~ /^!/ { print $1, " can log in" }' /etc/shadow
4

2 に答える 2

4

このワンライナーを使用して、/etc/shadow にパスワードが設定されているすべてのユーザーを 1 行に 1 つずつ一覧表示できます。

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:

これは、ローカル ユーザーに対してのみ機能し、LDAP データベースまたはその他の方法を使用する場合には機能しません。

LDAP を使用していて、ディレクトリ内のすべてのユーザーを一覧表示する場合は、次を試してください。

getent passwd | cut -f1 -d:

ただし、これにより、次のような「非ユーザー」アカウントを含むすべてのユーザーが一覧表示されますwww-data

于 2012-11-07T10:55:04.773 に答える
1

Find Linux users that can login with password でBash スクリプトを見つけました。

バッシュのバージョン:

awk -F: '$2 != "*" && $2 !~ /^!/ { print $1, " can log in" }' /etc/shadow

Python バージョン:

users = [i.split(':') for i in open('/etc/shadow').readlines()]
print '\n'.join([i[0] for i in users if i[1] not in ('!', '*')])
于 2012-11-07T10:51:55.200 に答える