계정을 비활성화하지 않고 사용자 로그인 비활성화

계정을 비활성화하지 않고 사용자 로그인 비활성화

adduser이 명령을 사용하여 "bogus"라는 사용자를 생성한다고 가정해 보겠습니다 . 계정을 비활성화하지 않고 이 사용자가 실행 가능한 로그인 옵션이 아닌지 어떻게 확인할 수 있습니까? 간단히 말해서, 계정에 액세스할 수 있기를 원 su - bogus하지만 일반 로그인 프롬프트를 통해 액세스하고 싶지는 않습니다.

주위를 둘러보면 이 사용자의 비밀번호를 비활성화해야 할 것 같지만 passwd -d bogus소용이 없습니다. 사실, 이제는 비밀번호를 입력하지 않고도 가짜 계정에 로그인할 수 있기 때문에 상황이 더욱 악화되었습니다.

특정 계정에 대한 일반 로그인을 비활성화하는 방법이 있습니까?

참고: 명확하게 말하면 그래픽 로그인 화면(예: gdm)의 메뉴 옵션에서 사용자를 제거하는 방법을 알고 있지만 이러한 방법은 실제로 로그인을 비활성화하지 않고 계정을 숨길 뿐입니다. 텍스트 모드를 포함하여 일반 로그인을 완전히 비활성화하는 방법을 찾고 있습니다.

답변1

passwd -l user

당신이 원하는 것.

그러면 사용자 계정이 잠깁니다. 하지만 넌 아직 할 수 있어

su - user

하지만 su - user루트여야 합니다.

!또는 사용자 비밀번호 앞에 를 추가하여 동일한 작업을 수행할 수 있습니다 /etc/shadow(이 작업은 모두 passwd -l뒤에서 수행됩니다). 이 작업을 취소 합니다 passwd -u.

답변2

매뉴얼 페이지에는 다음과 passwd(1)같이 나와 있습니다 passwd -l.

이로 인해 계정이 비활성화되지는 않습니다. 사용자는 다른 인증 토큰(예: SSH 키)을 사용하여 계속 로그인할 수 있습니다. 계정을 비활성화하려면 관리자는 usermod --expiredate 1을 사용해야 합니다(이렇게 하면 계정 만료 날짜가 1970년 1월 2일로 설정됩니다).

그래서

usermod --expiredate 1 [LOGIN]

제 생각에는 사용자가 더 이상 사용해서는 안 되는 계정을 비활성화하는 올바른 방법입니다(예: 회사를 떠난 경우).

답변3

사용자의 로그인을 방지하는 방법에는 두 가지가 있습니다.

  1. 편집을 통해 사용자를 잠글 수 있습니다./etc/passwd
  2. passwd스위치를 직접 사용하여 -l명령 실행

두 번째 경우, 사용자는 다른 인증 토큰(예: SSH 키)을 사용하여 로그인할 수 있습니다.

방법 1

  1. nologin 위치 찾기: /bin/nologin 또는 /bin/sbin/nologin
  2. 터미널을 열고 루트로 로그인하세요
  3. 유형vi /etc/passwd

passwd이제 파일 키를 눌러 파일을 편집할 수 있습니다 Ins.

옵션을 사용하여 다음 줄을 변경합니다 nologin( /bin/bash이는 사용자가 로그인할 수 있음을 의미).

root:x:0:0:root:/root:/bin/bash

이에. nologin사용자가 로그인할 수 없음을 나타냅니다.

root:x:0:0:root:/root:/bin/nologin

(또는 /bin/sbin/nologin 사용)

  1. vi 닫기Esc :wq

방법 #2

사용자 잠금:passwd -l username

사용자 잠금 해제:passwd -u username

답변4

/bin/false쉘로 설정/etc/passwd

관련 정보