Adduser, addgroup 같으면서 서로 다른?

addgroup 와 adduser 에 대한 궁금증이 생겼습니다.
addgroup 를 확인해 보니 adduser 를 가르키는 심볼릭링크 파일이더군요.
한마디로 같은파일인 거죠…

그런데 이 둘을 실행하면 서로 다르게 동작을 한다는 겁니다.
adduser test 하면 유저 생성 및 test 그룹 생성 그리고 /home/test 를 생성하죠.

하지만 addgroup 는 test 그룹을 생성만 합니다.
adduser 의 옵션에 --group 을 붙인것 처럼 행동하는데…

그렇다면 심볼릭 링크를 생성 시에 이런 옵션도 함께 지정을 했기 때문에 서로 다르게 동작 하는 것인가요?

테스트 삼아 ln -s /usr/sbin/adduser /home/testaddgroup --group 하니 당연히 에러가 뜨더군요.
왜 이렇게 서로 다르게 동작하는지 너무 궁금하네요.

실행하는 파일의 이름에 따라 다르게 동작하도록 되어 있습니다.

프로그램을 실행하면 아규먼트로 사용자가 입력한 옵션 이외에 파일 이름이 함께 넘어갑니다.
보통 첫 번째 파라미터(0번 인덱스)에 파일 이름 정보가 담기며
이 정보를 바탕으로 프로그램 자체에서 구분하여 처리하도록 스크립트가 만들어져 있습니다.

gweere 속시원한 답변 정말 감사합니다.
질문 올려놓고 잠시 화장실 다녀오니 답글이 달렷네요. :D

저도 궁금 해서 찾아 보는 중에 답이 올라 왔군요 gweere 님이 먼저 ^^

저도 궁금해서 같은 느낌으로 소스를 보니
/usr/sbin/adduser 파일은 perl 스크립 입니다.
중간에 보니
addgroup 명령으로 받은 명령과 adduser로 받은 명령을 구분 해석 하는데.
[attachment=0:24crvv00]screenshot2.png[/attachment:24crvv00]#perl 방 a3r0 님의 해석

[code:24crvv00]0 이 "addgroup" 이면 $action은 "addgroup"이고 아니면 "adduser"다
$found_sys_opt가 정의되어있으면 $action이 "adduser"이면 $action은 "addsysuser"다
$action이 "addgroup"이면 $action은 "Addsysgroup"이다
[/code:24crvv00] 어떤 명령인지에 따라 다르게 동작 시키는 거군요

강분도님 덕분에 또 하나 배우네요.
perl 스크립트 였군요, 전 바이너리 인줄…(단순 ls 하면 그냥 실행파일로 나와서 -_-)
역시 윈도우에 너무 찌들은듯…

저도 소스 구경좀 해봐야겠군요.