Ubuntu 14.04 : 명령 줄에서 만든 새 사용자 기능이 없습니다


17

bash 명령 줄에서 Ubuntu 14.04 LTS에 새 사용자를 만들려고합니다. 다음 명령을 사용합니다.

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

이 새로운 사용자를 만든 후 3 가지 문제가 발생했습니다.

  1. 사용자 sam을 사용하여 Ubuntu에 로그인 할 수 없습니다. 로그인 할 때마다 로그인 화면으로 돌아갑니다.

  2. /etc/passwd파일을 살펴보면 sam 사용자에 대해 정의 된 기본 쉘이 없음을 알 수 있습니다.

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Sam의 홈 폴더가 생성 /home/sam되지 않았습니다. 즉 존재하지 않습니다.

이 모든 문제를 일으킬 수있는 것에 대한 단서가 있습니까?

Unity 제어 센터를 사용하여 사용자를 만들 때 이러한 문제가 발생하지 않습니다. 그러나 수십 명의 사용자를 만들었으므로 명령 줄을 사용하고 싶습니다.

답변:


29

먼저 useradd가 아닌 adduser를 사용하는 것이 좋습니다.

이제 명령으로 돌아가십시오.

다음과 같은 방법으로 명령을 실행해야합니다.

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

 -m, --create-home
           Create the user's home directory if it does not exist. The files
           and directories contained in the skeleton directory (which can be
           defined with the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not
           enabled, no home directories are created.

따라서 -s로그인 쉘을 추가하고 -m집을 만드는 데 사용 하는 것을 그리워합니다 .

동시에 여러 사용자를 추가하려면 명령을 사용하는 것이 좋습니다 newusers. 작업을 단순화합니다.

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

다음은 newusers명령 에 대한 튜토리얼입니다 .


"알 수없는 옵션 m"이 표시되는 이유는 무엇입니까? 14.04를 실행하는 AWS Ubuntu 인스턴스에 있습니다.
Donato

2

사용자 만들기

사용자의 홈 디렉토리 생성

로그인 쉘 정의

useradd -m -d /home/username username -s /bin/bash

사용자 삭제

삭제 자 사용자의 홈 디렉토리

userdel -r username

1

플래그가 누락되고 다른 답변이 반드시 잘못된 것은 아니지만 향후 더 포괄적으로 사용하려면 adduser를 실행하는 것이 좋습니다. 더 아름다운 useradd 버전입니다. 즉, useradd와 달리 기본적으로 홈 디렉토리를 만듭니다. 또한 많은 것들을 요청할 때 / etc / passwd 파일에 인라인을 저장하므로 아무것도 채울 필요가 없습니다.


1

모두 감사합니다. 귀하의 답변으로 다음 명령 줄을 사용하여 문제를 해결할 수있었습니다.

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

비밀번호는 passwd이미 암호화되어 있습니다 (그렇지 않으면 "hello-1234"는 / etc / passwd에서 암호화되지 않은 것으로 나타남).


0

useradd 명령에 플래그가 없습니다. 사용자 디렉토리를 작성하려면 '-m', bash 쉘을 추가하려면 '-s / bin / bash'. 기본값은 사용자 디렉토리를 작성하지 않고 기본 쉘을 지정하는 것입니다. 우분투 14.04가 기본 쉘로 blank를 사용하는 것처럼 보이기 때문에 시스템을 테스트 할 때도 동일한 작업을 수행했습니다. 쉘이 없으므로 로그인 할 수 없습니다.

터미널에서 기존 사용자에 대한 기본 홈 디렉토리를 만듭니다 (질문 335961, 3 차 답변)

useradd에 대한 Ubuntu 맨 페이지에서

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

모든 사용자의 기본 셸을 어떻게 bash로 변경합니까? 질문 335961

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