현재 CentOS 시스템(Gnome 데스크탑 포함)을 사용하고 있으며 허용되지 않은 사용자의 콘솔 사용을 비활성화하고 싶습니다. 실제로 표준 사용자로 로그인하면 내 응용 프로그램이 실행되고 데스크탑에 액세스할 수 없지만 사용자는 여전히 VT 스위치를 사용하여 일부 명령을 실행할 수 있습니다. 반면에 관리자로 로그인하면 데스크탑이 시작됩니다.
내가 하고 싶은 것은 표준 사용자가 명령을 실행하는 것을 방지하고 관리자가 명령을 실행할 수 있도록 하는 것입니다.
/etc/X11/xorg.conf
지금까지 터미널 전환( )을 성공적으로 비활성화하도록 수정을 시도했지만 Option "DontVTSwitch" "True"
모든 사용자가 이를 사용할 수 없게 되었습니다.
질문:
한 사용자에게는 VT 전환을 허용하고 다른 사용자에게는 비활성화할 수 있는 방법이 있습니까?
답변1
당신은 그것을 사용할 수 있습니다pam_timePAM 모듈은 특정 tty(및 이 모듈의 주요 목적인 하루 중 특정 시간)의 특정 사용자에 대한 로그인을 제한합니다.
따라서 루트를 제외한 모든 사용자가 tty0부터 tty7(즉, 일반적으로 활성화된 모든 VT)에 로그인하는 것이 허용되지 않는다는 것을 시스템에 알리려면 다음 줄을 다음 줄에 추가하세요 /etc/security/time.conf
.
login ; tty0|tty1|tty2|tty3|tty4|tty5|tty6|tty7 ; !root ; !Al0000-2400
그런 다음 account
의 첫 번째 줄이나 그 근처에 다음 줄을 추가합니다 /etc/pam.d/login
.
account required pam_time.so
사용자는 여전히 gdm 로그인 화면을 사용하여 로그인할 수 있습니다. 로그인 전(또는 로그인 후)에 VT로 전환할 수는 있지만 로그인 및 비밀번호 프롬프트만 표시되면 VT에 성공적으로 로그인할 수 없습니다.
CentOS 6.6에서 테스트되었습니다.
답변2
CentOS 7을 실행 중인 경우 systemd-logind 서비스가 이 문제를 처리할 수 있습니다. 세션 전환 관리 및 다중 시트 관리를 담당합니다. loginctl 명령이 이를 제어합니다. 아래의 loginctl 링크에는 사용 가능한 모든 플래그가 있습니다.
http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html http://www.freedesktop.org/software/systemd/man/loginctl.html