PC/Linux

Linux C etc/passwd 에서 UID 가 1000번과 그 이상인 아이디 리스트 만들기

현종이닷 2016. 5. 27. 15:44

안녕하세요 현이입니다.

 

오늘 포스팅은 리눅스서버에서 쓸 기술문서들 입니다...

 

awk을 이용하여 uid가 1000과 그 이상의 아이디 리스트를 출력하여 파일에 저장하는 소스 입니다. 

간단히 쉘로도 할 수 있습니다.... 

 

소스는 

 

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <unistd.h>

 

int main()

{

    system("mkdir -p /usr/local/sbin/control/conf");

    system("awk -F: '{ if ($3>= 1000 ) print $1 }' /etc/passwd > /usr/local/sbin/control/conf/user.conf");

    system("sed -i '/nobody/d ' /usr/local/sbin/control/conf/user.conf");

}

 

이러합니다 .... 쉽죠??? ㅎㅎ

 

설명을 덛붙히자면 

/etc/passwd 파일에서 

:로 구분지어진 드의 3번째 값(UID)이 1000 이상인 라인을 출력받아서 

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

/usr/local/sbin/control/conf/user.conf 에 저장을 한 후 

sed 로 uid 65535 인 nobody를 지워라 입니다.

 

파일은 이러합니다~~ ㅎㅎ 

 

user-control.c
다운로드