OpenEuler 3 文件权限设置 文件属主设置 umask DNF软件包管理
uwupu 啦啦啦啦啦

常用的权限设置命令

chmod:修改文件权限,使用权限:文件所有者;

chown:修改文件主属组,使用权限:管理员;

chgrp:修改文件属组,使用权限:管理员;

umask:遮罩码,使用权限:管理员、普通用户。

chmod

文件调用权限针对文件所有者、所属组和其他人;

语法:chmod [OPTION]… MODE[,MODE]… FILE…

选项:

  • 操作对象
    • u,表示用户,文件的所有者
    • g,表示用户组,表示文件或目录所属组;
    • o,其他用户;
    • a,所有用户;
  • 操作符
    • +,添加权限;
    • -,减少权限;
    • =,给定特定权限;
  • 赋予的权限
    • r,读权限;
    • w,写权限;
    • x,执行权限;

根据配置场景,可以同时修改文件的一组权限,也可以只修改文件的某个权限;

  • 如:
    • chmod u+r FILE,表示给予文件所有者权限;
    • chmod g-w FILE,删除文件所属组权限
    • chmod ug-x FILE,删除文件所有者和文件所属组执行权限;
    • chmod 777 FILE,为所有操作对象赋予所有权限
  • 数字:
    • 4:读
    • 2:写
    • 1:执行

chown

chown可以修改文件的所有者,可以改为指定用户或组;

语法:chown [OPTION]... [OWNER][:[GROUP]] FILE...

选项:

  • -c:显示更改的部分的信息;
  • -f:忽略错误信息;
  • -h:修改符号链接;
  • -v:显示详细的处理信息;
  • -R:处理指定目录以及其子目录下所有文件;

根据配置场景,可以只修改属主,也可以只修改属组,也可同时修改属主和属组

  • 修改属主:chown OWNER;
  • 修改属组:chwon :GROUP;
  • 同时修改:chwon OWNER:GROUP;

chgrp

修改文件或目录的所属组;

语法:chgrp [OPTION]… GROUP FILE…

选项:

  • -c:显示修改的部分;
  • -v:显示详细修改过程;
  • -f:不显示错误信息;
  • -h:只修改符号连接的文件,不修改其他任何文件;
  • -R:递归,修改目录下所有文件和子目录;

使用chgrp修改属组与chown修改属组是一样的,不同的是,chgrp不需要“:”;

umask 预设权限掩码

指定在建立文件或目录时进行权限掩码的预设;

修改在建立文件或目录时使用的默认权限的掩码。

掩码可以同时表示”文件夹“和”文件“的权限。

语法:umask [OPTION] [mode]

选项:

  • -p,显示命令名称;
  • -S,以文字形式查看当前文件权限掩码;

umask计算

文件夹默认权限:777 - 权限掩码

文件默认权限:777 - 权限掩码 - 111

常见umask值与之对应的文件或目录权限:

umask值 文件权限 目录权限
022 644 755
027 640 750
002 664 775
006 660 771
007 660 770

sudo 权限赋予

sudo允许普通用户执行root用户可以执行的任务;

语法:sudo [OPTION]

选项:

  • -k,使用者下次执行需询问密码;

  • -l,打印使用者权限;

  • -L,打印sudos设置;

  • -V,打印版本编号;

  • 在openEuler系统中,

    • 不能使用su切换root用户,
    • su只能用来:让root用户能切换其他用户。

RPM软件包管理

RPM是一种用于互联网下载包打包软件包自动安装工具

可以生成RPM后缀文件作为软件包文件

可以用来管理应用程序的安装、卸载和维护

rpm,全名red-hat package manager红帽包管理器;

RPM软件包命名格式

name-version-release.arch.rpm

软件名称-版本号-发行版号.处理器架构.rpm

  • 版本号
    • 格式:x.y.z
      • x:主版本号
      • y:次版本号,代表软件功能的增加;
      • z:修正版本号,代表修正bug;
  • release
    • 也可代表是第几次编译产生的;
  • arch
    • 常见平台:i386,i586,i686等;
    • 有时候为noarch,表示软件包可以在任何平台安装;
  • rpm
    • 软件包后缀,表示可以用rpm安装;
    • 有时候为“.src.rpm”表示这是一个源代码包;

优缺点

优点:

  • 简单便捷,兼容版本;
  • 参数信息记录在数据库中,便于查询、升级或卸载软件;

缺点:

  • 安装环境需与打包环境一致;
  • 具有很强的依赖关系,卸载软件时需要对依赖性软件优先处理,否则会导致其他软件无法正常使用;

RPM命令

RPM一般用来安装、删除、升级、刷新和查询;

语法:rpm [OPTION…]

选项:

  • -i,指定安装的软件包;
    • -v,显示详细安装过程,显示安装过程中正在安装的软件信息;
    • -h,使用“#”符号显示rpm软件安装过程及进度;
  • -U-F,升级指定软件包;
    • -U,若存在旧包,删除旧包并安装新包;
    • -F,若存在旧包,则在旧包的基础上进行升级;
  • -e,卸载软件;
    • -nodeps,不考虑依赖问题,强制卸载。(不建议使用);
    • -allmatches,若软件包存在多个版本,则使用这个命令进行批量卸载;
  • -q,查询系统是否已安装指定软件包或查询指定rpm包内容信息;
    • -qa,查询所有安装的软件包,可以不给出文件参数;
    • 下面所有需要给出文件名参数
    • -qf,查询所有已安装过(包括被删除的)的软件包;
    • -qp,查询未安装的软件包;
    • -ql,查询软件包中的文件列表和完整目录
    • -qi,查询软件包详细信息
    • -qc,查询软件包的配置文件
    • -qd,查询软件包帮助文档
  • -a,查看系统已安装的所有软件包;
  • -V,查询已安装软件包版本信息;
  • -c,显示所有配置文件;
  • -p,查询/校验一个软件包的文件;

使用示例

安装软件

1
[root@localhost ~]# rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm

卸载软件

1
[root@localhost ~]# rpm -e mysql-community-server

更新软件

1
2
3
4
5
6
7
8
[root@localhost ~]# rpm -U mysql
# 更新,先卸载旧的,再安装新的
[root@localhost ~]# rpm -Uvh mysql
# 更新并展示 详细信息和进度条
[root@localhost ~]# rpm -F mysql
# 更新,在旧的基础上升级新的
[root@localhost ~]# rpm -Fvh mysql
# 更新并展示 详细信息和进度条

查询

查询软件安装

1
2
3
4
[root@localhost ~]# rpm -q mysql
# 查软件包是否安装
[root@localhost ~]# rpm -qa
# 查询所有安装的软件包

查询软件包文件

1
2
3
4
5
6
[root@localhost ~]# rpm -ql nano
/etc/ima/digest_lists.tlv/0-metadata_list-compact_tlv-nano-4.9.3-2.oe2209.x86_64
/etc/ima/digest_lists/0-metadata_list-compact-nano-4.9.3-2.oe2209.x86_64
/usr/bin/nano
/usr/bin/rnano
...

查询软件包信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~]# rpm -qi nano
Name : nano
Version : 4.9.3
Release : 2.oe2209
Architecture: x86_64
Install Date: 2022年10月24日 星期一 01时32分28秒
Group : Unspecified
Size : 2088365
License : GPLv3+
Signature : RSA/SHA1, 2022年09月28日 星期三 14时49分19秒, Key ID d557065eb25e7f66
Source RPM : nano-4.9.3-2.oe2209.src.rpm
Build Date : 2021年08月02日 星期一 08时00分00秒
Build Host : ecs-obsworker-205
Packager : http://openeuler.org
Vendor : http://openeuler.org
URL : https://www.nano-editor.org
Summary : Nano is a tiny GNU editor
Description :
Nano is a tiny GNU editor

DNF软件包管理

介绍

DNF的上一届:yum包管理

yum,全称:Yellodog Updater modified

yum是历史的产物,是光荣的牺牲者。

软件管理工具yum基于rpm包管理;

可以从指定服务器自动下载rpm服务器并安装;

可以解决软件包间依赖关系,提升效率。

由于yum工具有性能差、内存占用多、依赖解析速度慢、源文件依赖性较高等问题;

对于这种情况,DNF工具诞生;

DNF管理工具解决了一些yum工具的问题,并在各个方面得到了提升。

DNF工具简述

DNF,Dandified YUM,即修饰过的YUM

DNF可以查询软件包的信息,从指定软件库去获取软件包,并可以自动处理依赖关系,实现安装、卸载和更新;

DNF与yum完全兼容,可以使用yum命令行使用DNF工具;

使用需要root权限。

环节

  • 配置DNF
    • 配置参数
    • 创建本地软件源仓库;
    • 添加、启用或禁用软件源
  • 管理软件包/软件包组;
    • 列出软件包/软件包组清单;
    • 显示RPM包信息,显示软件包信息;
    • 下载rpm包;安装rpm包;安装软件包组;
    • 删除软件包/软件包组;
  • 检查更新
    • 更新所有包及其依赖。

软件源

Linux系统免费的应用程序安装仓库;

软件源可以是网络服务器光盘硬盘上的一个目录

配置文件

位置:/etc/dnf/dnf/conf

内容:

  • main部分保存DNF的全局配置;
    • cachedir:缓存目录,存储RPM包和数据库文件;
    • best:升级包时,总是尝试安装其最高版本,若无法安装,则提示无法安装原因并停止安装;
    • installoney_limit:可以同时安装“installonlypkgs”命令列出的包的数量,默认为3;
      • installonlypkgs,指的是手动指定的只能安装,不能升级的软件包;
    • clean_requirements_on_remove:在remove时删除软件时,删除不再使用的依赖项,默认为True。这里只能删除安装其他软件包时,DNF自动安装的软件包;
  • repository允许用户自定义软件仓库。这里要求各个仓库的名称不能相同,用户可以添加一个或多个repository来修改需安装软件源位置;

软件源管理

添加软件源

添加软件源有多个方法;

  • 方法1:修改配置文件/etc/dnf/dnf.conf,详细查看上一节最后;

  • 方法2:在/etc/yum.repos.d/目录下添加“.repo”文件;

  • 方法3:使用命令添加软件源:

    1
    dnf config-manager --add-repo repository_url

查询软件源

dnf repolist

1
2
3
4
5
6
7
8
[root@localhost ~]# dnf repolist
repo id repo name
EPOL EPOL
OS OS
debuginfo debuginfo
everything everything
source source
update update

启用/禁用软件源

1
2
3
4
5
# 启用软件源
dnf config-manager --set-enable repo_id

# 禁用软件源
dnf config-manager --set-disable repo_id

创建本地软件源仓库

可以创建本地软件源仓库,保存需要的软件包;

下面是创建本地软件源的方法:

  • 安装createrepo

    1
    dnf install createrepo;
  • 将需要的软件包放置在目录下,如:/mnt/local_repo/;

  • 执行命令创建软件源;

    1
    createrepo --database /mnt/local_repo

管理软件包

dnf search 软件包名

1
2
3
4
5
[root@localhost ~]# dnf search mysql
Last metadata expiration check: 2:04:39 ago on 2022年10月24日 星期一 14时00分16秒.
========================= Name & Summary Matched: mysql ==========================
mysql.x86_64 : MySQL client programs and shared libraries
mysql.src : MySQL client programs and shared libraries

列出已安装/可用软件包 list

列出所有可用软件包

1
dnf list all

查看指定软件包

1
2
3
4
5
6
[root@localhost ~]# dnf list mysql
Last metadata expiration check: 2:07:14 ago on 2022年10月24日 星期一 14时00分16秒.
Available Packages
mysql.src 8.0.29-1.oe2209 source
mysql.x86_64 8.0.29-1.oe2209 OS
mysql.x86_64 8.0.29-1.oe2209 everything

其他查询

1
2
dnf list installed # 列出已安装的包
dnf list available # 列出可用包

查询软件包信息 info

dnf info 软件包名

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# dnf info mysql
Last metadata expiration check: 2:09:03 ago on 2022年10月24日 星期一 14时00分16秒.
Available Packages
Name : mysql
Version : 8.0.29
Release : 1.oe2209
Architecture : src
Size : 620 M
Source : None
...

下载download、安装install、删除remove

1
2
3
4
5
6
# 下载mysql
[root@localhost ~]# dnf download mysql
# 安装mysql,若mysql不存在,则下载并安装mysql
[root@localhost ~]# dnf install mysql
# 移除mysql
[root@localhost ~]# dnf remove mysql

管理软件包组

注意,这里groups和group可通用。

  • 查看当前信息dnf groups summary

  • 列出软件包组和组iddnf groups list

    • 列出已安装的软件包组信息:dnf groups list --installed
      • -v:列出详细信息;
  • 列出软件包组必装和选装软件包组dnf groups info 包组名

  • 安装软件包组dnf group install group_name/group_id

  • 删除软件包组dnf group remove group_name/group_id

检查并更新

检查所有更新:dnf check-update

更新指定软件包:dnf update package_name

更新指定软件包组:dnf group update group_name

 评论