CentOS 7 서버는 다음에서 가져온 특정 홈 디렉터리와 셸을 사용하여 새 사용자를 생성해야 합니다.이 링크의 지침:
sudo /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
그러나 명령이 CentOS 7 서버에서 실행되면 다음 오류와 함께 명령이 실패합니다.
useradd: cannot create directory /opt/atlassian/bitbucket
마찬가지로 /opt/atlassian/bitbucket
디렉터리를 미리 생성하면 다음 오류가 발생합니다.
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
atlbitbucket
새 사용자를 성공적으로 생성 하려면 이러한 명령에 구체적으로 어떤 변경이 필요합니까 ?
전체 터미널 출력:
다음은 CentOS 7 터미널의 전체 명령 및 응답 시리즈입니다.
디렉터리를 수동으로 생성합니다.
login as: my_sudoer_user
[email protected]'s password:
Last login: Mon May 15 14:00:18 2017
[my_sudoer_user@localhost ~]$ sudo mkdir /opt/atlassian/
[sudo] password for my_sudoer_user:
[my_sudoer_user@localhost ~]$ sudo mkdir /opt/atlassian/bitbucket
[my_sudoer_user@localhost ~]$ sudo /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[my_sudoer_user@localhost ~]$ sudo rmdir /opt/atlassian/bitbucket
[my_sudoer_user@localhost ~]$ sudo rmdir /opt/atlassian/
권장 useradd
구문:
[my_sudoer_user@localhost ~]$ sudo /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
useradd: user 'atlbitbucket' already exists
[my_sudoer_user@localhost ~]$ sudo userdel -r atlbitbucket
userdel: atlbitbucket home directory (/opt/atlassian/bitbucket) not found
[my_sudoer_user@localhost ~]$ sudo /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
useradd: cannot create directory /opt/atlassian/bitbucket
[my_sudoer_user@localhost ~]$
adduser
바꾸다useradd
그런 다음 시도했습니다.다른 게시물의 @terdon 제안대신 사용했지만 adduser
다음과 같은 오류가 발생했습니다.
[my_sudoer_user@localhost ~]$ sudo userdel -r atlbitbucket
[sudo] password for my_sudoer_user:
userdel: atlbitbucket mail spool (/var/spool/mail/atlbitbucket) not found
userdel: atlbitbucket home directory (/opt/atlassian/bitbucket) not found
[my_sudoer_user@localhost ~]$ sudo adduser --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
adduser: cannot create directory /opt/atlassian/bitbucket
[my_sudoer_user@localhost ~]$
더 짧은 구문:
그런 다음 시도했습니다.@rajcoumar 동일한 게시물의 다른 게시물 제안, 그러나 다음과 같은 동일한 결과를 얻었습니다.
[my_sudoer_user@localhost ~]$ sudo userdel -r atlbitbucket
userdel: atlbitbucket mail spool (/var/spool/mail/atlbitbucket) not found
userdel: atlbitbucket home directory (/opt/atlassian/bitbucket) not found
[my_sudoer_user@localhost ~]$ sudo useradd -m -d /opt/atlassian/bitbucket -s /bin/bash atlbitbucket
useradd: cannot create directory /opt/atlassian/bitbucket
[my_sudoer_user@localhost ~]$
다음으로 승격 root
:
루트로 명령을 실행하여 문제를 해결할 수 있는지 확인하기 위해 업그레이드도 했지만 root
여전히 다음 오류가 발생합니다.
[my_sudoer_user@localhost ~]$ su -
Password:
Last login: Mon May 15 14:07:11 PDT 2017 on ttyS0
[root@localhost ~]# /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
useradd: cannot create directory /opt/atlassian/bitbucket
[root@localhost ~]#
답변1
이것사용자가 코드를 추가했습니다.부르다목차라이브러리 함수는 지정된 디렉터리를 생성하려고 시도합니다. useradd는 반환 코드를 확인하지만 0이 아닌 경우에만 ENOENT -- A directory component in pathname does not exist or is a dangling symbolic link
상위 디렉터리(/opt/atlassian)가 존재하지 않거나 사용자를 추가하는 동안 삭제되었기 때문에 mkdir이 반환되는 것으로 의심됩니다.
Kusalananda/roaima가 지적했듯이 여기서 가장 간단한 해결책은 useradd를 호출하기 전에 상위 디렉터리 구조를 만드는 것입니다.
sudo mkdir -p /opt/atlassian
sudo /usr/sbin/useradd --create-home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket
답변2
사용자와 사용자의 홈 디렉터리를 만드는 데 사용되는 명령은 홈 디렉터리의 바로 상위 디렉터리가 이미 존재하는 경우에만 홈 디렉터리를 만들 수 있습니다. 홈 디렉터리가 있어야 하는 상위 폴더를 찾을 수 없거나 홈 디렉터리가 이미 존재하는 경우 실패합니다.
이것은 의미한다
$ mkdir -p /some/dir/myhome
$ useradd --home-dir /some/dir/myhome ...
/some/dir/myhome
있기 때문에 실패할 것이고 ,
$ rm -rf /some/dir
$ useradd --home-dir /some/dir/myhome ...
/some/dir
존재하지 않기 때문에 실패합니다 .
생성하려는 디렉터리가 홈 디렉터리에 있는지 확인하세요. 즉, 귀하의 경우에는
mkdir -p /opt/atlassian