avatar

目录
Linux权限管理、rpm软件包管理、yum工具

一、权限管理

1.什么是权限?
Code
1
权限主要用来约束用户能对系统所做的操作
2.为什么要使用权限?
Code
1
因为系统中不可能只存在一个root用户,一定会有多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
3.权限与用户之间的关系?
Code
1
2
3
4
5
6
7
8
9
10
(1)系统为每个文件定义了三种身份,  属主, 属组, 其他人
(2)每一种身份分别对应了三种权限, r 读 w 写 x 执行

[root@oldboy-pythonedu ~]# ll useradd_2.sh
-rw-r-----. 1 adm root 618 9月 28 11:27 useradd_2.sh

三个用户访问文件:
adm: 按照文件的所属主身份进行访问,而所属主定义的身份为 rw- 读写权限
oldboy(root): 按照文件的所属组身份进行访问,而所属组定义的身份为 r-- 只有读权限
gougou: 按照文件的其他人身份进行访问,而其他人定义的身份为 --- 无权限
4.权限中的rwx是干什么的?
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
字母		   含义		对应权限
r(read) 读取权限 4
w(write) 写入权限 2
x(execute) 执行权限 1
-(没有权限) 没有权限 0


644 rw-r--r--
755 rwxr-xr-x

文件示例: rwxrw-r-- alice hr file1.txt

file1.txt文件属于alice所用于, 属于hr组成员拥有, alice拥有 rwx 读写执行 hr组拥有读写权限 其他人 只读权限


Q1: alice对file1文件拥有什么权限? rwx 读写执行
Q2: jack 对 file1.txt 文件有什么权限? 前提:jack 属于 hr 组 rw 读写
Q3: tom 对 file1.txt 文件有什么权限? r--只读
5.为什么要修改权限?
Code
1
进程运行需要一个用户,  而进程在完成上传的操作时, 需要调用对应的用户来执行,  能不能执行成功, 取决于该用户对该文件是否有权限
6.怎么修改权限? chmod
Code
1
2
3
4
5
6
7
[root@oldboy-pythonedu ~]# chmod 640 useradd_2.sh
# 属主: rwx 读写执行 7
# 属组: r-x 读和执行 5
# 其他: r-x 读和执行 5
[root@oldboy-pythonedu ~]# chmod 755 useradd_2.sh
[root@oldboy-pythonedu ~]# ll useradd_2.sh
-rwxr-xr-x. 1 adm root 618 9月 28 11:27 useradd_2.sh
7.变更一个文件属主和属组?
Code
1
[root@oldboy-pythonedu ~]# chown -R www.www web-demo/
8.通过一个文件文件上传和下载的demo?

1.安装php环境:

Code
1
2
3
4
5
6
7
[root@oldboy-pythonedu ~]# setenforce 0					#关闭selinux
[root@oldboy-pythonedu ~]# systemctl stop firewalld #关闭firewalld防火墙
[root@oldboy-pythonedu ~]# yum install httpd php -y
[root@oldboy-pythonedu ~]# systemctl start httpd
[root@oldboy-pythonedu ~]# wget http://fj.xuliangwei.com/public/kaoshi.zip
[root@oldboy-pythonedu ~]# unzip kaoshi.zip -d /var/www/html/

2.如果不调整权限,前台会提示写入成功,但实际会失败

Code
1
tail -f /var/log/httpd/error_log

3.变更写入目录的属主和属组 ( 不要修改为 777 )

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
3.1) 检查进程运行的用户身份是什么:  apache
[root@oldboy-pythonedu ~]# ps -ef |grep httpd | head -2
root 24130 1 0 10:13 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND #Master进程
apache 24132 24130 0 10:13 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND #Worker进程

3.2) 检查进程要写入的目录是什么权限:
[root@oldboy-pythonedu ~]# ll -d /var/www/html/
drwxr-xr-x. 2 root root 77 9月 29 10:21 /var/www/html/

总结: 写不进去的原因:
进程会调用apache用户往 /var/www/html目录写, 而apache用户对/var/www/html目录仅拥有 读和执行,所以会失败.

3.3) 调整/var/www/html 属主和属组
[root@oldboy-pythonedu ~]# chown apache.apache /var/www/html/
[root@oldboy-pythonedu ~]# ll -d /var/www/html/
drwxr-xr-x. 2 apache apache 77 9月 29 10:21 /var/www/html/

3.4) 最后验证程序是否能正常上传文件至/var/www/html/中
[root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/ -d
drwxr-xr-x. 2 apache apache 25 9月 29 10:27 /var/www/html/2020-09-29/

[root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/
-rw-r--r--. 1 apache apache 438 9月 29 10:27 2_oldxu.txt

二、rpm软件包管理

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
什么是rpm
redhat package mananger 红帽包管理工具, xxx.rpm 主要用来安装软件包.

1.rpm包 可以通过rpm工具 yum工具管理
2.二进制包 解压即用
3.源码包 编译 ---> 二进制可执行文件

rpm工具安装会牵扯到依赖关系:
A包 -> B包 -> C包
--> D包 --> E包
---> F包
....................................


安装:
[root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm

卸载:
[root@oldboy-pythonedu ~]# rpm -e vsftpd

升级: Uvh
[root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-shell-3.0.0-1.el7.x86_64.rpm

查询结果
[root@oldboy-pythonedu ~]# rpm -qa | grep mongodb
mongodb-org-shell-3.0.0-1.el7.x86_64

升级版本
[root@oldboy-pythonedu ~]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.2/x86_64/RPMS/mongodb-org-shell-3.2.0-1.el7.x86_64.rpm

再次检查
[root@oldboy-pythonedu ~]# rpm -qa | grep mongodb
mongodb-org-shell-3.2.0-1.el7.x86_64

查询命令:
[root@oldboy-pythonedu ~]# rpm -q httpd #查询安装或者没有安装
[root@oldboy-pythonedu ~]# rpm -qa #显示系统中所有已安装的软件包
[root@oldboy-pythonedu ~]# rpm -qa | grep httpd #查询所有系统已安装的软件包,过滤指定的包名
[root@oldboy-pythonedu ~]# rpm -qc httpd #仅查看httpd这个包的配置在哪里
[root@oldboy-pythonedu ~]# rpm -ql httpd #查看httpd这个包所有的文件存储的路径


痛点: rpm工具还是无法解决依赖间关系, 所有就有了 yum工具.

三、yum工具 ( 联网 )

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
3.1) 什么是yum
rpm包管理工具,主要用安装软件, 通过互联网安装软件. 并能解决依赖间关系.

3.2) 什么是源,什么是仓库
源: 存储在服务器中的一个repo文件, 文件中存储的是仓库的地址
仓库: 一推软件包的集合,源如果指向这个仓库,那么服务器就可以直接获取该仓库中的软件包

3.3) 如何配置源 | 仓库 ?
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.4) 使用yum
安装
[root@oldboy-pythonedu ~]# yum install samba -y

更新
[root@oldboy-pythonedu ~]# yum update samba -y

卸载
[root@oldboy-pythonedu ~]# yum remove samba -y

查询
知道命令,但是不知道安装哪个软件包,
知道配置文件的路径,但是不知道是哪个软件包生成出来的.

[root@oldboy-pythonedu ~]# yum provides ifconfig
[root@oldboy-pythonedu ~]# yum provides /etc/my.cnf

清理缓存:
[root@oldboy-pythonedu ~]# yum clean all #清理所有的缓存
[root@oldboy-pythonedu ~]# yum makecache #生成缓存
[root@oldboy-pythonedu ~]# yum repolist #查看仓库中的软件包
文章作者: kuokay
文章链接: http://yoursite.com/2021/01/18/Linux%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%E3%80%81rpm%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86%E3%80%81yum%E5%B7%A5%E5%85%B7/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 kuokay
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论