
常用的权限设置命令
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;
- 格式:x.y.z
- 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 | [root@localhost ~]# rpm -U mysql |
查询
查询软件安装
1 | [root@localhost ~]# rpm -q mysql |
查询软件包文件
1 | [root@localhost ~]# rpm -ql nano |
查询软件包信息
1 | [root@localhost ~]# rpm -qi nano |
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来修改需安装软件源位置;
- name=软件源名称;
- baseurl,软件仓库的地址,可以使用http、ftp和file等协议;
- http://path/to/repo
- ftp://path/to/repo
- file:///path/to/local/repo
软件源管理
添加软件源
添加软件源有多个方法;
方法1:修改配置文件
/etc/dnf/dnf.conf
,详细查看上一节最后;方法2:在/etc/yum.repos.d/目录下添加“.repo”文件;
方法3:使用命令添加软件源:
1
dnf config-manager --add-repo repository_url
查询软件源
dnf repolist
1 | [root@localhost ~]# dnf repolist |
启用/禁用软件源
1 | 启用软件源 |
创建本地软件源仓库
可以创建本地软件源仓库,保存需要的软件包;
下面是创建本地软件源的方法:
安装createrepo
1
dnf install createrepo;
将需要的软件包放置在目录下,如:/mnt/local_repo/;
执行命令创建软件源;
1
createrepo --database /mnt/local_repo
管理软件包
查询软件包 search
dnf search 软件包名
1 | [root@localhost ~]# dnf search mysql |
列出已安装/可用软件包 list
列出所有可用软件包
1 | dnf list all |
查看指定软件包
1 | [root@localhost ~]# dnf list mysql |
其他查询
1 | dnf list installed # 列出已安装的包 |
查询软件包信息 info
dnf info 软件包名
1 | [root@localhost ~]# dnf info mysql |
下载download、安装install、删除remove
1 | 下载mysql |
管理软件包组
注意,这里groups和group可通用。
查看当前信息:
dnf groups summary
列出软件包组和组id:
dnf 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