Linux에서 "게스트" 계정을 만드는 것이 가능합니까? "게스트" 계정이란 암호를 요구하지 않고 그래픽으로 로그인할 수 있는 계정을 의미합니다.
사람들이 와서 "컴퓨터를 사용하여 내 이메일을 확인할 수 있나요?"라고 물을 때 이 계정을 사용하고 싶습니다. 그렇게 하면 그들이 내 물건을 엿보는 것에 대해 걱정할 필요가 없습니다.
나는 이들 중 일부가 로그인 관리자에 특정한 작업을 수행해야 할 수 있다는 것을 알고 있으며 이것이 일반적인 문제이므로 놀라지 않을 것입니다. 및 내가 가지고 있지 않은 다른 로그인 관리자에 대한 지침을 포함하는 것이 가장 좋습니다 xdm
. 나열되어 있습니다.kdm
gdm
답변1
예, 비밀번호 없는 계정을 만들 수 있습니다.
sudo useradd -m guest
sudo passwd -d guest
sshd
그러나 네트워크 데몬이 비밀번호 없는 계정에 대한 액세스를 허용하지 않도록 하는 것이 중요합니다 . 이는 일반적으로 기본값이지만 확인해 보는 것이 좋습니다. PermitEmptyPasswords
아니오/거짓인지 확인 /etc/ssh/sshd_config
하거나 게스트에 SSH를 시도하여 허용되는지 확인하세요. Samba와 같은 다른 데몬도 확인해야 합니다. 로컬 파일에 대한 사용자 액세스를 제한하려면 chroot 등을 설정하거나 pam_chroot.so
데이터를 자신에게만 제한할 수 있습니다. 홈 디렉토리를 사용하면 "다른" 클래스가 파일을 읽고 필요하다고 생각되는 다른 위치를 잠그는 것이 허용되지 않습니다.
답변2
죄송합니다. 요청하신 내용을 실제로 수행할 수 있는 방법은 없습니다. 하지만 이 답변이 여전히 도움이 될 것이라고 생각합니다.
"셸 액세스 없음"이란 무엇을 의미합니까? 사용자가 몇 가지 응용 프로그램(예: 웹 브라우저 및 메일 클라이언트)만 사용해야 한다는 의미입니까? 그렇다면 애플리케이션이 실수로 사용자가 임의의 명령을 실행하도록 허용하지 않는지 확인해야 합니다. 이는 실제로 보장하기 어렵습니다.
이것은 종종 호출됩니다.누각설정. 리눅스 키오스크 프로젝트는 많지만 대부분은 다른 계정과 공존해야 하는 키오스크 계정보다는 키오스크 머신을 만드는 것을 목표로 하고 있습니다.
키오스크 계정은 보안이 더 어렵습니다. 게스트가 공개적으로 읽을 수 있는 파일을 스누핑하는 것을 방지하려면(또는 모든 권한을 수동으로 강화하지만 사용자 목록( /etc/passwd
) 과 같은 일부 항목은 보호하기 어려운 경우) SELinux 또는 가상화 기술과 같은 것을 사용해야 할 것 같습니다 . 나는 이 기능을 기본적으로 제공하는 프로젝트를 모릅니다.
VirtualBox를 사용하여 게스트 가상 머신을 설정하는 것은 비교적 쉽습니다.VirtualBox에는 키오스크 모드가 있습니다여기에서 GUI의 모든 VM 제어를 비활성화할 수 있습니다. 그런 다음 VM을 X 서버의 유일한 애플리케이션으로 실행할 수 있습니다. 사용하지 않을 때는 다른 콘솔을 잠가두세요. 짜잔, 키오스크가 생겼습니다. 물론 가상 머신은 어떤 폴더도 공유해서는 안 되며 해당 네트워크는 나가는 NAT 연결로 제한되어야 합니다.
가상 머신 내에서 키오스크 설정을 실행할 수 있지만 이것이 꼭 필요한 것은 아닙니다. 가상 머신의 스냅샷을 찍고 게스트 사용 후 스냅샷을 삭제하기만 하면 됩니다. 업그레이드를 수행해야 하는 경우 스냅샷으로 시작하여 업그레이드한 후 새 스냅샷을 만드세요.
게스트 사용자로 돌아가면(게스트 제한은 여기서 다루지 않음) 인증과 관련하여 각 로그인 관리자에서 설정할 것이 없습니다. PAM의 초점은 세션 유형에 독립적이라는 것입니다. 정상적으로 로그인할 수 없는 사용자를 생성하고 해당 사용자의 통과를 허용합니다.pam_userdb
승인하려는 로그인 방법에 대한 행(예: auth sufficient pam_userdb.so db=/etc/passwd_guest
in /etc/pam.d/?dm
, with /etc/passwd_guest
contain guest::9999:9999:/home/guest:/bin/sh
및 /etc/passwd
contain guest:x:9999:9999:/home/guest:/bin/false
)