显示行数 设置ssh终端_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
總結
以上是生活随笔為你收集整理的显示行数 设置ssh终端_linux限制用户登陆的一些方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hql懒加载后判断对象是否存在_hibe
- 下一篇: 把数据保存到cook_JavaScrip