Linux权限管理之ACL权限
ACL权限设置规则:
可以给任何的用户或用户组设置任何文件/目录的访问权限。
添加ACL规则的命令格式: ①、给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
②、给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
选项:-m:设定ACL权限
例:setfacl -m [g/u]:[组名/用户名]:rwx 指定的目录/文件
-x:删除指定的ACL权限
例:setfacl -x [g/u]:[组名/用户名] 指定的目录/文件
-b:删除所有的ACL权限
例:setfacl -b 指定的目录/文件
拿用户组来举例(当然拿某个用户也是一样的)创建一个目录:
1[root@node1 /]# mkdir /pro
创建两个用户:
12[root@node1 /]# useradd zs[root@node1 /]# useradd ls
切换zs用户或者ls用户去/pro目录中进行操作
12345678910[root@node1 ~]# su z ...
Tomcat
Tomcat 是什么?Tomcat 由JAVA语言开发的Java容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,Tomcat是一种类似于IIS、Apache Http的Web服务端程序, Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。也就是Web容器。
Servlet:是应用在服务端的小程序,由JAVA语言编写,本身支持各种JAVA相关的请求,但是大多用于接收web服务发来的请求,与数据库交互并将响应交给web服务
JDK:JAVA开发工具包。
常用工具:
Java:运行编译后的类文件
Jar:对类文件进行打包
Javac:对源文件中的注释提取文档
Jconsole:远程连接工具
Jre:JAVA运行环境
部署tomcat配置Java环境
解压软件包
1# tar zxf jdk-8u201-linux-x64.tar.gz
将jdk解压后的目录移动到/usr/local/起名为java
1# mv /root/jdk1.8.0_201/ ...
Ansible常用模块
ping模块:检测各主机之间的连接状况
如:
1[root@localhost ~]# ansible all -m ping
command模块:主要用于执行简单的shell命令:单个命令
如:ls、cat等类似简单命令,不带有管道符类似操作的使用shell模块
例:
12345678910111213[root@localhost ~]# ansible dbserver -m command -a 'ls /root'# 配置主机清单时dbserver中,只写入了1.4,所以结果只有1.4主机运行ls /root192.168.1.4 | CHANGED | rc=0 >>anaconda-ks.cfginitial-setup-ks.cfg公共模板视频图片文档下载音乐桌面
shell模块执行linux复杂命令
123[root@localhost ~]# ansible dbserver -m shell -a 'ls /root/ | wc -l'192.168.1.4 | CHANGED | rc=0 >>10 ...
Ansible自动化运维工具
Ansible及自动化介绍ansible:提高效率的工具,实现自动化运维
自动化:系统自动化(PXE+KS/PXE+COBBLER)程序自动化(Ansible/Saltstack/Puppet)代码自动化(Jenkins)
程序自动化工具分为两类:
(1)C/S架构:Saltstack /Puppet
(2)无客户端模式:Ansible(主控端/被控端)
区别:
Ansible:基于python开发,使用ssh协议,没有客户端,200-300台,适用于中小型应用环境,一个系统控制多台主机,有两个角色:主控端和被控端
Saltstack :基于python开发,支持统一管理,比较轻量级 支持管理500台服务器,python编写,需要部署agent,主控端通过安装在被控端的代理来对被控端进行操作
Puppet:Ruby语言编写,重型程序,适合大型环境,谷歌公司在用,软件过于复杂,国内一般不到1000+
Ansible特性
模块化:调用特定的模块,完成特定的任务,约3000模块,每个模块功能不同
有paramiko(基于ssh开发,主要做远程控制)PyYAML(可以实现剧本)Jinja2( ...
强制修改Linux系统的Root密码的办法
1.在Linux 的引导界面按 E 键来进入内核编辑界面
2.按键盘下键,找到Linux16这一行,然后在最后边加入 rd.break命令,然后按Ctrl+X来重启修改过的内核!
3. 之后进入“紧急求援模式” 输入以下命令(输入完一行回车!)
mount -o remount,rw /sysroot
chroot /sysroot
passwd # 当输入完这一行会系统会让你输入新密码和确认新密码,按照系统提示输入即可!
touch /.autorelabel
exit
reboot
4.接着等待重启以后就可以使用root账号了
Docker部署nginx及web集群
在容器部署基于centos镜像的nginx:
首先将nginx软件包放入物理机(虚拟机)中
进去容器后,什么都没有,环境相当干净,所以各种命令需要自己安装
使用yum provides 查看命令的软件包,并且进行安装,即可使用
1234yum provides ip/ifconfig/scpyum -y install iproute //ipyum -y install net-tools //ifconfigyum -y install openssh-clients //scp
准备nginx环境
1yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel make
查看容器的IP地址
退出容器:exit
查看本地ip,docker网卡
方法一:在容器中,将物理机的软件包拷贝到容器中
方法二:在物理机中,3a9f…0c4为容器的id,也可以使用容器名(–name指定的名称)
安装nginx123456tar zxf ng ...
Commit构建镜像
用docker commit构建映像123456 1.docker run -i -t centos /bin/bash //启动一个容器,启动后默认进入该窗口的bash进程 2.yum install -y epel-release.noarch //为启动的窗口安装软件源 3.yum install -y nginx //为启动的容器安装nginx 4.exit //退出该容器,回到宿主机环境 5.docker commit 容器ID zx/nginx //将上次创建的窗口ID当作映像提交到本地,zrs是repository名称,nginx是image名称 6.docker images //可以查看到上步提交的映像
注意: 1.一定要区分开容器和映像的区别;
2.有了zx/nginx后,下次可以直接使用该映像来启动容器,而不用为这个容器安装nginx;
3.docker commit - ...
Docker私有仓库
Docker的公共仓库由Docker公司维护的Registry,用户也可以将自己的镜像保存到DockerHub上中免费的response中,因为在国内访问由很多的限制登录方法
1docker login -u 用户名 密码 https://
登录后下载方法
1docker pull 用户名/images名:tag
Quay被红帽收购后速度相当慢,红帽对国内还不是完全开放,是一个私人注册托管中心,它上面更多的是很多用户自己上传制作的镜像,没有很多的官方镜像,使用面也不是很广
阿里云镜像仓库是国内提供docker镜像的仓库,需要用户登录后在控制中心,找到容器镜像服务,可以镜像镜像搜索、新建自己的仓库、也包括官方镜像和其他用户开放的镜像,官方镜像是直接拿取的DockerHub的镜像,属于国内的一个缓存。
这些公有镜像不适合工作中去使用,接下来就看私有仓库
使用registry私有仓库镜像Harbor仓库在微服务架构的文章中已经写到怎么使用了,这里就不多说了
环境要:Docker服务器必须开启路由转发
使用两台主机来完成接下来验证私有仓库的使用
主机
服务
...
Shell脚本交互实例
1234567891011121314#!/usr/bin/env sh#!/usr/bin/expectgit add .git commit -m "file"set timeout 1expect -c "spawn git push -u origin master # 执行交互式命令expect \"Username for 'https://gitee.com':\" # 当匹配到此条内容send \"188********\r\" # 则执行此条内容expect \"Password for 'https://*********@gitee.com':\"send \"********.\r\"interact"
Docker基础操作指令
镜像小的原因:Linux操作系统两个部分构成内核空间(kernel)、用户空间(rootfs)
查看docker的基础信息1docker info
查看所有镜像12345docker images -a:列出本地所有的镜像(含中间映像层) -q:只显示镜像id --digests:显示镜像的摘要信息 --no-trunc:显示完整的镜像信息
下载镜像1234docker pull 镜像名 // 如果只指定镜像的名称默认下载最新版本,可以指定镜像名称以及版本号 例:centos:7 下载的是centos 7版本
删除镜像123docker rmi 镜像名 // 删除镜像,默认删除 镜像名:latest,这个镜像不能在运行中docker rmi -f 镜像名 // 强制删除docker rmi -f $(docker images -qa) // 删除全部镜像
导出镜像12345docker save -o {导出的包名称} {镜像名称及标签}例:将镜像导出 ...
