开源许可证
首先开源许可证是一种法律认可。通过它,版权拥有者可以明确使用,修改,共享版权软件。版权法默认禁止共享。也就是说没有版权的软件,就等同于保留版权。虽然开源了,用户只能看看源代码,不可以使用。
一.开源许可证的种类
根据使用条件不同,大致可以分为两类:
1.宽松式许可证
2.Copyleft许可证
二 宽松式许可证的特点
宽松式许可证是最基本的类型,对用户没有任何限制。用户可以修改代码后闭源。
宽松式许可证有三个特点:
1.没有使用限制
用户可以使用代码,做任何想做的事。
2.没有担保
不保证代码质量,用户自担风险
3.披露要求
用户必须披露原作者
三.常见的宽松式许可证
1 BSD(二条款版)
分发软件时,必须保留原始的许可证声明
2 BSD(三条款版)
分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为促销软件。
3 MIT
分发软件时,必须保留原始的许可证声明,与BSD(二条款版)基本一致。
4 Apache2
分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;
没有修改过的文件,必须保持许可证不变。
四.Copyleft许可证
含义:
可以不经许可,用户可以随便复制。
与宽松式许可证相比有前提条件,限制多。
例如。
分发二进制格式,必须提供源代码
修改后的源码,必须与修改前保持许可证保持一致,不得在原始许可证以外,附加其他限制。
五.常见的Copyleft许可证
对用户限制从强到弱排序
1.GPL
如果项目包含了GPL许可证的代码,那么整个项目都必须使用GPL许可证
2.LGPL
如果项目采用动态链接调用该许可证的库,项目可以不用开源。
3.Mozilla(MPL)
只要改许可证的代码在单独的文件中,新增的其他文件可以不用开源。
六.各开源许可证的详细讲解
(一)BSD许可证
BSD开源协议是一个给予使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但是要满足以下条件
1.用户在发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。如果在发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
2.不可以使用开源代码的作者/机构名字和原来产品的名字做市场推广。
(二)Apache许可证
该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,同样允许代码修改,在发布。需要满足以下条件:
1.需要给代码的用户一份Apache Licence;
2.如果修改了代码,需要再被修改的文件中说明。
3.在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4.如果在发布的产品中包含一个Notice文件,则在Notice文件中需要的时候修改代码来满足需要作为开源或商业产品发布/销售。
(三)MIT许可证
你必须在你的发行版里包含原许可协议的声明,无论你是以二进制文件发布的还是以源代码发布的。作者只想保留版权。
(四)GPL许可证
允许任何人观看,修改,并散播程序软件里的原始程序码,条件是如果你发布修改后的版本就要连源代码一起发布,不允许修改后的衍生的代码做为闭源的商业软件发布和销售
(五)LGPL许可证
LGPL允许以动态链接使用开源库。采用LGPL的代码,一般情况下他本身就是一个第三方库。如果开发人员仅仅使用了它的功能,而没有对库本身进行任何修改,那么开发人员不必发布自己的商业源代码。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码的衍生的代码都必须开源,并且使用LGPL协议
(六)Mozilla许可证
允许免费重发布,免费修改,但要求修改后的代码版权归软件的发起者
七 开源许可证严格程度总结
严格程度: MIT > BSD > Apache > LGPL > Mozilla >GPL
八 开源许可证总结图![](https://i-blog.csdnimg.cn/blog_migrate/34f0360de4575a0a901daade7a76f4e1.jpeg)
安装rockylinux
打开虚拟机,点击创建新的虚拟机
选择典型,点击下一步
选择稍后安装操作系统,点击下一步
选择Linux系统centos8 64位,点击下一步
给虚拟机起名选择虚拟机的位置建议放在内存大的磁盘里,点击下一步
磁盘大小建议200G,点击下一步
点击完成
点击编辑虚拟机设置
选择CD/DVD,点击使用ISO映像文件
选择好文件后点击完成,启动虚拟机
选择语言点击下一步
选择时区,点击done
点击software selection 点击minimal install点击done
点击network把网络打开点击done
添加root密码
添加一个普通用户
点击安装,然后等待
通过man man命令可以得到man相关的命令
使用方法就是 man
man分为9个部分
1*可执行程序和xshell命令
2*系统调用
3*库函数
4特殊文件
5文件格式
6游戏
7*杂项
8系统管理员命令
9内核例程
进入etc目录,然后列出fstab文件的详细信息
-是普通文件,rw-r--r--的意思是管理员有读写的权限,普通用户和其他都有读的权限
1是链接数,第一个root与第二个root分别是所属者和所属组,709是文件大小,jun 28 02:10是文件创造时间 、etc/fstab是文件名
FHS结构
定义了系统中每个区域的用途,所需要的最小构成的文件和目录,同时还给出了例外处理和矛盾处理
FHS定义了两层规范
第一层, /下面的各个目录应该要放什么文件数据。
例:/etc应该要放置可执行文件, /bin和/sbin则应该放置可执行文件等等。
第二层则是针对/usr和/var这两个目录的子目录来定义。
例:/var/log放置系统登录文件、/usr/share放置共享数据等等。
文件管理常用命令
1.创建文件 touch ,echo
2. 创建以及删除目录mkdir,rmdir mkdir -p 创建连级目录
3.复制 cp
-r拷贝目录时将目录中的文件一起拷贝
4.切换目录 cd
切换至父目录cd..
切换至以前工作的目录 cd-
5.mv 移动
6.删除 rm
-r 递归删除
-f 强制删除
7.查看文件内容 cat
-n 显示行号
8.列出目录内容 ls
-l 显示文件详细内容
9.显示当前目录pwd
-p显示真实物理路径
-l 显示链接路径(默认)
10less和more
more:显示更多
less:有退后功能
11.head查看文件开头部分的内容
用户管理和组用户的常用命令
1. 添加用户useradd
-u UID 人为指定用户UID号
-d 目录 认为指定用户家目录
-g 组名 人工指定用户组
-G 组名 人工指定用户附加组
-s shell 人工指定用户的登录shell。 默认是/bin/bash
2.id 查看用户的id
3.修改用户密码 passwd
-S 查询用户密码状态,仅root可用
-l 暂时锁定用户, 仅root可用
-u 解锁用户,仅root可用
4.修改用户信息usermod
-u UID 修改用户的UID号
-G 组名 修改用户附加组
-L 临时锁定用户
-U 解锁用户
5.删除用户 userdel
-r 连同用户家目录一起删除
6.切换用户 su
- 连带用户的环境变量一起切换
-C 使用该用户执行一次命令,不切换用户身份
7.添加用户组groupadd
-g GID 指定组ID
8.修改用户组 groupmod
-g GID 修改组ID
-n 组名 修改组名
9. 删除用户组 groupdel
10.查看用户组关系groups
权限管理常用命令
1.修改文件的属主和属组
chown [options]... [owner][:[group]] file
chown [options]... --reference=rfile file
2.修改权限 chmod[用户类]+/-[权限][文件名]
用户类选项 : u文件所有者,g该用户的用户组,o其他用户,a所有用户
+表示增加权限,-表示减少权限
权限选项:r读w写x可执行