2024-08-16

在Linux上搭建SFTP服务器,通常需要以下步骤:

  1. 安装OpenSSH服务器。
  2. 创建一个SFTP用户,并设置限制访问的目录。
  3. 配置sshd\_config文件以启用SFTP。
  4. 重启SSH服务。

以下是具体的命令和配置示例:




# 安装OpenSSH服务器
sudo apt-get update
sudo apt-get install openssh-server
 
# 创建一个新的用户,例如 sftpuser
sudo adduser sftpuser
 
# 设置SFTP用户的主目录访问权限(如果需要)
sudo chroot_directory_var_chroot_sftpuser
 
# 编辑 /etc/ssh/sshd_config 文件
sudo nano /etc/ssh/sshd_config
 
# 在sshd_config中添加或修改以下行,启用chroot环境并指定sftp作为默认的shell
# 确保Subsystem sftp指向sftp-server
Subsystem sftp internal-sftp
 
# 指定用于sftp的chroot目录
Match User sftpuser
    ChrootDirectory /var/chroot/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
 
# 保存并关闭sshd_config文件
 
# 重启SSH服务
sudo service ssh restart

确保替换sftpuser为你想要创建的用户名,替换/var/chroot/sftpuser为你想要限制访问的目录。

这样,你就成功地在Linux上搭建了一个SFTP服务器,并且为指定用户设置了访问限制。

2024-08-16

在Linux文件系统中,每个文件都有一个inode(索引节点),它包含了文件的元数据,比如文件的大小、所有者、创建时间等。但是,inode并不包含文件名,文件名存储在目录项(directory entry)中,目录项关联了文件名和inode号。

软链接(symbolic link)就是一个常规文件,它含有另一文件的路径指向那个文件的inode。当你读取软链接的内容时,你实际上读取的是它指向的文件的路径。

硬链接(hard link)是一个指向inode的新的文件名,它允许你用不同的文件名访问同一个文件。硬链接的创建不会复制文件内容,它仅仅创建新的文件名指向已存在的inode。

对于读写权限,Linux文件系统使用9位权限位来控制。前三位是模式(模式为空格或者t,表示普通文件或者目录,还有一个t代表sticky bit),接下来的三位是所有者权限(user),再接下来的三位是组权限(group),最后三位是其他人(others)的权限。每个位可以设置为r(读权限)、w(写权限)、x(执行权限)或者-(无权限)。

例如,如果你想给一个文件设置所有者可读写执行,组用户可读执行,其他人无权限,你可以使用如下命令:




chmod 750 filename

如果你想给一个文件设置软链接,你可以使用如下命令:




ln -s target_file soft_link_file

如果你想给一个文件设置硬链接,你可以使用如下命令:




ln target_file hard_link_file
2024-08-16

在Linux中,Debian系统可以使用 pm-utils 包来实现挂起和休眠功能。以下是如何设置和使用这些功能的步骤:

  1. 安装 pm-utils



sudo apt-update
sudo apt-get install pm-utils
  1. 编辑 /etc/pm/config.d/config 文件(如果不存在,可以创建它),确保以下行是这样设置的:



SUSPEND_MODULES="usb-storage usb-storage-extra"

这将阻止系统在休眠时挂载USB存储设备,以避免在唤醒时出现问题。

  1. 使用以下命令进入休眠模式:



sudo pm-suspend
  1. 如果你想要使用Hibernate(将内存状态保存到硬盘),确保你有足够的硬盘空间,并且在 /etc/pm/config.d/config 文件中设置:



HIBERNATE_MODULES="usb-storage usb-storage-extra"

然后使用以下命令进入休眠模式:




sudo pm-hibernate
  1. 为了使命令快捷方便,你可以为它们创建一些快捷键或者脚本。

请注意,在执行挂起或休眠操作之前,确保所有的数据已经保存,因为这些操作可能会影响系统的性能和稳定性。

2024-08-16

在Windows和Linux上安装JDK并配置环境变量的步骤如下:

Windows 系统

  1. 下载JDK:访问Oracle官网或者其他JDK供应商网站下载对应版本的JDK。
  2. 安装JDK:双击下载的安装程序,按提示进行安装。
  3. 配置环境变量:

    • 右键点击“我的电脑”或“此电脑”,选择“属性”。
    • 点击“高级系统设置”。
    • 在“系统属性”窗口中选择“环境变量”。
    • 在“系统变量”区域点击“新建”,创建一个新的环境变量JAVA\_HOME。
    • 变量名输入JAVA_HOME,变量值输入JDK安装路径,例如C:\Program Files\Java\jdk1.8.0_201
    • 在“系统变量”中找到并选择Path变量,点击“编辑”,在弹出的窗口中点击“新建”,添加%JAVA_HOME%\bin
  4. 验证安装:打开命令提示符(cmd),输入java -versionjavac -version,如果正确显示版本信息,则说明安装和环境变量配置成功。

Linux 系统

以Ubuntu为例:

  1. 打开终端。
  2. 更新包列表:

    
    
    
    sudo apt update
  3. 安装OpenJDK:

    
    
    
    sudo apt install default-jdk
  4. 验证安装:

    
    
    
    java -version
    javac -version

如果需要安装特定版本的JDK,可以从Oracle官网下载对应的.tar.gz文件,解压后手动配置环境变量。

配置环境变量:




# 设置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
 
# 更新PATH变量
export PATH=$JAVA_HOME/bin:$PATH

将上述配置添加到~/.bashrc~/.profile文件中,然后执行source ~/.bashrcsource ~/.profile来应用更改。

再次运行java -versionjavac -version验证配置。

2024-08-16



#!/bin/bash
# 安装mosquitto MQTT代理服务
 
# 定义mosquitto版本和源码下载地址
MOSQUITTO_VERSION="2.0.14"
MOSQUITTO_DOWNLOAD_URL="https://mosquitto.org/files/source/mosquitto-${MOSQUITTO_VERSION}.tar.gz"
 
# 安装依赖
sudo apt-get update
sudo apt-get install -y build-essential cmake libssl-dev uuid-dev
 
# 下载mosquitto源码
cd /tmp || exit
wget "${MOSQUITTO_DOWNLOAD_URL}"
tar -xzf "mosquitto-${MOSQUITTO_VERSION}.tar.gz"
cd "mosquitto-${MOSQUITTO_VERSION}" || exit
 
# 编译和安装mosquitto
cmake -DCMAKE_INSTALL_PREFIX=/usr .
make
sudo make install
 
# 创建系统服务文件
sudo tee /etc/systemd/system/mosquitto.service <<EOF
[Unit]
Description=Mosquitto MQTT v${MOSQUITTO_VERSION} Broker
After=network.target
 
[Service]
User=mosquitto
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
 
# 创建mosquitto用户和配置目录
sudo adduser --system --no-create-home --disabled-login --group mosquitto
sudo mkdir /etc/mosquitto
sudo touch /etc/mosquitto/mosquitto.conf
 
# 重新加载系统服务守护进程
sudo systemctl daemon-reload
 
# 启动mosquitto服务
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
 
# 检查服务状态
sudo systemctl status mosquitto

这段代码提供了在Ubuntu系统上安装mosquitto服务的步骤。它首先安装了编译mosquitto所需的依赖,然后下载、解压并编译了mosquitto源码。接着,它创建了系统服务文件,并为mosquitto代理创建了用户和配置目录。最后,它重新加载了系统服务守护进程,启动并检查了mosquitto服务的状态。这个过程提供了一个简洁的安装和配置mosquitto服务的示例。

2024-08-16

在Linux系统中,GPIO(通用输入/输出)引脚可以通过/sys/class/gpio 目录进行操作。以下是使用这个接口进行GPIO操作的基本步骤:

  1. 导出GPIO引脚。
  2. 配置GPIO模式(输入或输出)。
  3. 读取或写入GPIO值。
  4. 撤销导出的GPIO。

下面是一个简单的示例脚本,展示了如何使用shell脚本操作GPIO:




#!/bin/sh
 
# GPIO 编号定义
GPIO=42
 
# 导出GPIO
echo $GPIO > /sys/class/gpio/export
 
# 设置GPIO模式为输出,如果需要输入则使用 echo in > /sys/class/gpio/gpio$GPIO/direction
echo out > /sys/class/gpio/gpio$GPIO/direction
 
# 写入GPIO值,1为高电平,0为低电平
echo 1 > /sys/class/gpio/gpio$GPIO/value
 
# 读取GPIO值
echo $(cat /sys/class/gpio/gpio$GPIO/value)
 
# 撤销导出的GPIO
echo $GPIO > /sys/class/gpio/unexport

确保你有足够的权限来操作GPIO,通常需要root权限。在运行这个脚本之前,请确认GPIO编号的正确性,并根据你的硬件进行适当的调整。

2024-08-16

在Linux系统中安装Python3环境,可以通过包管理器来进行。以下是在不同Linux发行版中安装Python3的命令:

对于Ubuntu和Debian系统:




sudo apt-get update
sudo apt-get install python3

对于CentOS系统:




sudo yum install python3

对于Fedora系统:




sudo dnf install python3

对于Arch Linux系统:




sudo pacman -S python3

安装完成后,可以通过以下命令检查Python3的版本:




python3 --version

如果需要pip(Python包管理工具),可以使用以下命令安装:




sudo apt-get install python3-pip  # Ubuntu
sudo yum install python3-pip      # CentOS
sudo dnf install python3-pip      # Fedora
sudo pacman -S python3-pip        # Arch Linux

安装pip后,可以通过以下命令安装Python包:




pip3 install package_name
2024-08-16



# 安装Chrony
sudo apt-install chrony -y
 
# 配置Chrony服务器
echo "server 0.pool.ntp.org iburst" | sudo tee /etc/chrony/sources.list
echo "server 1.pool.ntp.org iburst" | sudo tee -a /etc/chrony/sources.list
echo "server 2.pool.ntp.org iburst" | sudo tee -a /etc/chrony/sources.list
echo "server 3.pool.ntp.org iburst" | sudo tee -a /etc/chrony/sources.list
 
# 允许特定的NTP客户端访问
echo "allow 192.168.0.0/24" | sudo tee -a /etc/chrony/acls.conf
 
# 重启Chrony服务以应用更改
sudo systemctl restart chrony
 
# 检查Chrony的同步状态
chronyc tracking

这段代码演示了如何在Ubuntu系统上安装和配置Chrony NTP服务器。它首先通过apt-install命令安装Chrony软件包。然后,它通过重定向输出到sources.list文件来配置NTP服务器,使用iburst选项以更快的速度进行初次同步。接着,它允许了特定IP范围的客户端访问NTP服务。最后,它重启Chrony服务并检查其同步状态。

2024-08-16



# 创建一个新用户
sudo adduser newuser
 
# 查看当前用户的UID
id -u
 
# 修改newuser的UID为1005
sudo usermod -u 1005 newuser
 
# 查看newuser的新UID
id -u newuser
 
# 修改newuser的主组为newgroup
sudo usermod -g newgroup newuser
 
# 修改newuser的附加组为newgroup2
sudo usermod -a -G newgroup2 newuser
 
# 删除newuser的附加组newgroup2的权限
sudo gpasswd -d newuser newgroup2
 
# 设置newuser的登录shell为/bin/zsh
sudo chsh -s /bin/zsh newuser
 
# 修改newuser的密码到期时间为永不过期
sudo chage -M 99999 newuser
 
# 删除newuser用户
sudo userdel newuser

这段代码展示了如何在Linux中创建一个新用户,修改用户的UID、主组、附加组,更改登录shell和密码到期策略,以及最终删除用户。每一步都使用了sudo来确保拥有管理员权限,并且在执行关键操作时要求用户输入密码以确认操作的合法性。

2024-08-16

在Linux下安装Nginx和升级到nginx-1.24.0版本的步骤如下:

  1. 安装Nginx:



sudo apt update
sudo apt install nginx
  1. 检查Nginx版本:



nginx -v
  1. 添加Nginx官方仓库(如果需要升级到1.24.0,则需要添加):



sudo add-apt-repository ppa:nginx/stable
sudo apt update
  1. 升级Nginx到1.24.0:



sudo apt install nginx=1.24.0-1ubuntu1
  1. 再次检查Nginx版本确认升级成功:



nginx -v
  1. 启动Nginx服务:



sudo systemctl start nginx
  1. 使Nginx开机自启:



sudo systemctl enable nginx

请注意,上述命令适用于基于Debian的系统(如Ubuntu)。如果您使用的是基于RPM的系统(如CentOS),则需要使用yum或dnf等其他包管理工具,并且添加仓库的步骤可能会有所不同。