Ubuntu防火墙管理(七)——系统服务分析

news2024/12/14 2:54:18

本文是
Ubuntu防火墙管理(六)——ARP防火墙过滤防御&自定义系统服务
的续篇

问题——什么是Linux中的服务

在 Linux 中,服务(Service)通常指的是在后台运行的程序或进程,它们提供特定的功能或服务,供其他程序或用户使用。服务通常在系统启动时自动启动,并持续运行,直到系统关闭或服务被手动停止。

服务的特点:

  1. 后台运行:服务通常在用户不直接交互的情况下运行,常常在系统启动时自动启动。

  2. 提供功能:服务可以提供多种功能,例如网络服务(如 HTTP、FTP、SSH)、数据库服务、邮件服务等。

  3. 管理工具:Linux 提供了多种工具来管理服务,例如:

    • Systemd:现代 Linux 发行版(如 Ubuntu、CentOS、Fedora 等)使用 systemd 来管理服务。可以使用 systemctl 命令来启动、停止、重启和查看服务状态。
    • SysVinit:较旧的 Linux 发行版使用 SysVinit,服务通常通过 /etc/init.d/ 脚本进行管理。
  4. 配置文件:服务通常有自己的配置文件,位于 /etc/ 目录下,用户可以通过编辑这些文件来修改服务的行为。

常见的 Linux 服务示例:

  • Web 服务器:如 Apache、Nginx
  • 数据库服务器:如 MySQL、PostgreSQL
  • SSH 服务器:用于远程登录
  • 邮件服务器:如 Postfix、Sendmail

服务的管理命令

  • 启动服务:

    sudo systemctl start <service_name>
    
  • 停止服务:

    sudo systemctl stop <service_name>
    
  • 重启服务:

    sudo systemctl restart <service_name>
    
  • 查看服务状态:

    sudo systemctl status <service_name>
    
  • 设置服务开机自启动:

    sudo systemctl enable <service_name>
    
  • 禁用服务开机自启动:

    sudo systemctl disable <service_name>
    

通过这些管理工具和命令,用户可以有效地控制和管理 Linux 系统中的服务。

服务的作用

  1. 在开机执行特权命令
  2. 后台执行特殊程序

示例——创建一个简单的服务

1. 使用 systemd 创建服务

如果你的 Linux 发行版使用 systemd,你可以创建一个自定义服务单元文件,并在其中指定要执行的命令。为了执行特权命令,通常需要以 root 用户身份运行服务。

2. 创建服务单元文件

你可以在 /etc/systemd/system/ 目录下创建一个 .service 文件,定义服务的行为。例如,假设你想在开机时执行一个特权命令,可以按照以下步骤进行:

示例:创建一个自定义服务
  1. 编写脚本(例如 /usr/local/bin/my_privileged_script.sh):

    #!/bin/bash
    # 这里是你要执行的特权命令
    echo "Executing privileged command" >> /var/log/my_privileged_script.log
    

    确保脚本具有可执行权限:

    sudo chmod +x /usr/local/bin/my_privileged_script.sh
    
  2. 创建服务单元文件(例如 /etc/systemd/system/my_privileged_service.service):

    [Unit]
    Description=My Privileged Command Service
    After=network.target  # 如果需要网络服务,可以添加此行
    
    [Service]
    ExecStart=/usr/local/bin/my_privileged_script.sh
    User=root  # 以 root 用户身份运行
    Restart=on-failure  # 如果服务失败,自动重启
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启动和启用服务

    sudo systemctl daemon-reload  # 重新加载 systemd 配置
    sudo systemctl start my_privileged_service.service  # 启动服务
    sudo systemctl enable my_privileged_service.service  # 设置开机自启动
    

3. 安全性考虑

  • 权限管理:以 root 用户身份运行服务意味着该服务将拥有系统的所有权限,因此要确保脚本的安全性,避免执行不安全的命令。
  • 日志记录:建议在脚本中添加日志记录,以便于后续排查问题。
  • 最小权限原则:如果可能,尽量避免以 root 用户身份运行服务,考虑使用其他用户并通过 sudo 或其他方式授予必要的权限。

4. 使用 sudo

如果你希望以普通用户身份运行服务,但仍然需要执行特权命令,可以在 /etc/sudoers 文件中配置该用户可以无密码执行特定命令。例如:

username ALL=(ALL) NOPASSWD: /usr/local/bin/my_privileged_script.sh

然后在服务单元文件中使用 sudo 来执行该命令。

总结

通过自定义服务,用户可以在开机时执行特权命令,但需要谨慎处理权限和安全性问题。确保服务的安全性和稳定性是非常重要的。

管理nftables服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu18安装后基本配置操作

1. 关掉自动更新 不关掉自动更新&#xff0c;会将你的ubuntu系统更新到更高版本&#xff0c;一些配置就不能用了&#xff0c;所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 &#xff0c;…

Faiss 要点整理

Faiss能干什么 使用glove.6b.txt在字典中找到近义词&#xff0c;基本步骤包括加载数据、构建索引、进行相似性搜索 import numpy as np import faiss# 加载 GloVe 词向量 def load_glove_embeddings(file_path):embeddings {}with open(file_path, r, encodingutf-8) as f:fo…

得物使用AutoMQ构建海量数据处理的新一代可观测性架构

引言 得物作为全球领先的潮流网购社区&#xff0c;日益增长的用户和数据带来了巨大的技术挑战。当前&#xff0c;得物的可观测性平台每天生成数PB级Trace数据和数万亿条Span记录&#xff0c;要求平台具备高效的实时处理能力和低成本的数据存储解决方案。 传统的存算一体架构将…

硬件成本5元-USB串口采集电表数据完整方案-ThingsPanel快速入门

ThingsPanel开源物联网平台支持广泛的协议&#xff0c;灵活自由&#xff0c;本文介绍ThingsPanel通过串口来采集电表数据&#xff0c;简单易行&#xff0c;成本低廉&#xff0c;适合入门者学习试验&#xff0c;也适合一些特定的应用场景做数据采集。 适用场景&#xff1a; 降低…

数据库同步中间件DBSyncer安装配置及使用

1、介绍 DBSyncer&#xff08;英[dbsɪŋkɜː]&#xff0c;美[dbsɪŋkɜː 简称dbs&#xff09;是一款开源的数据同步中间件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务&#xf…

ragflow连ollama时出现的Bug

ragflow和ollama连接后&#xff0c;已经添加了两个模型但是ragflow仍然一直warn&#xff1a;Please add both embedding model and LLM in Settings &#xff1e; Model providers firstly.这里可能是我一开始拉取的镜像容器太小&#xff0c;容不下当前添加的模型&#xff0c;导…

python 下载 b站视频 和音频

video_bvid&#xff1a; import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一个从外部得到的单个视频ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…

时间敏感网络与工业通信的融合:光路科技电力专用交换机和TSN工业交换机亮相EP电力展

12月7日&#xff0c;第三十一届中国国际电力设备及技术展览会&#xff08;EP Shanghai 2024&#xff09;暨上海国际储能技术应用展览会在上海新国际博览中心圆满落幕。本届展会以“数字能源赋能新质生产力”为主题&#xff0c;系统地呈现了电力设备行业在技术融合、转型升级及上…

如何将CSDN的文章保存为PDF?

目录 1、打开CSDN文章2、按F12或者鼠标右键选择检查并进入控制台3、在控制台输入以下代码4、然后回车&#xff08;Enter&#xff09;如果纵向显示不全就横向 1、打开CSDN文章 2、按F12或者鼠标右键选择检查并进入控制台 3、在控制台输入以下代码 (function(){ $("#side&q…

android AIDL ipc binder转换

一. 概述 众所周知AIDL并不是所有的数据类型都可以传输。 可以传输的类型包括&#xff1a; 1.原生类型 2.String 3. CharSequence 4. List 5.Map 6. Binder 7. Parcelable 容器类 parcelable传输的时候会分解成成员&#xff0c;数组item的方式&#xff0c;传输完成后再进行…

JCR一区牛顿-拉夫逊优化算法+分解对比!VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测

JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测 目录 JCR一区牛顿-拉夫逊优化算法分解对比&#xff01;VMD-NRBO-Transformer-BiLSTM多变量时序光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院…

解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法

文章目录 解决&#xff1a;IDEA中Autowired自动注入MyBatis Mapper报红警告的几种解决方法问题描述&#xff1a;解决办法&#xff1a;1.将Autowired注解改成Resource2.给Autowired(required false)设置属性3.给Mapper层加注解Mapper/Repository4.改变写法,用RequiredArgsConst…

C语言-详细解答-重组字符串并16进制转10进制

1.题目要求 2.代码实现 #include <stdio.h> #include <ctype.h> #include <string.h>int hexToDec(char hex[]) {int len strlen(hex);int base 1;int dec 0;for (int i len - 1; i > 0; i--) {if (isdigit(hex[i])) {dec (hex[i] - 0) * base;} e…

sheng的学习笔记-AI-注意力模型(Attention Model)

Ai目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 先看下这两个文章&#xff1a; 序列模型&#xff1a;sheng的学习笔记-AI-序列模型&#xff08;Sequence Models&#xff09;&#xff0c;RNN,GRU,LSTM_音乐识别是一对多吗-CSDN博客 机器翻译 sheng的学习笔记-AI-自然语…

Arduino: Arduino IDE安装

目录 1.1 Arduino软件下载与安装 1.2 esp32_arduino的开发库安装 1.3 手动安装板支持包 1.1 Arduino软件下载与安装 Arduino官网下载地址&#xff1a;https://www.arduino.cc/en/software。 1.2 esp32_arduino的开发库安装 接下来安装esp32_arduino的开发库。 1.2.1 在线安…

在Ubuntu 22.04上搭建Kubernetes集群

Kubernetes 简介 什么是 Kubernetes&#xff1f; Kubernetes&#xff08;常简称为 K8s&#xff09;是一个强大的开源平台&#xff0c;用于管理容器化应用程序的部署、扩展和运行。它最初由 Google 设计并捐赠给 Cloud Native Computing Foundation&#xff08;CNCF&#xff0…

【ubuntu】将Chroma配置为LINUX服务

Chroma是一个轻量级向量数据库。既然是数据库&#xff0c;那么我希望它是能够长时间运行。最直接的方式是配置为service服务。 可惜官方没有去提供配置为服务的办法&#xff0c;而鄙人对docker又不是特别感冒。所以自己研究了下chroma配置为服务的方式。 系统&#xff1a;ubu…

【CSS in Depth 2 精译_071】11.4 思考字体颜色的对比效果 + 11.5 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 11.2.2.1 RGB…

PHP:连接Grid++Report模板,实现循环打印

实现效果 模板 代码 cycle.php <html xmlns"http://www.w3.org/1999/xhtml"><head><title>Web报表(B/S报表)演示 - 不用报表插件展现报表而是直接输出</title><meta http-equiv"Content-Type" content"text/html; chars…

Ubuntu22.04安装docker desktop遇到的bug

1. 确认已启用 KVM 虚拟化 如果加载了模块&#xff0c;输出应该如下图。说明 Intel CPU 的 KVM 模块已开启。 否则在VMware开启宿主机虚拟化功能&#xff1a; 2. 下一步操作&#xff1a; Ubuntu | Docker Docs 3. 启动Docker桌面后发现账户登陆不上去&#xff1a; Sign in | …