비 로그인 사용자를 어떻게 만들 수 있습니까?


134

subversionRHEL 5 시스템에서 호출되는 사용자와 그룹을 만들고 싶습니다 . 나는 man 페이지를 보았고 useradd명령은 단지 ...

useradd subversion

그러나 홈 디렉토리 작성을 피하는 방법을 잘 모르겠습니다. 또한 시스템에 로그인 할 수있는 사용자가되고 싶지 않습니다.

주요 목적은 SVN 저장소의 소유자를 제공하는 것입니다.


실제로 useradd 매뉴얼 페이지를 보았고 -M을 찾지 못했습니다 (HOME 디렉토리를 만들지 마십시오)?
inemanja

답변:


76

-M스위치 를 사용하여 (자본인지 확인) 홈 디렉토리가 작성되지 않도록하십시오.

useradd -M subversion

로그인을 방지하기 위해 계정을 잠그십시오.

usermod -L subversion

59
이것은 특히 강력한 대답은 아닙니다.이 방법으로 만든 사용자는 여전히 셸을 가지고 있습니다. 그리고 당신은 OP에게 이것이 사실이라는 경고조차하지 않았습니다. 돌이켜 그 것이다 usermod -s /bin/false subversion, 또는과 --shell /bin/falseuseradd
리 Hambley

7
@ 부리 계정이 잠기고 쉘이 문제가된다.
John T

15
@beak은 실제로 루트 사용자 만이 잠긴 계정으로 su를 할 수 있지만, 이미 루트 액세스 권한을 가진 사람이 왜 귀찮게합니까? 그리고 쉘을 설정하는 것은 사용자가 su -s /bin/bash username그것을 실행 하고 우회 할 수있을 때별로하지 않습니다 .
John T

11
토론에 시간을 내 주셔서 감사합니다. 물론 옳습니다. 그러나 쉘이 정의되어있는 비 로그인 사용자를 보는 것은 고통스럽고, 게으른 것으로 나타났습니다. 누군가 시스템에 익숙하지 않은 경우 우발적으로 의도하지 않은 작업을 수행 할 수없는 것이 좋습니다. 해커는 다른 유형입니다. 이미 컴퓨터에 쉘을 가지고 있다면 기본적으로 게임 이상이라고 생각합니다.
Lee Hambley

11
이 의견은 제가 배우고 싶어했던 것들을 정확하게 다루었습니다. @Beaks && John T
Rixius

220

useradd -r subversion

man useradd:

-r, --system create a system account

-r 플래그는 시스템 사용자 (비밀번호, 홈 디렉토리가없고 로그인 할 수없는 사용자)를 작성합니다.


1
이 명령은 동일한 사용자라는 그룹을 만듭니다. 따라서 "subversion"사용자는 "subversion"그룹에 속합니다. 나중에 "sudo chown -R subversion : subversion / path / to / folder"를 수행하려는 경우에
적합

49
-r만으로도 여전히 로그인 할 수 있습니다. 사용자 쉘을 비활성화하려면 -s / bin / false가 필요합니다.
c4il

8
@ c4il 그러나 그들에게 로그인 할 수있는 유일한 것은 루트입니까? 나는 그들이 암호를 가지고 있지 않다는 것을 의미한다. 그래서 나는 루트 만이 그것들에 로그인 할 수있을 것이라고 기대할 것이다.
Camilo Martin

어쨌든 암호를 할당 할 수 있습니다 passwd subversion.
Shayan

@rynop 내 컴퓨터 사용자가 시스템 사용자인지 어떻게 확인할 수 있습니까? 어떤 방법이 있습니까? 나는 그들이 초보자를위한 sudo'ers 그룹에 없다고 생각합니다.
Shayan

22

다음을 사용하여 시스템 사용자를 작성하는 또 다른 솔루션 adduser :

adduser --system --no-create-home --group yourusername

--group그룹 yourusername --no-create-home이 필요하지 않고이 사용자에 대한 집이 필요한 경우 제거 할 수 있습니다 .

주석에서 py4on이 언급했듯이 일부 시스템 --disabled-login에서는이 사용자의 로그인을 비활성화하기 위해 옵션 을 사용해야 할 수도 있습니다 . 그렇지만 데비안에서는 기본 동작 인 것 같습니다.

사용자의 숫자 ID는 시스템 계정임을 유의하십시오. --uid그러나 옵션을 사용하여 uid를 수정할 수 있습니다 .

마지막으로, 일부 시스템 (예 : Fedora) adduser은에 대한 심볼릭 링크이므로이 useradd답변은 유효하지 않습니다.


3
해결하기 위해 깃발을 추가 "나는이 로그인 할 수있는 사용자 싶지 않다" --disabled-login(이전뿐만 아니라 yourusername)
toxefa

@ py4on :이 옵션은 맨 페이지에 설명되어 있지만 적어도 데비안에서는 기본값 인 것 같습니다.
Skippy le Grand Gourou

15

원래 질문에 대한 가장 확실한 대답은 다음 명령을 실행하는 것입니다.

adduser subversion --shell=/bin/false

그리고 홈 디렉토리를 원하지 않으면 :

adduser subversion --shell=/bin/false --no-create-home

또는 훨씬 더 잠겨있는 시스템 사용자를 원할 경우 (일반적으로 홈 디렉토리를 만들지 않습니다-아래 주석에 따라 Linux 민트에 여전히 홈 디렉토리를 생성한다고보고되었습니다)

adduser subversion --system --group

이 모든 명령은 사용자와 이름이 같은 그룹을 만듭니다.


민트에서 마지막 명령은 확실히 홈 디렉토리를 만듭니다.Creating home directory '/home/nodejs' ...
jcollum

11

이를 수행하는 가장 안전한 형태는 다음 adduser과 같이 사용하는 것입니다.

$ adduser -r -s /bin/nologin subversion

참고 : 포함해야합니다 -s /sbin/nologin계정에 제공되는 모든 로그인 쉘을 해제 할 수 있습니다.

설정 확인

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

그러나 디렉토리가 없습니다 :

$ ll /home | grep subversion
$

다른 방법으로 계정을 사용할 수 있는지 확인하십시오.

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

제거

이 계정을 제거해야하는 경우 :

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

그리고 확인 :

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

1
adduser가 -r 옵션을 인식하지 못합니다. 나는 당신이 useradd를 의미한다고 생각합니다.
felwithe

@felwithe 아니오, 내가 작성한 모든 답변은 게시하기 전에 항상 테스트합니다. 확인했고 그 스위치는 CentOS 6.x 시스템에 표시됩니다.
slm

결과 는 다음과 같습니다 . 우분투 16 LTS에 있습니다. 어떤 버전의 adduser가 설치되어 있는지 모르지만 시간이 지남에 따라 또는 시스템마다 크게 바뀌는 것을 상상하지 못했습니다. 그런 다음 --system 플래그를 사용하여 시도했지만 사용자의 homedir을 만들었습니다 (필자는 원하지 않았습니다). 마지막으로 adduser 대신 useradd를 사용하여 계획대로 작동했습니다. 방금 useradd로 가정했을 때 adduser로 잘못 입력했다고 가정했습니다.
felwithe

@ felwithe 그래, 나는 당신을 의심하지 않고 단지 8-) 시도했다는 것을 알려줍니다. 나는 유닉스와 리눅스 사이트의 모드이며 이러한 cmd는 흑백 배포판으로 유명합니다. OP는 질문에 RHEL을 언급했기 때문에 내가 왜 그렇게 대답했는지, 그들은이 Q & A IMO에 대한 혼란의 일부인 빨간 모자로 태그를 지정하지 않았습니다.
slm

1

CentOS 7 시스템에서

  • 사용자가 존재하지 않는 경우 :
    useradd testuser --shell=/sbin/nologin

  • 기존 사용자를 수정하려는 경우 :
    usermod testuser --shell=/sbin/nologin


0

다음을 수행하여 최대 8 자 길이의 사용자에 대한 암호화 된 비밀번호를 생성하여 시작하십시오.

openssl passwd -crypt new_password_less_than_eight_chars_long

그런 다음

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username

0

데비안에서는 시스템 사용자 (홈 디렉토리없이)와 로그인 쉘을 만들 수 있습니다 :

useradd --system --shell=/usr/sbin/nologin <username>

귀하의 경우 nologin프로그램에 /sbin/nologin, 적절하게 변경하십시오.

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