"adduser"와 "useradd"의 차이점은 무엇입니까?

"adduser"와 "useradd"의 차이점은 무엇입니까?

궁금합니다: Debian Linux에 이름과 기능이 매우 유사한 이 두 명령이 있는 이유는 무엇입니까? 이것은 나에게 항상 혼란스러웠다.

  • 그들 중 다른 것보다 우월한 것이 있습니까?
  • 왜 하나로 병합되지 않습니까?
  • 그들 사이에 어떤 중요한 차이가 있나요?
  • 어느 것을 사용해야 합니까? 아니면 사용 사례에 따라 달라지나요?

답변1

useradd시스템과 함께 컴파일된 기본 바이너리입니다. 그러나 백엔드에서 바이너리를 adduser사용하는 Perl 스크립트입니다 .useradd

adduser백엔드보다 사용자 친화적이고 대화형입니다 useradd. 제공되는 기능에는 차이가 없습니다.

답변2

주요 이점은사용자 추가~ 위에사용자 추가시스템 수준 사용자를 다루고 있습니다. 와 함께사용자 추가시스템 수준 사용자 계정이 생성되면 시스템 사용자를 위한 사용자 디렉터리가 홈에 저장됩니다.사용자 추가자동으로 하지 않습니다. 설명서를 읽으면 시스템 수준 사용자와 관련 홈 디렉토리가 자동이라는 점을 제외하면 본질적으로 동일합니다.사용자 추가조항이 없는 시스템 수준 사용자를 위해 /home/user 디렉토리를 자동으로 생성합니다.사용자 추가, 다음에 의해 지정된 경우는 제외-중옵션. 내가 본 다른 내용에서는 일반적으로 UID와 GUID가 허용되는 컨포멀 데비안 표준에 의해 할당되었다고 명시되어 있습니다.사용자 추가.

답변3

내가 확인한 몇 가지 Redhat 인스턴스(2011년의 4.9 및 2017년의 6.9)에서 adduser는 Perl 스크립트가 아니라 단순히 useradd의 별칭입니다. Redhat 6.9의 내용은 다음과 같습니다.

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

useradd가 '올바른' 프로그램이라는 것을 기억하는 방식은 다음과 같습니다. 사용자를 추가하는 것은 CRUD 스펙트럼에서 하나의 작업일 뿐입니다. 또한 '수정' 및 '삭제' 작업이 필요합니다('읽기'는 아마도 /etc/passwd를 보면 다뤄질 것입니다). 그래서 프로그램 이름이 지정됩니다.사용자*(각각 useradd, usermod 및 userdel) 나는 대안을 가정*사용자명명 규칙(adduser, moduser 및 deluser - 존재하지 않음)도 작동할 수 있습니다. 하지만 조금 더 어색할 것 같아요(이유 때문에 지금은 명확하게 표현할 수 없습니다 :)

답변4

Raspian 내에서(다른 OS를 확인해야 함) 'adduser USER'는 대화 상자(TUI)를 시작하지만 'useradd USER'는 시작하지 않습니다.

분명히 adduser를 사용하면 대화 상자가 나타나면 전체 'useradd' 명령이 이미 실행되었습니다. CTRL-C를 눌러도 사용자는 거기에 있습니다.

새 시스템에서는 "개인" 그룹을 생성하므로 새로 생성된 사용자를 제거하려면 다음을 수행해야 합니다.

  • vi /etc/passwd
  • vi /etc/그룹
  • rm -rf /홈/사용자

나는 adduser가 useradd를 "사용"하기 때문에 나머지는 사용자에 대한 메타데이터라고 가정합니다. 따라서 기술적으로 "skel", "파일 마스크" 등은 변경되지 않습니다. 즉, 시스템 기본값입니다.

반면에 useradd는 TUI를 표시하지 않으므로 스크립팅에 더 유용할 수 있습니다.

솔직히 말해서 나는 rasbian에서만 테스트했습니다. 그것이 내가 질문을 밟은 이유이기 때문입니다.

다른 OS에서는 다른 버전의 adduser를 구현할 수도 있다고 상상할 수 있습니다.

관련 정보