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/zoneinfo
cp /usr/share/zoneinfo/Asia/Shanghai /usr
-- hwclock(修改硬件主板时间以及纽扣电池,提供电路)
- 查看当前时间(timedatectl)
[root@localhost etc]# timedatectl
Local time: Sun 2025-05-18 22:06:38 CST
Universal time: Sun 2025-05-18 14:06:38 UTC
RTC time: Sat 2025-05-24 21:44:51
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
[root@localhost etc]# timedatectl status
Local time: Sun 2025-05-18 22:06:44 CST
Universal time: Sun 2025-05-18 14:06:44 UTC
RTC time: Sat 2025-05-24 21:44:56
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: active
RTC 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 ntp
2.查看ntp软件信息
[root@localhost etc]# ls /usr/lib/systemd/system/ | grep ntp
ntpdate.service
ntpd.service
ntp-wait.service
sntp.service
3.找到ntp软件配置文件
[root@localhost etc]# rpm -ql ntp | grep conf
/etc/ntp.conf
/etc/sysconfig/ntpd
/etc/sysconfig/ntpdate
/etc/sysconfig/sntp
4.修改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 iburst
5.重启ntp服务
systemctl restart ntpd.service
6.查看ntp是否和上游服务器同步
ntpstat
7.查看时间同步状态
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 从当前系统时间设置硬件时钟