linux限制普通用户只能上传文件不能下载和传文件到到其他服务器

embedded/2024/12/23 3:09:28/

1、实施方案

因为用户在linux系统默认主要是通过sftp、scp和lrzsz命令实现文件上传和下载,可以通过以下几点来防制普通用户的上传和下载文件,相关设置必须使用root用户进行操作。

  1. 禁用普通用户使用scp命令,可以防止普通用户使用winscp软件下载上传,还能防止传送文件至其他服务器跳转下载。
  2. 禁用普通用户使用lrzsz中的sz命令,可以实现普通用户使用rz上传文件,而不下载。
  3. 禁用ssh中默认sftp服务,可以提高服务器的安全级别,防止用户用ftp进行上传下载。

2、实施步骤

2.1 禁用普通用户(test)使用scp命令

`scp`是Linux系统中一个基于SSH(Secure Shell)协议的文件传输命令。它允许用户在不安全的网络环境中安全地传输文件。由于使用了SSH协议,`scp`命令在传输过程中会加密数据,确保数据的安全性和完整性。

2.1.1 配置scp命令权限

which scp #查看scp命令的绝对路径

setfacl -m test:r /usr/bin/scp #取消hangshu对scp的执行权限

getfacl /usr/bin/scp #查看权限配置,bin为/usr/bin软连

注:取消对test的权限配置命令为:setfacl -x u:test /usr/bin/scp

2.1.2切换至test用户时行验证

# su - test

$ scp test.txt 192.168.1.74:/tmp/

-bash: /bin/scp: Permission denied

 

2.2禁用普通用户(test)使用sz命令

lrzsz是一款Linux系统中常用的一个文件传输工具,可代替ftp上传和下载的程序,可以在终端中使用命令行操作,支持将本地文件或目录上传到远程服务器,或者从远程服务器下载文件或目录到本地。

sz:将选定的文件发送(send)到本地机器,运行命令后会弹出保存位置窗口。

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)。

2.2.1 配置sz命令权限

# which sz #查看scp命令的绝对路径

# setfacl -m test:r /usr/bin/sz #取消hangshu对scp的执行权限

# getfacl /usr/bin/sz #查看权限配置

setfacl -x u:test /usr/bin/scp #取消对hangshu的权限配置

2.2.2切换至hangshu用户时行验证

# su - test

$ sz test.txt #下载文件

-bash: /bin/sz: Permission denied

$ rz #执行rz选择文件进行上传

2.3禁用ssh中默认sftp服务

SFTP是SSH的一个功能,它允许用户和服务器之间进行安全文件传输。在SSH服务中,默认情况下是启用SFTP的,因为SFTP通常是通过SSH协议来进行的。SFTP服务的安全性是至关重要的,因为它们可能成为黑客攻击的目标,导致数据泄露或其他安全问题,所以建议禁用ssh中默认sftp服务。在/etc/ssh/sshd_config进行禁用sftp配置。

2.3.1禁用sftp服务

# vim /etc/ssh/sshd_config #注释以下配置,重启sshd服务即可

#Subsystem      sftp    /usr/libexec/openssh/sftp-server

# systemctl restart sshd

2.3.2验证sftp连接

使用filezilla软件进行sftp连接验证,经验证目标服务无法连接。


http://www.ppmy.cn/embedded/109676.html

相关文章

一分钟了解网络安全风险评估!

网络安全风险评估是一种系统性的分析过程,旨在识别和评估网络系统中的潜在安全风险。这个过程包括识别网络资产、分析可能的威胁和脆弱性、评估风险的可能性和影响,以及提出缓解措施。网络安全风险评估有助于组织了解其网络安全状况,制定相应…

c++高级编程第2版pdf

《C高级编程第2版》是一本深入探讨C编程技术的专业书籍,其完整源代码包含在“SourceCodeProfessionalCppSecondEdition”压缩包中。这个压缩包是书中的实践部分,供读者学习和参考,以加深对C高级概念的理解。C是一种静态类型、编译式的通用程序…

基于SpringBoot的社团管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于JavaSpringBootVueMySQL的社团管理系统【附源码文档】、…

【OpenCV-直方图与傅里叶变换】图像的基本变换、傅里叶变换、直方图

import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()1 直方图 1.1 cv2.calcHist(images,channels,mask,histSize,ra…

【Flutter】解决第一次运行项目很慢(gradle需要下载依赖)

配置gradle默认下载路径 默认下C盘谁顶得住 配置环境变量 名称: GRADLE_USER_HOME 值: D:\Develop\gradle 自己创建一个 下边是重点 配置gradle远端下载地址 后边版本号自己换 https://mirrors.cloud.tencent.com/gradle/ https://mirrors.cloud.tencent.com/gradle/gradl…

STM32看门狗

1 WDG简介 1 独立看门狗:时钟要求LSI(内部低速时钟) 要求时钟精度低:可能会出现,程序跑飞,但是喂狗代码也意外执行了 2 窗口看门狗:要求时钟精度高 3 看门狗直接产生复位(看门狗重装值是自减到零之前重装…

负载均衡式在线OJ

个人主页:Lei宝啊 愿所有美好如期而遇 目录 一、所用技术与开发环境 所用技术 开发环境 二、准备及库的安装 1. 升级gcc (gcc -v查看gcc版本, 超过7就不用看本条升级gcc) 2. 安装 jsoncpp 3. 安装 cpp-httplib 4. 安装boost库 5. 安装ctemplate 三、项目宏观结构…

P2P应用

当谈论P2P(点对点)应用程序时,我们实际上是在讨论一种网络架构和通信模式,它允许设备(或节点)直接连接并共享资源,而无需传统的客户端-服务器模型。P2P应用程序在许多领域都有广泛的应用&#x…