浅谈Linux 权限、压缩、进程与服务

概述

放假回家,对Linux系统的一些知识进行重新的整理,做到温故而知新,对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。

权限管理

Linux最基础的权限是用户和文件,先了解基础的用户权限和文件权限。

用户权限

在大多数的Linux发行版中,我们都建议初学者创建一个有限权利的账户,我的stark这个用户就是有限权限的账户。

有些命令对系统的稳定性和安全性造成威胁,具有有限的权限意味着我们不能运行一些可怕的命令,在Linux中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面。

在安装完linux系统后,加入我们创建的个人用户叫做stark,这时系统中默认只有两个用户root和stark,我们只在必要的时候才会切换为root身份,其他时候,都是在用有限权限的用户在运行,这个策略的保护大大地提高了Linux系统的安全性,有效防止误操作或者是病毒的攻击。

1、sudo 暂时成为root,终端会提示你输入密码,这个密码是你个人用户的密码,即为stark的账户密码

[stark@localhost ~]$ sudo systemctl status nginx.service
[sudo] stark 的密码:

2、sudo su切换到root身份,使用exit命令退出root,回到stark账号上。
3、su,这个命令需要输入的是root的密码,这个是需要重点记忆的。

用户操作

1、添加账户名为 work 的用户,并设置密码

[root@localhost ~]# useradd work
[root@localhost ~]# passwd work
更改用户 work 的密码 。
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。

2、删除用户

使用userdel删除用户,如果想删除home目录,使用-r命令

userdel work # 删除用户
userdel -r work # 删除用户和家目录
群组操作

1、创建名为work的群组

groupadd work

2、对群组添加用户

假如要将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 stark

3、删除群组

删除名为work的群组

groupdel work

4、用groups命令可以获知一个用户属于哪个群组

[root@localhost home]# groups stark
stark : work
文件权限

1、文件权限

修改文件的所有者和群组,这里有个chown万能的命令,-R参数非常有用,R是recursive的缩写,表示递归,用来设置子目录和子文件。

chown -R stark:stark file.txt

2、文件访问权限

在Linux系统里,每个文件和目录都有一系列的权限属性,使用chmod命令修改文件的访问权限,chmod命令不需要是root用户才能运行,只要你是此文件的所有者,就可以用chmod来修改文件的访问权限。

chmod的绝对用法来分配权限,使用数字赋予文件访问权限chmod 640 file.txt,对所有者、所属组、其他用户,只要分别做加法就可以了,然后把三个和连起来。

权限数字说明
r4
w2
x1执行

chmod的相对用法是使用字面来赋予权限,+表示添加权限,-表示去除权限,=表示分配权限。

[stark@localhost ~]$ chmod u=rwx,g=r,o=- test.sh
[stark@localhost ~]$ ll | grep test.sh
-rwxr-----  1 stark work    35  15 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 (code=exited, status=0/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 --nopid

2、设置开放和移除端口

防火墙上添加和移除端口操作,以80端口为例,添加/移除操作后,需要重启防火墙服务。

#添加80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#移除80端口
firewall-cmd --zone=public --remove-port=80/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。

2>&1将标准错误输出重定向与标准输出相同的地方。

定时任务

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 指定归档文件
[stark@localhost ~]$ sudo tar -cvf tartest.tar tartest/
[sudo] stark 的密码:
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out

2、显示归档里的内容

-tf显示归档里的内容,并不解开归档。

[stark@localhost ~]$ tar -tf tartest.tar
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out

3、追加文件到归档

把 result.txt 追加到文档到 tartest.tar 归档中

[stark@localhost ~]$ tar -rvf tartest.tar result.txt
result.txt

4、解压归档文件

tar -xvf tartest.tar

进程和服务

进程

简单来说,进程就是加载到内存中运行的程序,大多数程序运行时都只在内存中启动一个进程,有的软件在程序运行时却会创建不少进程,比如 Apache、Mysql等等。

1、列出所有参数的所有进程

ps -ef 

2、列出指定用户运行的进程

ps -u www

3、通过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查看文档

[stark@localhost ~]$ pstree -p  | grep mysql|-mysqld_safe(164526)---mysqld(165067)-+-{mysqld}(165068)|                                      |-{mysqld}(165069)|                                      |-{mysqld}(165070)

5、关闭进程

5.1、Ctrl+C停止终端中正在运行的进程

Ctrl+C这个组合键只能作用于当前终端中正在运行的程序,而终端中的复制和粘帖需要用Ctrl+Shift+CCtrl+Shift+V来执行。

5.2、kill命令

可以同时用kill来结束好几个进程,只要用空格隔开他们的PID,可以用kill -9来立即强制结束进程。

sudo kill 254653 254656 254655

5.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 rescue

systemctl list-units命令可以查看当前系统的所有 Unit 。

# 列出正在运行的 Unit
$ systemctl list-units# 列出所有Unit,包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all# 列出所有没有运行的 Unit
$ systemctl list-units --all --state=inactive# 列出所有加载失败的 Unit
$ systemctl list-units --failed# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --type=service

2、Unit 的状态

systemctl status命令用于查看系统状态和单个 Unit 的状态。

# 显示系统状态
$ systemctl status# 显示单个 Unit 的状态
$ sysystemctl status bluetooth.service# 显示远程主机的某个 Unit 的状态
$ systemctl -H stark@172.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.service

3、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 CPUShares=500

4、开机启动

# 开机自动启动服务
sudo systemctl enable httpd# 开机不自动启动服务
sudo systemctl disable httpd# 查看服务是否开机自动启动
sudo systemctl is-enable httpd# 查看各个级别下服务的启动和禁止情况
systemctl list-unit-files --type=service

问题

1、sudo 命令,暂时成为root,需要注意的是有可能会提示 stark 不在 sudoers 文件中。此事将被报告。,切换root身份,编辑/etc/sudoers文件,配置权限,步骤如下。

su -
vim /etc/sudoers
stark   ALL=(ALL)   ALL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8586.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

67-《蓝金花》

蓝金花 蓝金花,又名蓝鲸花。是属于玄参科植物,分布于巴西。株高50~90公分,叶对生,长椭圆形,先端锐,细锯齿缘。春至秋季开花,腋生,花冠长管状,花瓣蓝紫色&…

AI 相机软件算法密码

你想过用生活中随手一拍的照片塑造不同风格的自己吗?从古风大片到田园乡村,各种风格随意拿捏,或者从旅游宝地一秒闪回办公地点...... 这些之前存在于头脑中的概念,现在已成为现实走进了我们的生活! 【图片来源于网络&…

互联网概述

互联网 是什么 网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。 有什么用 计算机网络:有许多计算机组成,要实现计算机之间的数据传输 数据传输目的地址 保证数据迅速可靠传输…

DAY02 final关键字、static关键字、接口

学习目标 描述final修饰的类的特点//是一个最终类不能被继承,是一个太监类 描述final修饰的方法的特点//是一个最终方法,可以被继承使用,但是不能被重写 描述final修饰的变量的特点//是一个常量,值不能改变局部变量:定义在方法中的变量基本数据类型:值不能改变引用数据类型(数…

Day27-【13003】短文,什么是栈?栈为何用在递归调用中?顺序栈和链式栈是什么?

文章目录 第三章栈和队列总览第一节栈概览栈的定义及其基本操作如何定义栈和栈的操作?合理的出栈序列个数如何计算?栈的两种存储方式及其实现?顺序栈及其实现,还有对应时间复杂度*、清空栈,初始化栈5、栈空&#xff0c…

Python GUI 开发 | PySide6 辅助工具简介

关注这个框架的其他相关笔记:Python GUI 开发 | PySide6 & PyQt6 学习手册-CSDN博客 在上一章中,我们介绍了如何搭建 PySide6 & PyQt6 的开发环境。在搭建环境的时候我们配置了几个几个快捷工具,很多小伙伴可能都不知道是干啥用的。那…

《十七》浏览器基础

浏览器:是安装在电脑里面的一个软件,能够将页面内容渲染出来呈现给用户查看,并让用户与网页进行交互。 常见的主流浏览器: 常见的主流浏览器有:Chrome、Safari、Firefox、Opera、Edge 等。 输入 URL,浏览…

Elasticsearch+kibana安装(简单易上手)

下载ES( Download Elasticsearch | Elastic ) 将ES安装包解压缩 解压后目录如下: 修改ES服务端口(可以不修改) 启动ES 记住这些内容 验证ES是否启动成功 下载kibana( Download Kibana Free | Get Started Now | Elastic ) 解压后的kibana目…

如何解压7z文件?8种方法(Win/Mac/手机/网页端)

7z 文件是一种高效的压缩文件格式,由 7 - Zip 软件开发者所采用。它运用独特的压缩算法,能显著缩小文件体积,便于存储与传输各类数据,像软件安装包、大型资料集等。但要使用其中内容,就必须解压,因为处于压…

最新-CentOS 7安装1 Panel Linux 服务器运维管理面板

CentOS 7安装1 Panel Linux 服务器运维管理面板 一、前言二、环境要求三、在线安装四、离线安装1.点击下面1 Panel官网链接访问下载,如未登录或注册,请登录/注册后下载2.使用将离线安装包上传至目标终端/tem目录下3.进入到/tem目录下解压离线安装包4.执行…

Linux初识——基本指令(2)

本文将继续从上篇末尾讲起,讲解我们剩下的基本指令 一、剩余的基本指令 1、mv mv指令是move(移动)的缩写,其功能为:1.剪切文件、目录。2.重命名 先演示下重命名,假设我想把当前目录下的di34改成dir5 那…

特种作业操作之低压电工考试真题

1.下面( )属于顺磁性材料。 A. 铜 B. 水 C. 空气 答案:C 2.事故照明一般采用( )。 A. 日光灯 B. 白炽灯 C. 压汞灯 答案:B 3.人体同时接触带电设备或线路中的两相导体时,电流从一相通过人体流…

国产编辑器EverEdit - 目录树

1 目录树 1.1 应用场景 在编辑文档时,一些关联文档可能都存放在相同的目录或者相近的目录,如果可以显示当前文件的目录树,则可以快速的在这些关联文件中切换。 1.2 使用方法 选择菜单查看 -> 停靠窗格 -> 目录树,在目录树…

MiniHack:为强化学习研究提供丰富而复杂的环境

人工智能咨询培训老师叶梓 转载标明出处 想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Facto…

SET alter system reload

目录标题 alter system 只是 写 auto 文件SET & alter system1. **会话级别参数(Session-level parameters)**2. **系统级别参数(System-level parameters)**3. **某些特定的超级用户参数**4. **修改时生效的参数**总结&#…

苏州东菱振动试验仪器有限公司:振动试验设备行业的领军企业与发展历程

本文地址:http://www.aiqimao.com/zhidao/detail?id37943 苏州东菱振动试验仪器有限公司在振动试验仪器行业享有较高的知名度。公司致力于向众多行业供应优质振动试验设备,并提供专业服务。经过多年努力,该公司在市场上取得了显著成绩。以下…

使用EVE-NG-锐捷实现OSPF

一、OSPF基础知识 Open shortest Path First(OSPF)开放式最短路径优先协议 1.OSPF的关系状态 (1)邻居关系(TWO-WAY) 只发送hello包不发送LSA包(链路状态通告包) (2)邻接关系(FULL) OSPF设备与设备之间相互建立OSPF关系,初始为邻居关系(TWO-WAY)状态&#xff0…

C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

戴尔电脑设置u盘启动_戴尔电脑设置u盘启动多种方法

最近有很多网友问,戴尔台式机怎么设置u盘启动,特别是近两年的戴尔台式机比较复杂,有些网友不知道怎么设置,其实设置u盘启动有两种方法,下面小编教大家戴尔电脑设置u盘启动方法。 戴尔电脑设置u盘启动方法一、戴尔进入b…

【搜索回溯算法】:BFS的魔力--如何使用广度优先搜索找到最短路径

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:搜索回溯算法篇–CSDN博客 文章目录 一.广度优先搜索(BFS)解决最短路…