当前位置: 首页 > news >正文

Linux学习心得问题总结(三)

day09 文件权限篇

文件权限的属性有哪些?我们应如何理解这些属性?

文件权限的属性包括可读(r)、可写(w)、可执行(x)三种权限,根据文件类型可分为普通文件(.txt,.png,.png,.mp4...)还有一些特殊文件(二进制文件b,socket文件s),其文件属性分析如下:
请添加图片描述

然后针对文件和文件夹的权限做一个分类:

权限分类文件权限文件夹权限
作用首字母权限位为- 是普通文件类型
文件的最大权限位为777,默认的权限位为755
首字母权限位为d,属于文件夹类型
文件夹权限的改变下次所创建的文件都会依靠于文件的权限而定
文件夹的最大权限位为666,默认权限位为644

如何使用link 来添加快捷方式

link表示软链接,它的命令是ln,常常作为软件服务快捷方式,在Linux我们会将它指向PATH环首字母境变量

这里我以Nginx为例,创建了Nginx启动快捷方式

# 创建Nginx快捷启动方式
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx# 语法
ln -s 快捷方式路径 指向快捷方式的路径

效果如下图所示:

请添加图片描述

nginx快捷方式成功加入到了/usr/bin/环境变量内!!!

请添加图片描述

有关文件权限的数字表示方法和字母表示方法

3.1 关于文件权限的字母表示方法

  • 文件权限的表示方法:读r(read权限位数字表示为4),写w(write权限位数字表示为2),执行x(executive权限位数字表示为1)

  • 在这里我们就要提到一个文件权限修改关键的命令chmod(change modefiy),针对于chmod文件权限修改我们作用的对象有三个文件所属主u(root),文件所属组g(group),其他用户o,当然如果我们需要整体对文件进行修改需要使用a(all)权限从而能更方便修改用户所属权限关系

    chmod u-w a.txt b.txt     #将文所属主权限调制u-w
    chmod u+w,g+x,o+rw a.txt  #所属主加入w,所属组加入x,其他用户加入rw权限
    chmod a+x b.txt 		 #全部权限用户都有x可执行权限
    

    请添加图片描述

请添加图片描述

3.2 关于文件权限的数字表示方法

  • 在文件权限位中读权限会用数字4来表示,写权限会用数字2来表示,可执行权限用数字1来表示。

rwxr-xr-x------------------->755(u=4+2+1 g=4+1+0 o=4+1+0 )

-w---xr--------------------->214(u=0+2+0 g=0+0+1 o=4+0+0 )

chmod 755 a.txt    #一般会将权限的数字表示写在文件名之前

请添加图片描述

如何理解chown、chgrp命令

4.1 chown命令

chown(Change owner)更改所属主的权限,语法格式为chown ownuser filename

  • 修改文件用户权限

    chown abc a.txt 
    

请添加图片描述

  • 修改文件用户组权限

    chown :hhh111 a.txt
    

    请添加图片描述

    • 同时修改用户和用户组的权限
     chown hhh111:hhh111 a.txt
    

    请添加图片描述

    • 实现文件权限递归规则统一
    chown -R root /root/t1    #将t1目录的规则按照root的用户的原则进行修改
    

4.2 chgrp命令

  • chgrp (change group )修改了目录组权限,修改语法: chgrp old_group fileanme
chgrp hhh111  b.txt      

请添加图片描述

  • 实现群组递归效果(文件目录皆可)---->作用效果同chown

    chgrp -R gp1 a.txt
    

    请添加图片描述

day10 文件特殊权限

suid、sgid、sticky这几类权限有什么作用?为什么要学习这些权限?

在Linux 权限位中,有着一些特殊权限也发挥了一些重要的作用:suid (所有用户皆可访问和使用该文件)、sgid(使用的共享目录)、sticky(可粘贴键),关于特殊权限的添加也还是使用的chmod命令

  • suid (用户统一访问目录|文件)

【思考】 为什么无论是针对普通用户还是超级用户都能执行passwd修改密码操作,答案可想而知,我们就要根据passwd这个文件来进一步进行研究了

字母表现形式(s|S)

首先我们可以看到的是其权限位上表示的特殊权限位是s.如果在所属主用户上其原本拥有x权限,再加上特殊权限就是s,而如果本身不含有x可执行权限,那么它的特殊权限位就是S.如果我们加入了ssid权限,那么就只针对临时拥有可执行文件二进制文件有效。

  • 小写情况如下

    chmod u+s filename 
    

请添加图片描述

  • 大写情况如下

    chmod u+S filename
    

请添加图片描述

数字表现形式(用户控制位写成4位)

chmod 4655  a.txt  #这里的4节即表示特殊用户权限
  • sgid(共享目录)

方便所在组的所有用户能协同管理该目录,假如公司创建了一个运维组,且运维组只能管理属于自己的业务,而开发组负责自己开发的业务,那么我们针对这个场景应该如何应对呢?

  • 创建共享目录方法

    创建此类文件一定要确定目录文件权限拥有x权限,一般情况下我会给到目录777权限

    • chmod 777 testdir # testdir为测试的目标目录
    • **chmod g+s testdir ** #添加该目录为共享目录(字母表示法)|| chmod 7277 testdir #添加该目录为共享目录((数字表示法)

    请添加图片描述

  • sticky

    它的特点就是用户只能对用户进行写,而不能进行篡改操作,就好比老师发布了一个作用,只有老师自己独有权限修改和删除此类文件,你的身份无法进行此项操作。

    请添加图片描述

umask作用是什么

umask 也叫做默认子网掩码,默认掩码是0022 ,此权限主要是为了修改文件或者文件夹的默认权限位
我们通过查询文件权限可以知道:
文件夹默认权限位表示755----->简单来说:777-022=755
文件默认权限表示位表示644------>简单来说: 666-022=644

day11 系统服务管理篇

Linux默认提供的服务有哪些

1.1 ssh 服务

1.首先了解sshd服务端口情况
[root@hxd111 tmp]# netstat -tnlp | grep sshd 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1158/sshd: /usr/sbi 
tcp6       0      0 :::22                   :::*                    LISTEN      1158/sshd: /usr/sbi 2.了解针对服务有哪些有哪些常规的操作systemctl [start/stop/status/restart] service_name 下面以sshd为例做出简要说明systemctl status sshd || systemctl start sshd || systemctl stop sshd 3.sshd启动后即可访问该远程服务

1.2 network服务

针对Linux网路功能如何管理systemctl status  network|| systemctl start network || systemctl stop network 

systemctl有哪些常见的用法?

  • 在使用Centos6操作系统时,我们使用的是service管理服务的运行状态

    对于service 服务进行管理常见的使用项包括启动(start),停止(stop),重启(restart),重新加载配置(reload),查看状态(status)

    例如:启动mysqld服务时
    service mysqld  指令     指定mysql的使用帮助service mysqld start       #启动mysql服务service mysqld stop 	   #停止mysql服务service mysqld restart		#重启mysql服务service mysqld reload		#加载mysql配置文件

    chkconfig 指定服务进行开机自启动

作用:主要拥有以下几个功能: 为系统管理增加新服务,为系统管理移除服务、列出服务启动清单、查询服务的启动状态,默认不加选项只能显示服务使用信息

#查看系统程序列表
chkconfig --list 
#开机启动服务
chkconfig service on
# 关闭开机启动
chkconfig service off

随着后期系统的更新和完善,Centos7系统将Service启停服务的命令和chkconfig命令进行了整合,从而出现了如今的systemctl

systemctl语法

systemctl (英语全拼:system control) 用于控制systemd系统和管理服务
语法
systemctl [OPTIONS...] COMMAND ..command选项解释如下unit(表示服务 ----sshd,network,nginx)
以下几个命令即代替了旧版的service服务名
start:启动指定特定的unit
stop:关闭了指定的unit
restart:重启了指定的unit
reload: 重载指定的unit
status :查看unit当前运行状态
is-enabled:查看是否开机自启动而enable和disable则是替代了传统的自启动chkconfig 服务名 on/off
  • 列出内置服务、名字和状态(运行、挂掉的都显示)
systemctl list-units --type service 【--all】  #不输入all将只显示active内容 
  • 举例:搜索sshd服务进行管理
systemctl list-units --type service | grep sshd
systemctl is-enabled sshd.service

day12 scp与ntp服务

scp远程传输服务与Linux之间的关系

  • 由本机电脑传输文件到同局域网的其他设备(scp)

     scp /etc/passwd root@10.2.53.8:/tmp/
    
  • 拉取其他局域网上的设备

    scp root@10.2.53.8:/etc/passwd  /tmp/
    

systemctl命令原理

1.依赖于systemctl脚本存放路径 /usr/lib/systemd/system/

2.通过systemctl status服务调用这个脚本 status

3.找到了其可执行命令/usr/sbin/sshd -D

4.通过link方式创建了systemctl服务并指向了可执行路径

请添加图片描述

systemctl与Ngixn服务

# 1.使用yum源安装nginx
yum -y install nginx# 2.关闭防火墙,查看nginx
iptables -F# 关闭nginx服务
ps -ef | grep nginx 
kill -9 pid 
  • 以服务管理模式运行systemctl
systemctl start nginx.service
systemctl status nginx.service
systemctl stop nginx.service

实际运行systenctl文件下的nginx.service 可执行文件

请添加图片描述

Ntp时间服务器的部署

  • 修改linux的日期、时间timedatectl
timedatectl-- date (修改软件时间)--查看系统中时期文件ls /usr/share/zoneinfocp /usr/share/zoneinfo/Asia/Shanghai /usr-- hwclock(修改硬件主板时间以及纽扣电池,提供电路)
  • 查看当前时间(timedatectl)
[root@localhost etc]# timedatectlLocal time: Sun 2025-05-18 22:06:38 CSTUniversal time: Sun 2025-05-18 14:06:38 UTCRTC time: Sat 2025-05-24 21:44:51Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: noNTP service: activeRTC in local TZ: no
[root@localhost etc]# timedatectl statusLocal time: Sun 2025-05-18 22:06:44 CSTUniversal time: Sun 2025-05-18 14:06:44 UTCRTC time: Sat 2025-05-24 21:44:56Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: noNTP service: activeRTC in local TZ: no
  • 修改时间,时区

    timedatectl set-time '10:00'
    timedatectl list-timezones | wc -l
    timedatectl list-timezones | grep -i 'shanghai'
    timedatectl set-timezone Asia/Shanghai
    

ntp时间同步

  • ntpdate命令强制更新系统时间,进行时间同步
ntpdate -u ntp.aliyun.com
  • 搭建时间同步服务器
1.安装ntp软件
yum -y install ntp2.查看ntp软件信息
[root@localhost etc]# ls /usr/lib/systemd/system/ | grep ntp
ntpdate.service
ntpd.service
ntp-wait.service
sntp.service3.找到ntp软件配置文件
[root@localhost etc]# rpm -ql ntp | grep conf
/etc/ntp.conf
/etc/sysconfig/ntpd
/etc/sysconfig/ntpdate
/etc/sysconfig/sntp4.修改ntp配置文件
vim /etc/ntp.conf# 添加ntp的运行日志
logfile /var/log/my_ntp.log
#记录程序的运行进程号,通过脚本,找到程序进程id
profile /var/run/ntpd.pid
server times.aliyun.com iburst prefer
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst5.重启ntp服务
systemctl restart ntpd.service6.查看ntp是否和上游服务器同步
ntpstat7.查看时间同步状态
ntpq -p

date命令和hwclock命令

timedatectl进行了替代硬件+软件

让软件时间和硬件时间同步hwclock 可以将硬件时间和软件时间做同步-s --hctosys	从硬件时钟设置系统时间-w --systoch	从当前系统时间设置硬件时钟

置文件
vim /etc/ntp.conf

#添加ntp的运行日志
logfile /var/log/my_ntp.log
#记录程序的运行进程号,通过脚本,找到程序进程id
profile /var/run/ntpd.pid
server times.aliyun.com iburst prefer
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst

5.重启ntp服务
systemctl restart ntpd.service

6.查看ntp是否和上游服务器同步
ntpstat

7.查看时间同步状态
ntpq -p


###  date命令和hwclock命令timedatectl进行了替代硬件+软件

让软件时间和硬件时间同步

hwclock 可以将硬件时间和软件时间做同步
-s --hctosys 从硬件时钟设置系统时间
-w --systoch 从当前系统时间设置硬件时钟

相关文章:

  • 【工具变量】上市公司企业未来主业业绩数据集(2000-2023年)
  • CMake指令:find_package()在Qt中的应用
  • Collection集合遍历的三种方法
  • 大模型应用开发之RAG
  • leetcode106.从中序与后序遍历序列构造二叉树:索引定位与递归分治的完美配合
  • 网络 :序列和反序列化
  • 使用Docker Compose部署Dify
  • Linux `|` 管道操作符深度解析与高阶应用指南
  • SOC-ESP32S3部分:12-2、编码器驱动
  • ae卡通打架烟雾特效
  • 梯度下降 损失景观 视频截图
  • 第十八章:数据治理之数据质量:“数据质量”不仅仅和“数据质量”有关
  • 在train和eval模式下性能差距的问题(本文聚焦于BatchNorm2d)
  • 指针数组和数组指针的区别
  • ssm-ham项目1
  • 人工智能赋能教育:重塑学习生态,开启智慧未来
  • 小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集上
  • day36 python神经网络训练
  • 【LLM】LLM源码阅读与分析工具DeepWiki项目
  • Qt环境的搭建
  • 用ps做网站广告图/竞价外包推广
  • 毕业设计网站建设题目/如何解决网站只收录首页的一些办法
  • 网站开发验收报告模板/网站流量统计分析的维度包括
  • 网站建站 优化推广/凡科建站登录
  • 昆明微网站搭建/企业文化宣传策划方案
  • 网站开发源代码/淘宝推广运营