一、什么是权限
# 权限主要用来约束用户能对系统所做的操作
二、为什么要使用权限
# 因为系统中不可能只存在一个root用户,一定会有多个用户, # 为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
三、权限与用户之间的关系
# 1.系统为每个文件定义了三种身份, 属主, 属组, 其他人 # 2.每一种身份分别对应了三种权限, r 读 w 写 x 执行
""" [root@kxq-pythonedu ~]# ll useradd_2.sh -rw-r-----. 1 adm root 618 9月 28 11:27 useradd_2.sh 三个用户访问文件: adm: 按照文件的所属主身份进行访问,而所属主定义的身份为 rw- 读写权限 kxq(root): 按照文件的所属组身份进行访问,而所属组定义的身份为 r-- 只有读权限 gougou: 按照文件的其他人身份进行访问,而其他人定义的身份为 --- 无权限 """
1、权限中的rwx是干什么的
""" 字母 含义 对应权限 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--只读 """
2、为什么要修改权限
""" [root@kxq-pythonedu ~]# chmod 640 useradd_2.sh # 属主: rw- 读写执行 6 # 属组: r-x 读和执行 5 # 其他: r-x 读和执行 5 [root@kxq-pythonedu ~]# chmod 755 useradd_2.sh [root@kxq-pythonedu ~]# ll useradd_2.sh -rwxr-xr-x. 1 adm root 618 9月 28 11:27 useradd_2.sh """
3、变更一个文件属主和数组
[root@kxq-pythonedu ~]# chown -R www.www web-demo/
demo示例:
1、安装php环境
[root@kxq-pythonedu ~]# setenforce 0 #关闭selinux [root@kxq-pythonedu ~]# systemctl stop firewalld #关闭firewalld防火墙 [root@kxq-pythonedu ~]# yum install httpd php -y [root@kxq-pythonedu ~]# systemctl start httpd [root@kxq-pythonedu ~]# wget http://fj.xuliangwei.com/public/kaoshi.zip [root@kxq-pythonedu ~]# unzip kaoshi.zip -d /var/www/html/
2、如果不调整权限,前台会提示写入成功,但实际会失败
tail -f /var/log/httpd/error_log
3、变更写入目录的属主和属组 ( 不要修改为 777 )
3.1、检查进程运行的用户身份是什么: apache
[root@kxq-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@kxq-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@kxq-pythonedu ~]# chown apache.apache /var/www/html/ [root@kxq-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@kxq-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@kxq-pythonedu ~]# ll /var/www/html/2020-09-29/ -rw-r--r--. 1 apache apache 438 9月 29 10:27 2_oldxu.txt
四、rpm软件包管理
1、什么是rpm
# redhat package mananger 红帽包管理工具, xxx.rpm 主要用来安装软件包.
""" 1.rpm包 可以通过rpm工具 yum工具管理 2.二进制包 解压即用 3.源码包 编译 ---> 二进制可执行文件 rpm工具安装会牵扯到依赖关系: A包 -> B包 -> C包 --> D包 --> E包 ---> F包 """
查询命令:
""" [root@kxq-pythonedu ~]# rpm -q httpd #查询安装或者没有安装 [root@kxq-pythonedu ~]# rpm -qa #显示系统中所有已安装的软件包 [root@kxq-pythonedu ~]# rpm -qa | grep httpd #查询所有系统已安装的软件包,过滤指定的包名 [root@kxq-pythonedu ~]# rpm -qc httpd #仅查看httpd这个包的配置在哪里 [root@kxq-pythonedu ~]# rpm -ql httpd #查看httpd这个包所有的文件存储的路径 """
痛点: rpm工具还是无法解决依赖间关系, 所有就有了 yum工具.
五、yum工具
1、什么是yum
# yum包管理工具,主要用安装软件, 通过互联网安装软件.并能解决依赖间关系.
1、什么是源,什么是仓库
""" 源: 存储在服务器中的一个repo文件, 文件中存储的是仓库的地址 仓库: 一推软件包的集合,源如果指向这个仓库,那么服务器就可以直接获取该仓库中的软件包 """
2、如何配置源
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3、使用yum
3.1、安装
# [root@kxq-pythonedu ~]# yum install samba -y
3.2、更新
# [root@kxq-pythonedu ~]# yum update samba -y
3.3、卸载
# [root@kxq-pythonedu ~]# yum remove samba -y
3.4、查询
# 知道命令,但是不知道安装哪个软件包, # 知道配置文件的路径,但是不知道是哪个软件包生成出来的. [root@kxq-pythonedu ~]# yum provides ifconfig [root@kxq-pythonedu ~]# yum provides /etc/my.cnf
3.5、清理缓存
# [root@kxq-pythonedu ~]# yum clean all #清理所有的缓存 # [root@kxq-pythonedu ~]# yum makecache #生成缓存 # [root@kxq-pythonedu ~]# yum repolist #查看仓库中的软件包