SYSTEM

LINUX 계열 별 useradd와 adduser의 차이점 (+userdel와 deluser)

마띠(쥔장) 2021. 3. 9. 10:05

'useradd와 adduser의 차이점'을 구글에 검색하면 많은 포스팅이 나온다. 정확히 말하면 LINUX 내 계열간에 차이가 있다.

먼저 요즘 자주 쓰는 CentOS에서 보자. CentOS 6.6 버전이다.

useradd와 adduser 명령어의 정보를 보면, adduser가 useradd에 대한 링크 파일임을 알 수 있다.

일단 각각 계정 생성을 해보자. useradd로 생성한 계정은 test_user, adduser로 생성한 계정은 test_add로 설정했다.

계정 정보를 보니 쉘도 같다.

뭐 다를거 없다.

즉, CentOS에서는 'useradd = adduser'이다.

 

이번엔 Ubuntu에서 보자! 우분투 20.10에서 진행했다.

이번에도 useradd와 adduser 명령어의 관계를 살펴보자. useradd의 심볼릭 링크로 adduser가 존재했던 CentOS에서와 달리, 별개의 파일로 존재하는 것을 알 수 있다.

한 명령어씩 실행해보자. 먼저, useradd 명령어를 사용해 test_user라는 계정을 만들 것이다. 

바로 생성된다.

이번엔 adduser를 사용해 test_add라는 계정을 만들어보자.

바로 생성이 완료되었던 useradd와 달리 새로운 group과 user를 추가하고, /home/test_add라는 계정의 홈 디렉터리를 만들어주고 /etc/skel 파일에서 복사도 해주고 있다. 또 계정을 만드는 사용자에게 비밀번호 입력을 요구하고 있다.

패스워드를 설정하고 나면 추가적으로 계정에 필요한 기타 정보들을 입력받게 된다.

/etc/passwd 파일을 보면, 추가적으로 입력한 정보와 함께 다른 점이 있다.

기본으로 생성하면 쉘이 다르다. test_add 계정은 bash 쉘, test_add 계정은 sh 쉘을 쓴다.

 

정리하자면, adduser와 useradd 명령어는 CentOS를 비롯한 RedHat 계열에서는 차이가 없다. 하지만 Ubuntu 계열에서는 확실한 차이가 있다. 

  • useradd : 순수하게 '계정만' 생성해주고, 기본 쉘인 sh가 할당된다. 홈 디렉터리나 비밀번호 등은 따로 설정이 필요하다.
  • adduser : 계정 생성 시 비밀번호와 사용자의 기타 정보를 입력받는다. 옵션을 통해 기본 쉘이나 로그인 옵션 등도 설정할 수 있다. 홈 디렉토리도 자동 생성된다.

 

아래는 adduser 명령어로 계정 생성 시 사용할 수 있는 옵션들이다.


useradd와 adduser를 비교할 때, userdel과 deluser도 같이 비교하는 것 같아서 적어본다. 결론부터 말하자면 Ubuntu 환경에서 옵션의 차이만 있는 것 같다.

일단 CentOS에서는 userdel 명령어만 존재한다. deluser 명령어는 아예 안먹힌다.

Ubuntu에서는 각 명령어에 먹히는 옵션이 다르다.

계정과 계정의 홈 디렉터리만 삭제하고 싶을 때

  • userdel -r user_add
  • deluser --remove-home user_add

딱 이 정도의 차이!

728x90