首页 文章 精选 留言 我的

精选列表

搜索[linux],共10000篇文章
优秀的个人博客,低调大师

Linux自建yum仓及相关知识详解

一、使用场景 很多企业都会自建yum仓来便于企业内部的rpm包安装,这样在安装软件时就可以利用局域网内的高速带宽进行下载和安装rpm包,缩短了通过公网下载的长时间等待。 二、yum与rpm的说明 首先需要对yum与rpm包本身以及他们之间的关系进行一些说明。rpm本身是一个包管理器,所以它具备一个管理器的打包、安装查询、升级、卸载、校验、数据库管理这些基本功能,这就解释了为什么我们在安装一个rpm包前使用rpm -qpi /path/name.rpm能查到这个包中的信息,其中如果出现Relocations:(notrelocatable)这个提示,说明这个rpm包再安装过程中是不允许更改安装位置的。 使用rpm命令安装最让人头疼的问题就是软件包之间的依赖关系,使用yum工具会自动处理我们安装过程中包之间依赖关系 ,它只是一个前端的工具,并不能替代rpm包管理器。我们有没有想过,yum为什么会知道包之间的相互依赖关系呢?yum本身并不会知道包之间的依赖关系,而包之间的依赖关系等元数据,会存放在repodata这个文件中。以光盘为例,当我们使用mount /dev/cdrom /media命令后,就会在/media/下看到该目录,所以这就解释了在自定义yum仓时为什么repodata文件的路径就是yum仓baseurl的所在路径。 repodata文件中的repomd.xml就存放着各个rpm包之间的关联信息,而TRANS.TBL存放着rpm包的分组信息 而客户端在使用yum命令时,会先下载yum的配置文件,从中找到yum仓的路径,再下载repodate里的元数据,而后安装rpm包 三、yum配置文件详解 通过上面,我们知道yum是一个前端工具程序,和其他程序一样自身都有配置文件,其中就包含了yum仓的位置指向。yum的配置文件分为主配置段(/etc/yum.conf),和仓库配置段(/etc/yum.repos.d/*.repo),这么设计是因为yum仓可以有多个,如果都写在/etc/yum.conf文件中,不便于查看,所以有了仓库配置段,yum工具会将所有在/etc/yum.repos.d/目录内,以.repo结尾的文件来作为配置文件。我们可以在/etc/yum.repos.d/下为每一个yum仓定义一个.repo文件,或者在一个.repo文件中分段表示多个yum仓,.repo文件中第一行为repoID,且此repoID不能重复,这就是为什么上图下载的yum配置文件名为base的原因。 四、搭建步骤 通过上面可以知道,使用yum安装rpm包需要有repodata目录,该目录可以通过yum createrepo <director>来创建,但是有时本地服务器可能没有安装createrepo命令,又没有yum仓,以下,我们就以这种情况为例来介绍yum仓的搭建: 1.使用本地光盘充当yum源安装createreop命令 (1)放入光盘,使用mount /dev/cdrom /media 将光盘内的目录挂载到/media目录下, (2)使用vim /etc/yum.repos.d/dvd.repo 创建一个名为dvd.repo的配置文件 [base]——repoID 不能重复 name——任意字符串 baseurl——指定yum仓的位置,本地文件使用协议未file://,后面的/media为yum仓路径(repodata在/media/目录下) enable——是否启用此yum仓,1表示启用;0禁用 gpgcheck——gpg检测,1为检测;0为不检测,出于安全rpm包在发行时会用自己的私钥加密,并发布公钥,/media/目录下RPM-GPG-KEY-CentOS-6就为用户的公钥,如果gpgcheck值为1,就需要导入公钥,否则无法安装,公钥位置为前一张图所示 cost——开销值,也可以不写,不写默认为1000。前面说过yum仓可以有多个,通过cost值大小来设置yum仓的优先顺序 (3)创建好后,输入yum repolist,可以看到yum仓已经被识别 2.安装并启动httpd服务 使用yum install httpd 安装httpd程序,安装完后并启用httpd服务,通过netstat -ntl查看80端口是否正常侦听,需要通过http协议访问的安装包必须放在/var/www/html目录内。 3.复制二进制rpm包到/var/www/html目录内,并创建repodate (1)使用mirror命令从公网下载一个镜像,放置/var/www/html/内,下载后的目录为openstact-juno (2)进入/var/www/html/openstact-juno 目录删除镜像本身自带的repodata(此步骤是为测试createrepo) (3)使用createrepo/var/www/html/openstact-juno 创建新的repodata目录,创建过程中可以看到他在抽取生成新的元数据 (4)此时,局域网内通过浏览器输入 http://ip/filename就能看到结果了 五、本地yum仓验证 验证本地yum仓是否正常对外提供服务,可以在局域网内另找一台host或使用本host来进行验证,本例继续使用原有host 1.输入 vim /etc/yum.repos.d/openstack-juno.repo 创建一个配置文件,为方便测试,不检测gpgcheck 2.此时yum repolist中就包含新的openstack-juno 3.使用yum list all | less 找一个openstack-juno内的yum包,再使用 yum installopenstack-ceilometer-compute.noarch 安装,可以从repository看到,openstack-juno已被使用,此致,操作完成

优秀的个人博客,低调大师

Linux用户管理案例(第二版)

批量添加用户 1、按照/etc/passwd文件格式编写用户信息文件users.info xiaofang01::1001:503::/home/xiaofang01:/bin/bash #注意不能有空行,不然会报错 2、newusers<users.info #newusers命令导入用户信息文件 3、pwunconv #取消shadowpassword功能 4、以[用户名:密码]的格式编写密码文件passwd.info 5、chpasswd<passwd.info #导入密码文件 6、pwconv #将密码写入shadow文件 【用脚本编程的方式其实更加高效】 限制普通用户su为root 1、groupaddsugroup 2、chmod4550/bin/su //将其他人的权限全部清除 3、chgrpsugroup/bin/su //将su的所属组改变为sugroup 此时:ls-l/bin/su 4、usermod-Gsugrouptest //将用户test加入到sugroup组 用sudo代替su: -在执行sudo命令时,临时成为root -不会泄漏root口令 -仅向用户提供有限的命令使用权限 配置文件:/etc/sudoers[编辑配置该文件命令的visudo],用vi直接修改配置文件/etc/sudoers不会生效 /etc/sudoers文件格式 用户名[%组名]主机名[或ip地址]=命令[要用绝对路径] 案例-授权普通用户可以添加/删除用户[useradd/userdel] 1、visudo 2、xiaofanghadoop=/usr/sbin/useradd,/usr/sbin/userdel [切换到该用户] 3、sudo/usr/sbin/useraddtest #执行useradd命令[加sudo,加绝对路径] 4、输入密码 #xiaofang的密码,而不是root的密码 5、sudo-l #查看当前用户所被授权的只有root才可执行的命令 说明: 1、sudo可以使普通用户以root身份执行命令,而不是只是执行root才能执行的命令 2、编辑/etc/sudoers时,可以使命令精确化 如:guesthadoop=/sbin/shutdown-hnow 只让guest执行-hnow选项,其他任何选项都不能执行 案例-授权一个普通用户全权管理Apache 1、构思好该用户应有的权限: (1)编辑Apache的配置文件 (2)使用Apache的启动脚本 (3)更新网页等 2、实现功能1 法一、改变该文件的所有者chown 法二、改变该文件的所属组,并将w权限授予该组,然后该用户加入该组[比较常用] 法三、visudo法 添加:用户 地址=/bin/vi/etc/httpd/conf/httpd.conf 3、实现功能2 用户主机名 =/etc/rc.d/init.d/httpstart,/etc/rc.d/init.d/httpreload,/etc/rc.d/init.d/httpfullstatus,/etc/rc.d/init.d/httpconfigtest 4、功能实现3 即需要对/var/www/html目录有写权限 #改变该目录的所有者/所属组 检测用户密码强度(破解用户密码) 1、安装破解工具:Johntheripper 下载地址http://www.openwall.com/john/ 2、grepliming/etc/passwd>/test/liming.passwd #提取用户信息 3、grepliming/etc/shadow>/test/liming.shadow #提取用户密码的加密密文 4、/test/john-1.6.6/run/unshadow/test/liming.*>/test/liming.john #合并成一个文件 5、/test/john-1.6.6/run/john/test/liming.john #破解该用户密码 6、/test/john-1.6.6/run/john/etc/shadow #破解所有用户的密码

优秀的个人博客,低调大师

Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.1 设置根设备、硬盘

2.1 设置根设备、硬盘 内核首先初始化根设备和硬盘,用bootsect中写入机器系统数据0x901FC (见1.2.3节)的根设备为软盘的信息,设置软盘为根设备,并用起始自0x90080 的32字节的机器系统数据的硬盘参数表设置内核中的硬盘信息drive_info。具体执行代码如下: //代码路径:init/main.c: … #define DRIVE_INFO (*(struct drive_info *)0x90080)//硬盘参数表,参看机器系统数据 #define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)//根设备号 … struct drive_info { char dummy[32]; } drive_info;//存放硬盘参数表的数据结构 void mai

优秀的个人博客,低调大师

Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.11 初始化硬盘

2.11 初始化硬盘 硬盘的初始化为进程与硬盘这种块设备进行I/O通信建立了环境基础。在hd_init()函数中,将硬盘请求项服务程序do_hd_request()与blk_dev控制结构相挂接,硬盘与请求项的交互工作将由do_hd_request()函数来处理,然后将硬盘中断服务程序hd_interrupt()与IDT相挂接,最后,复位主8259A int2 的屏蔽位,允许从片发出中断请求信号,复位硬盘的中断请求屏蔽位(在从片上),允许硬盘控制器发送中断请求信号。执行代码如下: //代码路径:init/main.c: void main(void) { … hd_init(); … } //代码路径:kernel/blk_dev/hd.c: //与rd_init类似,参看rd_init的注释

优秀的个人博客,低调大师

Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.12 初始化软盘

2.12 初始化软盘 软盘和软盘驱动器可以分离,合在一起才是一个整体。为了方便起见,本书所述的软盘除特别声明之外都是指软盘驱动器加软盘的整体。软盘的初始化与硬盘的初始化类似,区别是挂接的函数是do_fd_request,初始化的是与软盘相关的中断。细节可参看初始化硬盘。执行代码如下: //代码路径:init/main.c: void main(void) { … floppy_init (); //与hd_init()类似 … } //代码路径:kernel/floppy.c: … void floppy_init(void) { blk_dev[MAJOR_NR].request_fn= DEVICE_REQUEST; //挂接do_fd_request() set_tr

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册