脚本小练——用户认证

需求:输入用户名和密码,认证成功后显示欢迎信息,输错三次后锁定

shell:

#!/bin/bash
# Auth user login

user="hlf"
pass="123456"
lock_file=login.lock
[ -f ${lock_file} ] || touch ${lock_file}

for i in `seq 3`
do
        read -p "username:" username
        read -p "password:" password

        if [ -z "$username" -o -z "$password" ];then
                echo "用户名和密码不能为空,请重新登陆:"
                LoginSuccess=‘false‘
        elif grep -q "\b$username\b" ${lock_file};then
                echo "账户被锁定,请联系管理员!"
                LoginSuccess=‘lock‘
        else
                if [ "$username" = $user -a "$password" = $pass ];then
                        echo "welcome to my system"
                        LoginSuccess=‘true‘
                else
                        echo "用户名或密码错误,请重新登陆:"
                        LoginSuccess=‘false‘
                fi
        fi
        [ $LoginSuccess = true -o $LoginSuccess = lock ] && break

done
if [ $LoginSuccess = false ];then
        echo "登陆三次失败,账户被锁定!!!" 
        [ -z "$username" ] || echo "$username" >> ${lock_file}
fi

python:

user.txt格式:

用户名 密码

#encoding: utf-8
#!/usr/bin/python
# Auth user login

user_file = "user.txt"
lock_file = "login.lock"

#生成字典,保存用户名密码
user_dict = {}
f = file(user_file)
for line in f.readlines():
        user_dict[line.split()[0]] = line.split()[1]
f.close()

#定义元组,保存被锁定的账户
lock_tup = ()
f = file(lock_file)
for line in f.readlines():
        line = line.strip(‘\n‘)
        tup = (line,)
        lock_tup = lock_tup + tup
f.close()

#用户认证
for i in range(3):
        username = raw_input("username:").strip()
        password = raw_input("password:").strip()

        if len(username) == 0 or len(password) == 0:
                print "用户名和密码不能为空,请重新登陆:"
                LoginSuccess=‘false‘
        elif username in lock_tup:
                print "账户被锁定,请联系管理员!"
                LoginSuccess=‘lock‘
        else:
                if  password == user_dict[username]:
                        print "welcome to my system"
                        LoginSuccess=‘true‘
                else:
                        print "用户名或密码错误,请重新登陆:"
                        LoginSuccess=‘false‘
        if LoginSuccess == "true" or LoginSuccess == "lock":break

#循环三次后
if LoginSuccess == "false" and username != "":
        print "登陆三次失败,账户被锁定!!!"
        f = file(lock_file,‘a‘)
        f.write(username + ‘\n‘)
        f.close
时间: 2025-01-21 21:16:43

脚本小练——用户认证的相关文章

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

一.nginx的配置( nginx.conf) 1.nginx的主配置文件位置: /usr/local/nginx/conf/nginx.con 2.清空  /usr/local/nginx/conf/nginx.con默认的配置文件内容 [[email protected] ~]# > /usr/local/nginx/conf/nginx.conf >:重定向的意思,单独使用,可以把一个文本文档快速清空 3.拷贝一下代码到/usr/local/nginx/conf/nginx.conf文件

apache工作机制,压缩,虚拟主机,用户认证

从服务器角度一次web资源请求具体过程 建立连接:tcp三次握手 接收请求 处理请求 访问资源 构建响应报文 发送响应 记录日志 =================================================================== httpd工作模型 阻塞模型,单进程模型.缺点:每次只能响应一个请求,对于现代的高并发无满足 只有一个进程,每次只能响应一个用户的请求 . 多进程模型,缺点:不停的创建和收回进程,进程间切换也耗费时间. httpd监听在套接字上,每当

Nginx简介及用户认证、访问控制和反向代理配置

Nginx 是一个很强大的高性能Web和反向代理服务器及及电子邮件(IMAP/POP3)代理服务器,由俄罗斯程序员设计师Igor Syaoev所开发,官方网站:http://nginx.org/  特点是占有内存少.并发能力强. Nginx配置文件及目录简介: - /usr/local/nginx/                                                           安装目录 - /usr/local/nginx/conf/nginx.conf  

Django 中的用户认证

Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任务的二进制(是/否)标志. 组:一种为多个用户加上标签和权限的常用方式. 消息:一种为指定用户生成简单消息队列的方式. Deprecated in Django 1.2: 认证系统的消息部分将会在 Django 1.4 版中去除. 安装 认证系统打包在 Django 的 django.contrib

3.12课程小练以及vim编辑器的基本用法(部分)

 课程小练 1. 通过man帮助手册,自行总结which.whereis.whatis命令的使用方法: which:展示出shell命令的完整路径: 格式: which [options] [--] programname [...] whereis:基于二进制的,有源的,和文件或命令的记录手册 格式:whereis [options] name... whatis:在 whatis 数据库里查找完整的单词 格式:whatis - 2. du命令: du - 报告磁盘空间使用情况 du -a,

Apache用户认证

背景:一般php写的用户认证,都是允许任何用户注册,然后可以登录:该用户认证需手动在Apache服务器端添加,认证后才能访问目录文件内容:不适合注册,仅适用于小范围内网,如校园网 1. 修改虚拟主机配置文件/usr/local/apache2/conf/extra/httpd-vhosts.conf <Directory /data/www/test>               # 主页根目录下建立需认证目录 AllowOverride AuthConfig                

文件共享与用户认证分离系统的搭建

###########cifs网络文件系统访问##1.安装共享访问客户端yum install samba-client -y 2.识别共享服务器共享目录smbclient -L //172.Enter root's password: Anonymous login successfulDomain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.12] Sharename       Type      Comment    ---------       ---

Nginx安装配置实现用户认证、反向代理、隐藏版本号

一.Nginx安装 1.检查并且安装依赖组件           检查安装nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel.pcre.pcre-devel如果没有,则全部装上          # rpm -qa | grep pcre  ##没有任何信息则没安装 2.安装pcre,pcre-devel # tar -zxvf pcre-6.6.9.tar.gz          # cd pcre-6.6.9/ 

Linux FTP服务器的搭建与配置+基于关系型数据库实现用户认证

一.服务器端的安装: yum install vsftpd 1)查看安装后生成的哪些文件 [[email protected] ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd  <==========主志日志文件 /etc/pam.d/vsftpd<==================认证文件 /etc/rc.d/init.d/vsftpd<=============服务脚本 /etc/vsftpd<======================