새 사용자를 생성할 때 홈 디렉터리가 생성되지 않는 이유는 무엇입니까?

새 사용자를 생성할 때 홈 디렉터리가 생성되지 않는 이유는 무엇입니까?

useraddUbuntu 서버 가상 머신에서 명령을 사용하여 새 사용자(testuser)를 생성했습니다. 사용자를 위한 홈 디렉터리를 만들고 루트 권한을 부여하고 싶습니다.

그런데 신규로 로그인을 하면 홈디렉토리가 없다고 나옵니다. 내가 뭘 잘못했나요?

답변1

마침내 나는 이 작업을 직접 수행하는 방법을 알아냈습니다.

   useradd -m -d /home/testuser/ -s /bin/bash -G sudo testuser

-m홈 디렉터리가 없으면 새로 만듭니다.
-d기본 홈 디렉터리 위치를 재정의합니다. -s사용자의 로그인 쉘을 설정합니다.
-G사용자가 속해야 하는 그룹의 쉼표로 구분된 목록이 필요합니다.

바라보다man useradd더 알아보기.

답변2

편집자 주: 이 답변은 질문에 대해 기술적으로 정확하지만 의견의 토론에서는 OP가 useradd이를 쉘 명령으로 직접 사용하지 않고 스크립트에서 사용하려고 시도했으며 adduser해당 컨텍스트에 맞지 않는다는 점을 명확히 했습니다.

대화형으로 사용자를 생성할 때는 일반적으로 대신 를 사용하는 것이 adduser좋습니다 useradd.

useradd는 사용자를 추가하기 위한 저수준 유틸리티입니다.Debian에서
관리자는 일반적으로 adduser(8)를 사용해야 합니다.
.

adduseruseradd기본적으로 사용자 디렉터리 생성과 같은 작업을 수행하는 보다 친숙한 프런트 엔드입니다 . 사용자 이름만 인수로 사용하여 실행하면 비밀번호와 같은 추가 정보를 입력하라는 메시지가 표시됩니다.

$ sudo adduser testuser
Adding user `testuser' ...
Adding new group `testuser' (1002) ...
Adding new user `testuser' (1002) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] 

일반적으로 필요한 그룹도 자동으로 설정되므로 adduser대신 use를 사용하는 것이 좋습니다 . useradd설명된 대로 man adduser:

adduser 및 addgroup은 /etc/adduser.conf의 명령줄 옵션 및 구성 정보를 기반으로 시스템에 사용자와 그룹을 추가합니다. useradd, groupadd 및 usermod 프로그램과 같은 하위 수준 도구에 대한 더 친숙한 프런트 엔드이며 기본적으로 Debian 정책을 준수하는 UID 및 GID 값을 선택하고, 뼈대 구성으로 홈 디렉터리를 생성하고, 사용자 정의 스크립트를 실행하는 등의 작업을 수행합니다. 기능.

답변3

useradd -m LOGIN

사용자의 홈 디렉토리 생성

답변4

다음 명령을 사용했을 때 이런 일이 일어났습니다.

sudo useradd -d /home/ssd2/yuwen yuwen

명령을 입력한 후에는 그러한 파일이 없으며( cd확인하기 위해 &를 ​​사용함 ls) 이를 사용하면 su yuwen새 사용자로 성공적으로 변경되지만 홈 디렉토리는 동일하게 유지됩니다(그렇지 않아야 ssd2/yuwen함).

cat /etc/passwd또한 새 사용자가 생성되었는지 확인하기 위해 명령을 사용했습니다 . 생성되었으나 홈 디렉터리가 유효하지 않습니다.

제가 설명한 것과 동일한 상황에 처해 있는 경우 해결 방법은 다음과 같습니다.

  1. 슈퍼유저 계정을 사용하여 Linux 서버에 로그인하면 다음을 사용할 수 있습니다.sudo
  2. cd새 사용자 디렉터리를 배치할 디렉터리를 사용합니다 . 내 경우에는 디렉토리가/home/ssd2
  3. 새로운 사용자를 위한 디렉토리를 생성 하기 위해 mkdir제 경우에는mkdir yuwen
  4. sudo chown yuwen:yuwen /home/ssd2/yuwen새로운 사용자에게 소유권을 부여하는 데 사용됩니다 .
  5. 사용 sudo chmod -R yuwen /home/ssd2/yuwen, 승인

그런 다음 , su yuwen이어서 을 사용하여 올바른 디렉토리에 있는지 확인할 수 있습니다.cd ~pwd

관련 정보