1つのコマンドを使用して登録されたすべてのユーザーとそのグループを表示するには?

1つのコマンドを使用して登録されたすべてのユーザーとそのグループを表示するには?

基本的なUnixコマンドなどのテストを作成していますが、登録されているすべてのユーザーとそのグループを1つのコマンドで表示する質問があります。同時にgetentコマンドは使用できません。

ベストアンサー1

考えられる解決策は、たとえば次のようにawk読み取ることです/etc/shadow/etc/group(システムユーザーが必要ないと仮定し、そのユーザーを除いてユーザーをロックしようとしました。)

awk -F":" 'NR==FNR {
    if ($2 !~ /\!/ && $2 !~ /\*/) {
        m[$1] = "";
    }
    next;
}
{
    for (i in m) {
        if ($4 ~ i || $1 == i) {
            m[i] = m[i] $1 " ";
        }
    }
}
END {
    for (i in m) {
        print i ":", m[i];
    }
}' /etc/shadow /etc/group

if ($2 !~ /\!/ && $2 !~ /\*/)すべてのユーザーアカウントを一覧表示する条件を削除するか、inがあることは、ユーザーがunixパスワードを使用してログインできないことを意味します(ただし、!ユーザーはキーベースのログインなどの他の方法でシステムにログインできます) )。 。*/etc/shadow

おすすめ記事