Linux基础-04-用户组+权限管理
Linux用户&组基础知识
Linux用户
管理员: root 0 (UID)
普通用户:1-65535
系统用户:1-499/1-999
登录用户: 500+ / 1000+
Linux组
管理员组: root 0
普通组:1-65535
系统组:1-499/1-999
登录用户组:500+ / 1000+
组类型:
基本组–主组: 组名会和用户名相同,且仅包含一个用户的组–私有组
附加组–额外组:一个用户可以属于多个附加组
Linux安全上下文
运行中的程序: 进程
进程能够访问的所有资源的权限在于进程发起者的用户身份
用户和组相关的配置文件
/etc/passwd : 用户及其属性信息(用户名称,用户ID,基本组ID等等)
/etc/group: 组及其属性信息
/etc/shadow: 用户密码及其属性信息
/etc/gshadow: 组密码及其属性信息
配置文件/etc/passwd:root:x:0:0:root:/root:/bin/bashusername:password:UID:GID:GECOS(用户注释信 ...
Linux基础-03-IO重定向+管道
重定向
输入输出
标准输入
标准输出 1
标准错误输出 2
输出重定向
>覆盖重定向
>>追加重定向
2>覆盖重定向错误输出流
2>>追加重定向错误输出流
123456789101112131415161718[root@test tmp]# echo "hello kinmfer"hello eagles[root@test tmp]# echo "hello kinmfer" > 2.txt[root@test tmp]# cat 2.txt hello eagles[root@test tmp]# echo "hello kinmfer" >> 2.txt[root@test tmp]# cat 2.txt hello eagleshello eagles[root@test tmp]# lnd -bash: lnd: command not found[root@test tmp]# lnd 2> output_erro ...
Linux基础-02-Linux基础
Linux 基础用户类型
root 用户
一个特殊的管理帐户
也被称为超级用户
root已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,不要登录为 root
普通( 非特权 )用户
权限有限
造成损害的能力比较有限
终端 terminal设备终端:键盘、鼠标、显示器
终端类型
控制台终端: /dev/console
串行终端:/dev/ttyS#
虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
图形终端:startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接
查看当前的终端设备tty 命令可以查看当前所在终端
范例:
12[root@centos8 ~]#tty/dev/pts/0
交互式接口交互式接口:启动终端后,在终端设备附加一个交互式应用程序
交互式接口类型
GUI:Graphic User I ...
Linux基础-01-硬件+系统介绍
计算机系统计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据 进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。
计算机有很多形式,比如:生活中常见的家用电脑,笔记本,智能手机,平板电脑等,还有生产环境中 提供重要业务支撑的各种服务器(Server),都算是计算机。
其中一个完整的计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成。
计算机硬件计算机发展历史:
第一代计算机(1946-1957) 电子管时代
第二代计算机(1958-1964) 晶体管时代
第三代计算机(1965-1970) 集成电路时代
第四代计算机(1971以后) 大规模集成电路时代
世界上第一台计算机
1946年,世界上第一台计算机ENIAC(electronic numerical integrator and calculator 电子数字积分计算机)在美国宾州大学诞生,是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的。使用了17468只 电子管,占地17 ...
Django-12-富文本
介绍富文本:Rich Text Format(RTF),是有微软开发的跨平台文档格式,大多数的文字处理软件都能读取和保存RTF文档,其实就是可以添加样式的文档,和HTML有很多相似的地方
django的插件
pip install django-tinymce
用处用处大约有两种
在后台管理中使用
在页面中使用,通常用来作博客
后台中使用配置settings.py文件
INSTALLED_APPS 添加 tinymce 应用
添加默认配置
123456789TINYMCE_DEFAULT_CONFIG = {'theme':'advanced','width':800,'height':600,}
创建模型类
123from tinymce.models import HTMLFieldclass Blog(models.Model): sBlog = HTMLField()
配置站点
admin.site.register
在视图中使用
123456789101112 ...
Django-11-验证码
本篇文章主要讲实现验证码的原生方法,当然,在实际开发中,有很多插件可以实现验证码。
摘要在用户登录,注册以及一些敏感操作的时候,我们为了防止服务器被暴力请求,或爬虫爬取,我们可以使用验证码进行过滤,减轻服务器的压力。
验证码需要使用绘图 Pillow
pip install Pillow
核心
Image,ImageDraw,ImageFont
绘制流程
123456789101112131415161718background = (10,20,30) RGB颜色# 初始化画布 image = Image.new(‘RGB’,(100,50),background)# 获取画布中画笔对象draw = ImageDraw.Draw(image)# 绘制验证码,随机四个font = ImageFont.truetype(‘path’,size)fontcolor = (20,40,60)draw.text((x,y),’R’,font,fontcolor)
最后扫尾
12345678910del draw Import iobuf = io.BytesIO()Image.save( ...
Django-10-分页
django提供了分页的工具,存在于django.core中
Paginator : 数据分页工具
Page : 具体的某一页面
Paginator对象创建Paginator(数据集,每一页数据数)
属性
count: 对象总数
num_pages: 页面总数
page_range: 页码列表,从1开始
方法page(整数): 获得一个page对象
常见错误
InvalidPage:page() 传递无效页码
PageNotAnInteger:page() 传递的不是整数
Empty:page() 传递的值有效,但是没有数据
Page对象获得,通过Paginator的page()方法获得
属性
object_list: 当前页面上所有的数据对象
number: 当前页的页码值
paginator: 当前page关联的Pagin ...
Django-09-中间件
概念是一个轻量级的,底层的插件,可以介入Django的请求和相应过程(面向切面编程)
中间件的本质就是一个python类
详细介绍请看:https://segmentfault.com/a/1190000019992887
MCS结构体系
面向切面编程简称AOP(Aspect Oriented Programming)。AOP的主要实现目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合的隔离效果。
中间件的可切入点
切入函数
__init__:没有参数,服务器响应第一个请求的时候自动调用,用户确定是否启用该中间件
process_request(self,request):在执行视图前被调用,每个请求上都会调用,不主动进行返回或返回HttpResponse对象
process_view(self,request,view_func,view_args,view_kwargs):调用视图之前执行,每个请求都会调用,不主动进行返回或返回HttpResponse对象
process_template_response(self,r ...
Django-08-DjangoCache
缓存框架的核心目标
较少的代码
缓存应该尽可能快
因此围绕缓存后端的所有框架代码应该保持在绝对最小值,特别是对于获取操作
一致性
缓存API应该是提供跨越不同缓存后端的一致接口
可扩展性
基于开发人员的需求,缓存API应该可以在应用程序级别扩展
缓存
django内置了缓存框架,并提供了几种常用的缓存
基于Memcached缓存
使用数据库进行缓存
使用文件系统进行缓存
使用本地内存进行缓存
提供缓存扩展接口
缓存配置
创建缓存表
1python manage.py createcachetable [table_name]
缓存配置
123456789101112CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'my_cache_table', 'TIMEOUT& ...
Django-07-拓展-01
静态文件配置在settings.py中最底下有一个叫做static的文件夹,主要用来加载一些模板中用到的资源,提供给全局使用
这个静态文件主要用来配置CSS,HTML,图片,字体文件等
1234STATIC_URL = '/static/'STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static')]
之后在模板中,首先加载静态文件,之后调用静态,就不用写绝对全路径了
模板中的声明
{ % load static % } 或{ % load staticfiles % }
在引用资源的时候使用
{ % static 'xxx' % } xxx 就是相对于STATICFILES_DIRS的一个位置
图片(文件)上传文件数据存储在request.FILES属性中
form表单上传文件需要添加enctype='multipart/form-data'
文件上传必须使用POST请求方式
存储:
在static文件夹 ...