사용자가 ” su -
user ” 를 사용하여 로그인하도록 허용 하지만 SSH를 사용하여 로그인하지 못하게하려면 어떻게합니까?
쉘을 설정하려고 시도했지만 시도 할 /bin/false
때 su
작동하지 않습니다.
로만 로그인을 허용하는 몇 가지 방법이 su
있습니까?
SSH가가 AllowUser
는 길입니까? (가는 길이면 어떻게해야합니까)
답변
로그인이 허용 되지 않는 사용자 / 그룹이 몇 개인 경우 ssh 또는 DenyUsers / DenyGroups 를 통해 로그인 할 수있는 사용자 / 그룹이 몇 개인 경우 AllowUsers / AllowGroups를 사용할 수 있습니다 . 이것은 ssh를 통한 로그인 만 제한하며 다른 로그인 방법 (console, ftp, …)도 여전히 가능합니다. 대부분의 ssh 설치를 위해이 옵션을 / etc / ssh / sshd_config 파일에 추가해야 합니다.
로그인 쉘을 / bin / false 로 설정 한 경우 사용할 수 있습니다 su -s /bin/bash user
( / bin / bash 를 원하는 쉘로 대체 )
답변
여전히 su가 작동 하려면 su를 임시 쉘로 사용 sudo -u [username]
하거나 전달할 수 있습니다 -s /bin/bash
. 에 쉘이 없으면 둘 다 동일하게 수행됩니다 /etc/passwd
.
답변
계정에 비밀번호가없는 경우 ( passwd -d username ) 대화식으로 로그인 할 수 없습니다 (콘솔, SSH 등). 그것들이 유효한 쉘을 가지고 있다면, su 는 여전히 작동합니다. “대화식으로”참고하십시오. 누군가 계정에 SSH 키 쌍을 설정하기로 결정하면 작동합니다!
답변
sshd_config에서 줄을 추가하십시오 DenyUser [username]
이렇게해도 사용자가 콘솔을 통해 로그인하는 것을 막을 수는 없습니다.
답변
위에서 언급 한 것 (사용자 비밀번호 비활성화 및 / 또는 설정 안함) 외에도 pam_access 모듈 (pam_access 및 access.conf의 man page 조회)을 사용하여 로그인 액세스를 제어 할 수 있습니다.
답변
다른 사람들이 말했듯이;
DenyUser username
또는 DenyGroup groupname
으로는 sshd_config
ssh를 통해 키 쌍 / 암호 로그인을 방지합니다.
비록 일반적으로 AllowGroup ssh
그 라인을 따라 비슷한 것을 수행하고 해당 그룹에 ssh 액세스가 필요한 사람들을 명시 적으로 추가합니다.
그런 다음 다른 사람의 말대로 할 수 있습니다 passwd -d username
. 사용자 암호를 비워서 콘솔이나 다른 방법으로 로그인 할 수 없습니다. 또는 passwd -l username
계정을 ‘잠그는’ 것이 좋습니다 . ssh는 키를 사용하더라도 잠긴 계정에 대한 액세스를 거부 할 수는 있지만 긍정적이지 않습니다.
답변
의견에서 언급했듯이 여전히 유효하지 않은 쉘을 가진 계정으로 소송을 제기 할 수 있다고 생각합니다. 따라서 사용자의 쉘을 / dev / null로 설정하거나 bin의 쉘이 무엇이든간에 여전히 해당 사용자에게 su 할 수 있어야하지만 어떤 식 으로든 로그인하려고하면 다시 종료됩니다 …