Linux软件安装和用户管理
47 Questions
9 Views

Linux软件安装和用户管理

Created by
@AdvancedAspen

Questions and Answers

Linux的软件包类型

源码包和RPM包

源码包优缺点

源代码包优点: 1)开放源代码,可以自行修改源代码(查看是否是恶意代码) 2)可以自由选择安装所属功能 3)软件是编译安装,更加稳定高效。 4)卸载方便,直接删除安装路径即可 源码包安装缺点 1)安装过程中较为复杂(需准备解码编译工具、编译对应的函数库) 2)编译过程时间长

源码包

软件的源代码是软件的原始数据,但是源代码不能在计算机中直接运行安装,需要通过编译将源代码转换成计算机可以识别的二进制,之后才可以进行安装,源代码包安装的方式可以在安装过程中根据自己的需求定制自己所需要的功能。

RPM包

<p>红帽软件工具包具有强大的查询功能,支持安全验证的通用型Linux软件包管理工具</p> Signup and view all the answers

安全验证

<p>检查与官网源码包编译的包是否相同,只要差一个字符,都不能通过验证。</p> Signup and view all the answers

RPM包优缺点

<p>RPM包优点: 1)安装简单方便 2)安装时不用指定安装位置 3)方便升级、卸载 RPM包缺点 1)大多数RPM包安装需要解决依赖性问题。</p> Signup and view all the answers

RPM包命名规则

<p>httpd-2.2.15-53.e16.centos.x86_64.rpm httpd 软件包名 2.2.15 软件包版本号 53 软件发布次数 e16.centos 支持的Linux平台 x86_64 支持的硬件平台 rpm RPM包扩展名</p> Signup and view all the answers

rpm安装

<p>rpm -ivh 软件包全名 -i install安装 -v 显示安装详细过程 -h 以#号表示安装进度</p> Signup and view all the answers

rpm卸载

<p>命令: rpm -e 软件名</p> Signup and view all the answers

rpm升级

<p>命令:rpm -Uvh 软件包全名 选项:-U 升级安装,若之前旧软件没有安装则直接安装 -F 升级安装,若之前旧版本没有安装则不会安装,必须有旧版本才会安装</p> Signup and view all the answers

rpm查询已安装的软件信息

<p>rpm -q 全名 :查询包是否安装 rpm -qa :查询系统中所有安装的RPM包 常用案例:rpm -qa | grep “软件包关键字” rpm -qi 包名 :查看指定软件的安装信息 rpm -ql 包名 :查看指定软件所安装的目录,文件列表</p> Signup and view all the answers

查询未安装的RPM包文件(查看想要安装还没有安装的软件)

<p>rpm -qpl 包全名 :查询指定未安装软件的安装目录、文件列表 rpm -qpR 包全名 :查询指定软件的依赖文件</p> Signup and view all the answers

查询文件或目录属于哪一个RPM包

<p>rpm -qf 文件或目录名</p> Signup and view all the answers

YUM安装

<p>为了解决RPM包安装依赖性,出现了YUM安装 YUM是一个RPM包管理工具,可以从多个源中搜索软件以及软件安装的依赖文件并自动安装软件。</p> Signup and view all the answers

1.使用本地YUM源方法

<p>1)确保网络YUM源失效,默认情况下网络YUM源配置文件只有CentOS-Base。repo生效 #mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #系统只能识别以repo结尾的YUM源配置文件 2)启用本地YUM源 #vi /etc/yum.repos.d/CentOS-Media.repo #baseurl=file:///mnt #能够找到RPM包和依赖关系的目录 #enabled=1 #是否启用YUM源,0是不开启,1是开启</p> Signup and view all the answers

扩展本地YUM源

<p>有些RPM包在基本的YUM池中没有,此时需要扩展本地YUM源 命令: yum -y install epel-release #扩展epelYUM池。</p> Signup and view all the answers

保存yum安装包

<p>vim /etc/yum.conf #保存安装包配置文件 keepcache=1 #1保存,0不保存 安装包默认保存在/var/cache/yum/硬件平台/操作系统版本/中</p> Signup and view all the answers

YUM源配置文件信息

<p>[root@localhost Packages]# cat /etc/yum.repos.d/CentOS-Base.repo [base] #YUM 源唯一 ID 号,可任意填写。 name=CentOS-$releasever - Base #YUM 源描述,可任意填写。 mirrorlist=http://mirrorlist.centos.org/release=$releasever&amp;arch=$basearch&amp; repo=os&amp;infra=$infra #指定镜像站点目录。 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ #指定 YUM 源 URL(统一资源定位)地址,FTP 或 HTTP 地址。 gpgcheck=1 #是否开启 gpg 验证,0 关闭,1 开启。 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #检查软件包 gpg 验证信息位置。</p> <p>[root@localhost Packages]# cat /etc/yum.repos.d/CentOS-Media.repo [c7-media] name=CentOS-$releasever - Media baseurl=file:///mnt/</p> <h1>file:///media/cdrom/</h1> <h1>file:///media/cdrecorder/</h1> <p>gpgcheck=1 enabled=1 #是否启用该 YUM 源,0 不启用,1 启用。 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7</p> Signup and view all the answers

YUM配置文件目录

<p>C7当中YUM源的配置文件保存在/etc/yum.repos.d/目录下,用户可以自定义YUM配置文件,但是后缀必须以.repo结尾。</p> Signup and view all the answers

将原官网YUM源替换为阿里云YUM源

<p>安装wget命令: yum -y install wget 更换阿里云YUM源: wget -O /etc/yum.repos.d/CentOS-Base.repo <a href="http://mirrors.aliyun.com/repo/Centos-7.repo">http://mirrors.aliyun.com/repo/Centos-7.repo</a> #从阿里云上下载YUM源配置文件并将原YUN源配置文件替换。 局域网YUM源</p> Signup and view all the answers

局域网YUM源配置过程

<p>服务器端: 1)yum -y install httpd createrepo #安装httpd web服务软件以及creatrepo命令(有些版本也可不安装createrepo命令,直接将原有repodate目录复制到httpd的主目录下。) 2)mkdir /var/www/html/package #创建目录用于保存RPM包 3)cp -a /mnt/Packages/* /var/www/html/package #将光盘中所有RPM包复制到/var/www/html/package之中 4)cresterepo /var/www/html/ #生成RPM包之间依赖关系 createrepo /var/www/html/ -g /mnt/repodata/*comps.xml --update #-g 生成软件组依赖,--update 在已有基础上生成。 5)systemctl stop firewalld #关闭防火墙 6)systemctl start httpd #启动httpd服务 客户端: 1)vi /etc/yum.repos.d/CentOS-Media.repo 修改内容:“enabled=1”改为“enabled=0” #确保不会使用本地源进行YUM安装 2)mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #使现有网络YUM配置文件失效 3)vi /etc/yum.repos.d/abc.repo 添加: [test] name=centos7 baseurl=http://192.168.50.70(服务器端IP地址) gpgcheck=0 #复写(修改)网络配置文件 4)iptables -F<br /> #清空防火墙规则 5)yum list 或 yum install tree #测试或安装</p> Signup and view all the answers

yum 安装

<p>yum install 软件名 yum groupinstall “软件组名”</p> Signup and view all the answers

yum 卸载

<p>yum remove 软件名 yum groupremove “软件组名”</p> Signup and view all the answers

yum 升级

<p>yum update yum groupdate</p> Signup and view all the answers

yum 软件包查询

<p>yum list 查询所有可以安装的软件包 yum list 包名 查询 yum 源中是否有所查询包 yum info 软件名 查询指定软件包的信息 yum grouplist 查询所有可以安装的软件组 yum groupinfo “软件组名” 列出软件组中包含的软件 yum provides 查询未安装命令安装包名称 yum search 查询包含指定关键字的安装包</p> Signup and view all the answers

如果是PackageKit占用YUM,怎么解决

<p>如果是PackageKit占用YUM,则可以修改配置文件 /etc/yum/pluginconf.d/langpacks.conf 将第一行:enable=1改为enable=0</p> Signup and view all the answers

频繁切换 yum 源后可能会出现安装错误的现象。怎么解决

<p>频繁切换 yum 源后可能会出现安装错误的现象。 需要执行 yum clean all 命令来清空一下 yum 缓存信息。 之后使用 yum makecache 根据配置文件建立新的缓存数据。 再执行 yum list 读取 yum 可安装的软件包。</p> Signup and view all the answers

源码包安装示例:网络上下载Nginx源码包安装

<p>1)wget <a href="http://nginx.org/download/nginx-1.9.9.tar.gz">http://nginx.org/download/nginx-1.9.9.tar.gz</a> #下载Nginx源码包 2)tar -xvf nginx-1.9.9.tar.gz #解压缩 3)cd nginx-1.9.9 #进入nginx目录,目的是为了在此目录下生成MakeFile文件 4)./configure --prefix=/usr/local/nginx #运行configure文件,configure文件可以检查当前系统是否满足安装软件的需要,并且可以指定软件安装位置和软件安装哪些模块。 5)根据configure结果,补全安装所需软件 yum -y install gcc* yum -y install pcre-devel yum -y install openssl-devel 6)make &amp;&amp; make install #编译并安装软件 补充:“ &amp;&amp; ”连接符表示命令1成功运行后再运行命令2 格式:COM1 &amp;&amp; COM2 7)/usr/local/nginx/sbin/nginx #启动Nginx服务</p> Signup and view all the answers

“ && ”连接符

<p>“ &amp;&amp; ”连接符表示命令1成功运行后再运行命令2 格式:COM1 &amp;&amp; COM2</p> Signup and view all the answers

用户区分

<p>使用者靠用户名区分不同账户,系统靠UID来区分不同账户。</p> Signup and view all the answers

/etc/passwd

<p>记录的是当前系统存在的用户信息。 第一列:用户名 第二列:密码占位符 第三列:用户 ID(UID) 第四列:初始组 ID(GID) 第五列:用户描述信息 第六列:用户家目录 第七列:用户的 shell 类型</p> Signup and view all the answers

root 系统或服务用户 普通用户UID范围

<p>0 1-499 500-65535 #C6 0 1-999 1000-65535 #C7 root 系统或服务用户 普通用户 nfsnobody 是个例外,默认安装后的 uid 为65534。</p> Signup and view all the answers

查看内核版本命令

<p>uname -r</p> Signup and view all the answers

常见 shell 类型

<p>/bin/bash:shell 类型为 bash,bash shell 是最常用的一种 shell(能正常登陆系统)。 /sbin/nologin:不能登陆系统,可以使用系统资源。</p> Signup and view all the answers

用户组概念

<p>组:拥有相同权限的用户的集合。 初始组:创建用户时如果不指定用户的初始组,则会自动创建和用户名相同的组,初始组只能有一个。 附加组(有效组):用户为了获取权限而加入的组。 当前组:会决定新建文件或目录的所属组。</p> Signup and view all the answers

/etc/shadow

<p>记录的是当前系统存在的用户的密码相关信息。 第一列:用户名。 第二列:经过加密编码的密码 第三列:密码最近更改时间 第四列:密码不可被更改的天数(与第三列相比) 第五列:密码最长有效期(与第三列相比) 第六列:密码到期前的警告天数(与第五字段相比) 第七列:密码过期后的宽限天数(密码失效日,与第五字段相比) 第八列:账号失效日期 第九列:保留。</p> Signup and view all the answers

时间戳转日期命令

<p>命令:date -d “1970-01-01 时间戳 days”</p> Signup and view all the answers

宽限天数

<p>写入 0,那么代表密码过去就马上失效。 写入 5,那么代表密码会在 5 天后失效。 写入-1,那么代表密码永远不会失效。</p> Signup and view all the answers

/etc/group

<p>记录的是当前系统中存在的组的信息 第一列:组名称(默认组成员)。 第二列:组密码占位符。 第三列:组 ID 号(GID) 第四列:组内成员列表</p> Signup and view all the answers

用户添加到组内的两种方式

<p>临时:root 用户设置组密码,把密码告知即将加入组的用户。用户使用组密码,通过newgrp 命令切换到组内。但这种方式在重新登录之后,就会失效。 永久:写入/etc/group 的方式。使用 root 用户给组添加管理员(gpasswd -A 管理员 组名)然后使用组管理员用户,将用户添加到组内(gpasswd -a 用户名 组名)。</p> Signup and view all the answers

/etc/gshadow

<p>记录的是当前系统中存在的组的密码相关信息。 第一列:组名称 第二列:经过加密的组密码 第三列:用户管理员 第四列:组成员,如果有多个成员,用,分隔。</p> Signup and view all the answers

来添加/移除组成员

<p>gpasswd -a/-d 用户名 组名</p> Signup and view all the answers

为组添加管理员

<p>gpasswd -A 账户名 组名 只有root 有权限添加管理员,即使是默认初始组,也没有组管理员权限</p> Signup and view all the answers

/etc/login.defs

<p>记录的是创建新用户时所使用的配置</p> Signup and view all the answers

/etc/default/useradd

<p>创建用户的默认文件 #新创建用户时默认初始组的 GID 号(公共组),现在使用的都是私有组机制(根据创建用户名称创建组) #/home 表示用户家目录的位置 #表示是否启用账号过期禁用,-1 表示不启用。 #表示账号过期,不设置表示不启用。 #指定了新建用户的默认 shell 类型。 #指定用户家目录中默认文件的来源,新建用户家目录下的文件都是从这个目录中复制的。 #表示是否创建邮箱缓存 yes 表示创建</p> Signup and view all the answers

/etc/skel/

<p>用户创建时家目录的模板 更改/etc/skel 目录下的内容就可以改变新建用户默认主目录的配置文件信息。</p> Signup and view all the answers

useradd 创建用户过程

<p>useradd 不加任何参数(选项)创建时,系统首先读取用于添加用户的配置文件/etc/login.defs 和/etc/default/useradd 根据这两个配置文件中定义的规则添加用户。然后向/etc/passwd 和/etc/group 文件添加用户和用户组记录,同时/etc/passwd 和/etc/group 对应的加密文件也会自动生成记录。接着系统会自动在/etc/default/useradd 文件设定的目录下建立用户家目录。最后复制/etc/skel 目录中的所有文件到新用户的家目录中,新用户建立完成。</p> Signup and view all the answers

More Quizzes Like This

Quiz de Conocimientos sobre Linux
10 questions
Linux的目录结构
31 questions
Linux基础
91 questions

Linux基础

AdvancedAspen avatar
AdvancedAspen
Linux Shell Flashcards
39 questions

Linux Shell Flashcards

MarvelousPascal avatar
MarvelousPascal
Use Quizgecko on...
Browser
Browser