网站备案ip查询网站查询,常州市新北区城乡建设局网站,徐州建设工程交易平台,wordpress首页截断插件概述
放假回家#xff0c;对Linux系统的一些知识进行重新的整理#xff0c;做到温故而知新#xff0c;对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。
权限管理
Linux最基础的权限是用户和文件#xff0c;先了解基础的用户权限和文件权限…概述
放假回家对Linux系统的一些知识进行重新的整理做到温故而知新对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。
权限管理
Linux最基础的权限是用户和文件先了解基础的用户权限和文件权限。
用户权限
在大多数的Linux发行版中我们都建议初学者创建一个有限权利的账户我的stark这个用户就是有限权限的账户。
有些命令对系统的稳定性和安全性造成威胁具有有限的权限意味着我们不能运行一些可怕的命令在Linux中理论上来说我们可以创建无数个用户但是这些用户是被划分到不同的群组里面。
在安装完linux系统后加入我们创建的个人用户叫做stark这时系统中默认只有两个用户root和stark我们只在必要的时候才会切换为root身份其他时候都是在用有限权限的用户在运行这个策略的保护大大地提高了Linux系统的安全性有效防止误操作或者是病毒的攻击。
1、sudo 暂时成为root终端会提示你输入密码这个密码是你个人用户的密码即为stark的账户密码。
[starklocalhost ~]$ sudo systemctl status nginx.service
[sudo] stark 的密码2、sudo su切换到root身份使用exit命令退出root回到stark账号上。 3、su,这个命令需要输入的是root的密码这个是需要重点记忆的。
用户操作
1、添加账户名为 work 的用户,并设置密码
[rootlocalhost ~]# useradd work
[rootlocalhost ~]# passwd work
更改用户 work 的密码 。
新的密码
重新输入新的密码
passwd所有的身份验证令牌已经成功更新。2、删除用户
使用userdel删除用户如果想删除home目录使用-r命令
userdel work # 删除用户
userdel -r work # 删除用户和家目录群组操作
1、创建名为work的群组
groupadd work2、对群组添加用户
假如要将stark这个用户放到我刚创建的work这个群组里。
usermod -g work stark可以将一个用户添加到多个群组用-G参数,把用户stark同时添加到work、stark的群组中备注群组名之间要用逗号分隔而且没有空格
usermod -G work,stark stark-i:对用户重命名 /home中的用户家目录名不改变需要手动修改-g:修改用户所在群组
需要注意的是使用usermod时要小心因为配合-g或-G参数时它会把用户从原先的群组里剔除加入到新的群组。
如果你不想离开原先去群组又想加入新的群组可以在-G的参数基础上加上-a参数。
usermod -aG work,stark stark3、删除群组
删除名为work的群组
groupdel work4、用groups命令可以获知一个用户属于哪个群组
[rootlocalhost home]# groups stark
stark : work文件权限
1、文件权限
修改文件的所有者和群组,这里有个chown万能的命令-R参数非常有用R是recursive的缩写表示递归用来设置子目录和子文件。
chown -R stark:stark file.txt2、文件访问权限
在Linux系统里每个文件和目录都有一系列的权限属性使用chmod命令修改文件的访问权限chmod命令不需要是root用户才能运行,只要你是此文件的所有者就可以用chmod来修改文件的访问权限。
chmod的绝对用法来分配权限使用数字赋予文件访问权限chmod 640 file.txt对所有者、所属组、其他用户只要分别做加法就可以了然后把三个和连起来。
权限数字说明r4读w2写x1执行
chmod的相对用法是使用字面来赋予权限表示添加权限-表示去除权限表示分配权限。
[starklocalhost ~]$ chmod urwx,gr,o- test.sh
[starklocalhost ~]$ ll | grep test.sh
-rwxr----- 1 stark work 35 1月 5 16:34 test.sh权限说明u所有者g群组o其他
防火墙
Linux防火墙是一个用于管理系统内部网络访问的组件旨在防止未经授权的访问和恶意攻击Centos7以后 iptables 更换为 firewalld。
1、查看防火墙状态命令
systemctl status firewalldfirewall-cmd --state● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)Active: active (running) since Sun 2025-01-05 21:19:47 CST; 19min agoDocs: man:firewalld(1)Process: 268803 ExecReload/bin/kill -HUP $MAINPID (codeexited, status0/SUCCESS)Main PID: 267866 (firewalld)Tasks: 3 (limit: 22689)Memory: 37.6MCPU: 833msCGroup: /system.slice/firewalld.service└─267866 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid2、设置开放和移除端口
防火墙上添加和移除端口操作以80端口为例,添加/移除操作后需要重启防火墙服务。
#添加80端口
firewall-cmd --zonepublic --add-port80/tcp --permanent
#移除80端口
firewall-cmd --zonepublic --remove-port80/tcp --permanent#重启防火墙
firewall-cmd --reload
systemctl reload firewalld.service 3、查看已经开放的端口
sudo firewall-cmd --list-ports
80/tcp 3306/tcp重定向
重定向输出
Linux重定向的作用是把本来要显示在终端的命令结果输送到别的地方到文件中或者作为其他命令的输入。
最简单的操作就是把操作的命令的输出结果重定向到文件中,使用这个符号要小心如果此文件不存在则新建一个文件如果此文件已经存在那就会把文件内容覆盖掉而且是不会征求用户确认的。
是将重定向的内容写入到文件末尾起到追加的作用如果文件不存在也会被创建。
有时候我们既不想把输出结果显示在终端上也不想输出在文件中Linux中有一个俗称黑洞文件 /dev/null
重定向错误输出
先介绍三种输出stdin,stdout,stderr:
1、从键盘向终端输入数据这是标准输入也就是stdin对应的文件描述符是0。 2、终端接收键盘输入的命令会产生两种输出即标准输出stdout对应的文件描述符是1一种是标准错误输出即stderr对应的文件描述符是2。
21将标准错误输出重定向与标准输出相同的地方。
定时任务
Linux中的定时任务由crontab命令来执行用来读取和修改名为crontab的文件crontab文件包含了你要定时执行的程序列表也包含了执行的时刻。
crontab用于修改crontab文件cron用于实际执行定时的程序。
crontab 的三个主要参数
-l显示crontab文件-e修改crontab文件-r删除crontab文件
命令格式 minute hour dom month dow command
1、分钟,取值范围 (0-59) 2、小时,取值范围 (0-23) 3、日,取值范围 (1-31) 4、月份,取值范围 (1-31) 5、星期几,取值范围 (0-6星期日是0) 6、要执行的命令
例句
Crontab意义47 * * * * command每个小时的47分都执行 command 命令0 0 * * 1 command每个星期1的凌晨都执行 command 命令30 5 1-15 * * command每个月的1-15日的5点30分都执行command命令0 0 * * 1,3,4 command每个月星期一、星期三、星期四的凌晨都执行command命令0 */2 * * * command每2个小时的整点(0,2,4,6 等等)都执行command命令*/10 * * * 1-5 command每个星期一到星期五的每个10的倍数的分钟
压缩和解压
操作压缩和解压时先了解两个概念将多个文件变成一个总文件叫打包将一个大文件通过某些压缩算法变成一个小文件叫压缩。
1、创建一个归档
把tartest文件夹中的文件压缩成名为tartest.tar压缩包的命令如下。
c: create 表示创建v: verbose 表示显示操作的细节f: file 指定归档文件
[starklocalhost ~]$ sudo tar -cvf tartest.tar tartest/
[sudo] stark 的密码
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out2、显示归档里的内容
-tf显示归档里的内容并不解开归档。
[starklocalhost ~]$ tar -tf tartest.tar
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out3、追加文件到归档
把 result.txt 追加到文档到 tartest.tar 归档中
[starklocalhost ~]$ tar -rvf tartest.tar result.txt
result.txt4、解压归档文件
tar -xvf tartest.tar进程和服务
进程
简单来说进程就是加载到内存中运行的程序大多数程序运行时都只在内存中启动一个进程有的软件在程序运行时却会创建不少进程比如 Apache、Mysql等等。
1、列出所有参数的所有进程
ps -ef 2、列出指定用户运行的进程
ps -u www3、通过Cpu和内存过滤进程
ps aux | less 默认的结果集是未排好序的可以通过 --sort参数来排序,根据CPU使用率降序排列ps -aux --sort -pcpu,根据内存使用率来降序排列:ps -aux --sort -pmem
将CPU和内存参数合并到一起并通过管道显示前10个结果ps -aux --sort -pcpn,pmem | head
4、以树形结构显示进程
pstree 命令有很丰富的参数更多使用man pstree查看文档
[starklocalhost ~]$ pstree -p | grep mysql|-mysqld_safe(164526)---mysqld(165067)--{mysqld}(165068)| |-{mysqld}(165069)| |-{mysqld}(165070)5、关闭进程
5.1、CtrlC停止终端中正在运行的进程
CtrlC这个组合键只能作用于当前终端中正在运行的程序而终端中的复制和粘帖需要用CtrlShiftC和CtrlShiftV来执行。
5.2、kill命令
可以同时用kill来结束好几个进程只要用空格隔开他们的PID,可以用kill -9来立即强制结束进程。
sudo kill 254653 254656 2546555.3、killall
killall命令同一个程序运行时可能启动多个进程不同于kill命令killall命令后接程序名。
服务
在Linux中有特殊的进程这些进程不与任何终端关联并且无论用户的身份如何都在后台运行这些进程的父进程是PID进程号为1的进程PID为1的进程只在系统关闭时才会被销毁。
这些进程会在后台一直运行并且等待我们给他们分配工作在Unix/Liunx的世界中我们将这类进程称之为守护进程守护进程也被称为service服务器软件大多数都是以守护进程形式运行的守护进行的名字通常会在最后有一个d例如systemd,httpd,smbd等等。
Linux操作系统的开机过程BIOS启动-BootLoader启动-加载系统内核-内核进行初始化-启动初始化进程-初始化工作。
Systemd
Systemd 是 Linux 系统工具用来启动守护进程已成为大多数发行版的标准配置。历史上Linux 的启动一直采用init进程Systemd使用并行代替了init的串行。Systemd 并不是一个命令而是一组命令涉及到系统管理的方方面面。
1、Systemd管理系统
# 重启系统
$ sudo systemctl reboot# 关闭系统切断电源
$ sudo systemctl poweroff# CPU停止工作
$ sudo systemctl halt# 暂停系统
$ sudo systemctl suspend# 让系统进入冬眠状态
$ sudo systemctl hibernate# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep# 启动进入救援状态单用户状态
$ sudo systemctl rescuesystemctl list-units命令可以查看当前系统的所有 Unit 。
# 列出正在运行的 Unit
$ systemctl list-units# 列出所有Unit包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all# 列出所有没有运行的 Unit
$ systemctl list-units --all --stateinactive# 列出所有加载失败的 Unit
$ systemctl list-units --failed# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --typeservice2、Unit 的状态
systemctl status命令用于查看系统状态和单个 Unit 的状态。
# 显示系统状态
$ systemctl status# 显示单个 Unit 的状态
$ sysystemctl status bluetooth.service# 显示远程主机的某个 Unit 的状态
$ systemctl -H stark172.16.163.141 status httpd.service除了status命令systemctl还提供了三个查询状态的简单方法主要供脚本内部的判断语句使用以mysql服务为例。
# 显示某个 Unit 是否正在运行
$ systemctl is-active mysql.service# 显示某个 Unit 是否处于启动失败状态
$ systemctl is-failed mysql.service# 显示某个 Unit 服务是否建立了启动链接
$ systemctl is-enabled mysql.service3、Unit 管理
对于用户来说最常用的是下面这些命令用于启动和停止 Unit主要是 service。
# 立即启动一个服务
$ sudo systemctl start apache.service# 立即停止一个服务
$ sudo systemctl stop apache.service# 重启一个服务
$ sudo systemctl restart apache.service# 杀死一个服务的所有子进程
$ sudo systemctl kill apache.service# 重新加载一个服务的配置文件
$ sudo systemctl reload apache.service# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service# 设置某个 Unit 的指定属性
$ sudo systemctl set-property httpd.service CPUShares5004、开机启动
# 开机自动启动服务
sudo systemctl enable httpd# 开机不自动启动服务
sudo systemctl disable httpd# 查看服务是否开机自动启动
sudo systemctl is-enable httpd# 查看各个级别下服务的启动和禁止情况
systemctl list-unit-files --typeservice问题
1、sudo 命令暂时成为root,需要注意的是有可能会提示 stark 不在 sudoers 文件中。此事将被报告。切换root身份,编辑/etc/sudoers文件配置权限步骤如下。
su -
vim /etc/sudoers
stark ALL(ALL) ALL