"useradd -ms `which false`"를 통해 사용자를 생성하면 정확히 무슨 일이 발생합니까?

"useradd -ms `which false`"를 통해 사용자를 생성하면 정확히 무슨 일이 발생합니까?

나는 이 명령을 사용하여 사용자의 로그인을 방지할 수 있다고 저자가 말한 비디오를 보고 있었습니다.

useradd -ms `which false` u2

아래는 내 테스트입니다.

[root@192 ~]# tree -dL 1 /home
/home
├── u1
└── user1

2 directories
[root@192 ~]# useradd -ms `which false` u2
[root@192 ~]# tree -dL 1 /home
/home
├── u1
├── u2
└── user1

3 directories
[root@192 ~]# passwd u2
Changing password for user u2.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@192 ~]# logout
[u1@192 ~]$ whoami
u1
[u1@192 ~]$ logout
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password: 
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password: 
Last login: Tue Apr 19 11:22:01 PDT 2022 on pts/0
[user1@192 ~]$ whoami
user1
[user1@192 ~]$

제 생각엔 오류가 없어서 사용자가 성공적으로 로그인할 수 있을 것 같은 느낌이 듭니다. 그리고 보시다시피 다시 로그인을 시도하면 마지막 로그인 시간까지 알려주네요. 사용자가 연결하자마자 연결이 끊어지는 것뿐입니다. 이게 진짜야? 아래에서 정확히 무슨 일이 일어났나요?

답변1

옵션 -s(useradd매뉴얼 페이지) 예:

-s, --shell SHELL
사용자의 로그인 셸 이름입니다.

그리고 `which false`명령에 대한 경로만 주어지면 false종료만 수행됩니다(오류가 발생하지만 상관없습니다).

따라서 대부분의 경우 사용자는 잘 작동합니다. 단지 쉘이 실행되지 않아 실제로 아무것도 할 수 없다는 것입니다.

아마 그래야 할 거야아니요비밀번호를 만든 다음 다음과 같은 것을 사용하십시오 usermod -L u2.매뉴얼 페이지) 계정 비밀번호 잠금 또는 chage(매뉴얼 페이지) 사용하려는 작업에 따라 계정을 만료합니다.

/etc/shadow(커널에 관한 한, 비밀번호를 잠그거나 계정이 만료되도록 하는 것은 전혀 아무 일도 하지 않습니다. 단지 로그인 등과 관련된 다양한 도구 및 라이브러리일 뿐입니다. 저 내용을 보십시오.)

관련 정보