Linux:允许SSH控制台登录,但不允许基于GDM/KDM/X Windows的登录

时间:2020-01-09 10:43:16  来源:igfitidea点击:

我只想允许ssh或者基于控制台的登录(ssh,su,sudo命令),但限制特定用户在Linux操作系统下使用基于GDM/KDM/X Windows的登录。
如何停止使用GDM/KDM/X Windows登录管理器直接进行GUI用户登录,而仅允许基于文本的登录?

GNOME显示管理器(GDM)或者KDE显示管理器(KDM)为X Window Systems XDM提供了一个更简单的替代(作为XDM的替代品)显示管理器。
限制对GDM/KDM的访问的最简单方法是对GDM或者KDM使用可插拔身份验证模块,该模块为Linux系统中的应用程序和服务提供动态授权。

步骤1:创建拒绝用户列表

创建一个名为/usr/local/etc/kdm.deny或者/usr/local/etc/gdm.deny的文本文件,执行:

# vi /usr/local/etc/gdm.deny

将每个用户名添加在单独的行中。
在此示例中,拒绝访问用户的tom,jerry,spike,tyke,butch等:

tom
jerry
spike
tyke
butch

保存并关闭文件。
您可以使用ln命令对kdm使用相同的文件:

# ln -s /usr/local/etc/gdm.deny /usr/local/etc/kdm.deny

这些文件中存在的任何用户名将不再能够通过GDM(GNOME)或者KDM(KDE)系统登录。
但是,这些用户仍可以使用ssh登录或者使用su和/或者sudo命令登录。

步骤2:限制GDM用户登录

编辑/etc/pam.d/gdm,执行:

# vi /etc/pam.d/gdm

追加/修改行,如下所示:

auth   required   pam_listfile.so onerr=fail item=user sense=deny file=/usr/local/etc/gdm.deny

保存并关闭文件。

步骤3:限制KDM用户登录

编辑/etc/pam.d/kdm,执行:

# vi /etc/pam.d/kdm

追加/修改行,如下所示:

auth   required   pam_listfile.so onerr=fail item=user sense=deny file=/usr/local/etc/gdm.deny

保存并关闭文件。