[python] mac 과 linux 에서 group 구하기 Develop Tip

의외로 맥과 리눅스에서 현재 로그인 한 계정의 그룹 이름을 구해오는 것이 쉽지 않았습니다.

이것을 파이썬으로 간단히 한줄로 (?) 구해 보도록 하겠습니다.


python -c 'import grp,sys; gid=sys.stdin.readline().strip(); [gname]=[g.gr_name for g in grp.getgrall() if g.gr_gid==int(gid)][:1]; print(gname)' <<< $(id -g)

하나씩 파헤쳐 보겠습니다.

* 마지막의 id -g 명령은 현재 계정의 gid 를 구해옵니다.
* python -c '...'  은 '...'의 파이썬 코드를 실행합니다.
* import grp, sys 는 두 표준 모듈을 import 합니다.
* gid=sys.stdin.readline().strip() 은 마지막에서 구해온 gid를 <<< 를 통해 stdin으로 구해 첫번째 줄의 내용을 구해 gid로 넣어 줍니다.
* [g.gr_name for g in grp.getgrall() if g.gr_gid==int(gid)] 부분은 모든 group을 돌면서 gid가 구해온 gid의 int 한 값과 같으면 이것을 내포 리스트로 구해,
* [gname]=[...] gname에 넣고,
* print(gname) 출력합니다.

이렇게 해결해 보았습니다.


어느 분께는 도움이 되셨기를..

핑백

덧글

댓글 입력 영역

구글애드텍스트