linux 用户名限制,linux限制用户登陆的一些方法

以下均以redhat 为例,其他的发行版没测过,没把握的千万不要在正式机上玩,登录不上就麻烦了。

一、限制终端登陆

/etc/securetty文件限制“root”用户可以从那个TTY设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录,这个只针对root用户。

[root@localhost ~]#vi /etc/securetty

console

vc/1

--------略-------

vc/11

tty1

tty2

#tty3

#tty4

#tty5

#tty6

#tty7

#tty8

#tty9

#tty10

#tty11

这个只是限制终端登录,简单的说就是直接在服务器上连上显示器、键盘来本地操作的那种,对ssh(ssh使用pts)远程登录没有影响;如上修改完后就只能通过终端tty1和tty2登录了,如果你按ALT+F[3-6]切换终端登录会报login incorrect错误。

默认情况下是允许root从6个终端登陆,可以修改文件/etc/init/start-ttys.conf更改。

二、限制ssh登录

[root@localhost ~]#vi /etc/ssh/sshd_config

1)限制root用户通过ssh登录: PermitRootLogin no

2) 设定允许/拒绝个别组通过ssh登录:AllowGroups/DenyGroups remote  允许/拒绝remote这个组的用户远程登陆

3) 设定允许/拒绝个别用户通过ssh登录:AllowUsers/DenyUsers  user1 user2 user3  允许/拒绝user[123]  三个用户访问, 这个可以用正则表达式,如:

AllowUsers/DenyUsers user* 以^user开头的用户

AllowUsers/DenyUsers [^user] 非以user开头的用户名

此外更严格一点还可以只限制/允计从某台服务器过来的用户

AllowUsers user1@192.168.1.100

4)修改配置文件后重启sshd(/etc/init.d/sshd restart)服务后生效

三、  限制用户登陆的时间

需用到pam模块pam_time.so

1) ssh

[root@localhost ~]#vi /etc/pam.d/sshd

#%PAM-1.0

auth       include      system-auth

account    required     pam_nologin.so

account    required     /lib64/security/pam_time.so  //添加这一行

----- 略------

2) 终端登录

[root@localhost ~]#vi /etc/pam.d/login

#%PAM-1.0

auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

auth       include      system-auth

account    required     pam_nologin.so

account    required     /lib64/security/pam_time.so  //添加这一行

----- 略------

3)配置time.conf

[root@localhost ~]# vi /etc/security/time.conf

time.conf配置文件格式:services;ttys;users;times

services — pam服务名列表,可以ls /etc/pam.d查看

tty —终端名.

users —用户名

times —可以使用services 的时间段

示例如下:

sshd;*;apptest;Al1400-2000  //限制apptest用户只能在中午2点到晚上8点这段时间通过ssh登录

login;*;user01;Al1400-2000 //限制user01用户只能在中午2点到晚上8点这段时间通过终端登录

sshd;*;!root;!Al0000-2400   //除了root用户外,其他用户都不能登录

time.conf的详细配置方法请 man time.conf

四、  限制同一用户登陆的数量

linux是个多用户系统,同一个用户名可以多个人使用且同时登录,如果想限制只能有一个用户登录系统,可以做如下设置

[root@localhost ~]#vi /etc/security/limits.conf

添加:

abc     -     maxlogins     1

设置后,用户名abc的最大登录数量为1,不管是通过本地终端或是SSH等远程登录,如果登录的数量超过1个即会拒绝,如

[root@localhost ~]# ssh abc@192.168.22.238

abc@192.168.22.238's password:

Too many logins for 'abc'.

Last login: Thu Jun 14 17:17:52 2012

Connection to 192.168.22.238 closed.

[root@localhost ~]# ssh abc@192.168.22.238

abc@192.168.22.238's password:

Too many logins for 'abc'.

Last login: Thu Jun 14 17:17:52 2012

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值