adduser는 useradd가 무엇을하지 않습니까?


71

보다 널리 퍼진 useradd데비안 기반 시스템에는 adduser사용자 및 일부 관련 작업을 추가 할 수있는 고급 인터페이스를 제공 하는 추가 명령이 포함되어 있습니다 . 다른 SE 사이트에는 이러한 명령의 기본적인 차이점을 자세히 설명하는 다양한 질문 / 답변이 있습니다.

대부분의 답변은 본질적으로 adduser대화 형으로 사용자를 추가하기위한 더 좋은 인터페이스를 제공하지만, adduser실행되지 않을 때 발생하는 상황에 대해서는 자세히 설명 하지 않습니다 useradd. 그래서:

  1. 무엇 않습니다 adduser그렇게 useradd하지 않는 이유는 무엇입니까?
  2. 동등한 결과를 얻으려면 어떤 명령을 사용해야합니까?

답변:


79

먼저, 해당 매뉴얼 페이지 스 니펫은 두 명령의 차이점을 강조 표시하고 진행 상황을 나타냅니다. 의 경우 adduser:

adduser 및 addgroup은 /etc/adduser.conf의 명령 줄 옵션 및 구성 정보에 따라 시스템에 사용자 및 그룹을 추가합니다. 기본적으로 데비안 정책 준수 UID 및 GID 값을 선택하고 골격 구성으로 홈 디렉토리를 생성하고 사용자 정의 스크립트를 실행하며 기타 기능을 사용하여 useradd, groupadd 및 usermod 프로그램과 같은 하위 수준 도구에 친숙한 프런트 엔드입니다.

그런 다음 useradd:

useradd는 사용자를 추가하기위한 저수준 유틸리티입니다. 데비안에서 관리자는 보통 adduser (8)를 사용해야합니다.

추가 조사를 adduser통해이 스크립트가 다음 명령에 대한 고급 인터페이스를 제공하여 일부 기능을 제공하는 펄 스크립트임을 알 수 있습니다.

  • useradd
  • groupadd
  • passwd -사용자 비밀번호를 추가 / 변경하는 데 사용됩니다.
  • gpasswd -그룹 비밀번호를 추가 / 변경하는 데 사용됩니다.
  • usermod -다양한 사용자 관련 매개 변수를 변경하는 데 사용됩니다.
  • chfn -사용자가 보유한 추가 정보를 추가 / 변경하는 데 사용됩니다.
  • chage -비밀번호 만료 정보를 변경하는 데 사용됩니다.
  • edquota -디스크 사용량 할당량을 변경하는 데 사용됩니다.

adduser명령 의 기본 실행은 다음과 같습니다.

adduser username

이 간단한 명령은 여러 가지 작업을 수행합니다.

  1. 이라는 사용자를 작성하십시오 username.
  2. 사용자의 홈 디렉토리를 작성하십시오 (기본값은 /home/username파일을 복사 /etc/skel함).
  3. 사용자와 이름이 같은 그룹을 만들고 사용자를 그룹에 배치하십시오.
  4. 사용자의 비밀번호를 묻습니다.
  5. 사용자에 대한 추가 정보를 묻는 메시지가 표시됩니다.

useradd가장의 대부분을 달성 할 수있는 프로그램은, 그러나 그것은 기본적으로 그렇게하고 추가 옵션을 필요로하지 않습니다. 일부 정보에는 추가 명령이 필요합니다.

useradd -m -U username
passwd username
chfn username

즉 참고 adduser생성 UID 및 GID가 준수되도록 데비안 정책 . 데비안 정책과 일치하는 / in으로 일반 사용자를 만드는 useradd것이 좋습니다. 그러나 문제는 데비안이에서 지원되는 것으로 보이는 시스템 사용자 UID의 특정 범위를 지정하므로 올바른 범위에 UID / GUID를 지정하고 지정하지 않은 시스템 사용자를 순진하게 추가하면 심각한 문제가 발생할 수 있다는 것입니다.UID_MINUID_MAX/etc/login.defs/etc/adduser.confuseradd

다른 일반적인 용도 adduser는 사용자를 그룹에 추가하는 프로세스를 단순화하는 것입니다. 다음 명령은 다음과 같습니다.

adduser username newgroup

usermod사용자가 이미 구성원 인 그룹을 지정해야하는 보다 복잡한 명령을 대체 합니다.

usermod -G all,other,groups,user,is,in,newgroup

adduser여기서 사용하는 한 가지 단점 은 한 번에 하나의 그룹 만 지정할 수 있다는 것입니다.


이것은 멋지다! 나는 이것이 질문이라는 것을 몰랐다. useradd처럼 해시 비밀번호를 사용합니까? 그건 그렇고, 이것은 매우 좋은 일입니다.
mikeserv

그래도 "관리자 ..."진술에 완전히 동의하는지 모르겠습니다 ... 개인적으로, 나는 관리자가 adduser시스템 전체의 정책에 따라 자신의 것을 구성해야한다고 생각 하지만, 그것은 단지 안락 의자 일뿐입니다 최상의 쿼터백.
mikeserv

@ mikeserv, 해시 암호가 없습니다. 그래도 알아야 할 또 다른 프로그램 chpasswd이 있습니다.-해시 된 암호를 사용할 수 있습니다 stdin. 나는 다른 생각을 업데이트하기 전에 내일까지 기다릴 것입니다.
Graeme

좋은 포스트. 나에게 너무 많은 세부 사항. 내가 가장 그리워하는 adduser것은 원래 대학의 이메일 서버 에서처럼 실제 사용자를 생성 / 수정 / 제한해야하는 서버 관리자를 위해 만들어진 것입니다. adduser당신 과 함께 프로세스를 자동화 할 수 있습니다. 이것은 몇 년 동안 약간 바뀌 었으므로 오늘날 useradd많은 관리자에게는 어려울 수 있으며 그들이 adduser선택하는 도구가되었습니다.

내 우분투 16.04에서 -U/ --user-group는 기본값으로 보입니다.
Franklin Yu

2

adduser 명령에 기본적으로 명령은 또한 당신이 함께 할 수없는 시스템 사용자를위한 / 홈 / 사용자 디렉토리 생성 은 useradd 명령을 사용합니다. useradd는 시스템 사용자가 아닌 일반 사용자의 홈 디렉토리 만 추가합니다.


1

시스템 관리자는 adduser로 수행 할 수있는 useradd로 무엇이든 할 수 있습니다. 여기에서는 useradd로 시스템 사용자를위한 / home / user 디렉토리를 작성할 수 없으며 / etc / skel에 포함 된 파일을 수정하여 절대적으로 가능합니다. / etc / skel에는 처음에 새 사용자의 홈 디렉토리를 채우는 데 사용되는 파일 세트가 포함되어 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.