山东大学软件学院学生程序设计能力提升平台项目综述

目标

在Ubuntu系统上开通sftp文件服务,允许某些用户上传及下载文件。

但是这些用户只能使用sftp传输文件,不能使用SSH终端访问服务器,并且sftp不能访问系统文件。

系统管理员则既能使用sftp传输文件,也能使用SSH远程管理服务器。

操作步骤

sftp用户、用户组的创建
  • 添加sftp用户,创建 sftp 用户组

sudo adduser alice

sudo addgroup sftp-users

将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问

#/bin/false也可以替换为/sbin/nologin,目的是不允许该用户登录到系统中

sudo usermod -G sftp-users -s /bin/false alice

  • 创建sftp服务器的管理员身份,并且加入 ssh用户组(不限制他的shell操作权限)

sudo adduser admin

sudo addgroup ssh-users

-a 表示以追加形式将 admin 加入 ssh-users

sudo usermod -a -G ssh-users admin

创建文件服务器目录
  • 创建服务器文件目录

创建监狱目录

sudo mkdir /home/sftp_root

普通用户能够写入的共享文件目录

sudo mkdir /home/sftp_root/shared

设置共享文件夹的拥有者为管理员、用户组为 sftp-users

sudo chown admin:sftp-users /home/sftp_root/shared

拥有者、sftp用户组的成员具有一切权限

sudo chmod 770 /home/sftp_root/shared

默认允许所有用户或者用户组登录,若仅允许指定用户或者用户组访问,按照以下格式配置。

以空格间隔

AllowUsers user1 user2

AllowGroups group1 group2

权限配置

sudo vim /etc/ssh/sshd_config

在sshd_config文件的最后,添加以下内容:

AllowGroups ssh-users sftp-users

Match Group sftp-users

ChrootDirectory /home/sftp_root

AllowTcpForwarding no

X11Forwarding no

ForceCommand internal-sftp

这样配置的目的是:

  • 只允许ssh-uers及sftp-users通过SSH访问系统,其中ssh-uers用户组可以使用ssh,并且不受其他限制。

而SFTP用户组仅能使用SFTP进行访问,且不能使用shell

  • 针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件;

  • 禁止TCP Forwarding和X11 Forwarding

另外需要注意的是:ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

需要注意的一点的是,现在所有需要远程连接的用户都必须加入 ssh-users 才行。

如将用户 songyangji 加入 ,这样ta就可以使用ssh连接本机。

sudo usermod -a -G ssh-users songyangji

  • 限制ssh连接的访问IP

仍然是

sudo vim /etc/ssh/sshd_config

Authentication:

AllowUsers root@10.10.10.* #限制root用户只能通过10.10.10.*网段登录访问

AllowUsers charles@10.10.10.* #限制charles用户只能通过10.10.10.*网段登录访问

AllowUsers john@10.10.10.*

重启SSH

亦可

/etc/init.d/ssh restart

service ssh restart

RabbitMQ


Ubuntu

下载

先更新一下资源。

sudo apt update

由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang。

sudo apt install -y erlang-nox

安装rabbitmq

sudo apt install -y rabbitmq-server

默认下载的地址

songyangji@SongyangJi-Ubuntu-DeskStop:/etc/rabbitmq$ whereis rabbitmq

rabbitmq: /usr/lib/rabbitmq /etc/rabbitmq /usr/share/rabbitmq

开启、关闭

start

sudo service rabbitmq-server start

stop

sudo service rabbitmq-server stop

直接到/sbin目录下执行也是可以的。

启动 start

sudo /sbin/service rabbitmq-server start

停止 stop

sudo /sbin/service rabbitmq-server stop

启动Web管理端

安装了Rabbitmq后,默认也安装了该管理工具,执行命令即可启动

cd /etc/rabbitmq

sudo rabbitmq-plugins enable rabbitmq_management

访问 localhost:15672

出现一下即可。

在这里插入图片描述

MacOS

下载

brew update

brew install rabbitmq

用户及权限管理

  • 添加用户

sudo rabbitmqctl add_user jsy-mac0 8888

  • 设置用户身份

sudo rabbitmqctl set_user_tags jsy-mac0 administrator

  • 添加权限

rabbitmqctl set_permissions -p / jsy-mac0 “." ".” “.*”

配置环境变量

export RABBITMQ_HOME=/opt/homebrew/Cellar/rabbitmq/3.8.13

export PATH= P A T H : PATH: PATH:RABBITMQ_HOME/sbin

启动、关闭

rabbitmq start

rabbitmq stop

访问Web端是一样的。

个人任务

====================================================================

Sandbox


  • Argtable学习使用、源码分析

如何构建符合 POSIX 实用程序约定的Shell-CLI。

  • sandbox 日志模块的构建与分析

记录sandbox程序的核心日志,方便debug。

  • linux读写文件相关CLib函数、系统调用分析

sandbox程序的基础使用。

  • linux使用进程、线程原语的分析

sandbox程序的基础使用。

  • linux用户权限的动态设置的分析

如何在程序中动态控制用户的使用权限, 防止外来的代码对系统产生破坏。

  • linux <sys/resource.h>的代码分析

如何限制用户使用代码的资源使用。

  • linux <seccomp.h>的使用分析

如何使用户进程在一个安全的计算模式下运行,也就是 secure computing mode的实现。

  • 进程的处理器核心亲缘性控制

如何避免用户进程在多个处理器核心上切换。

SduOJ-Jduge-Server


  • Slf4j、Log4j2

评测机的异常抛出多,调用链长,合理的日志构建对于debug的是必须的。

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

)SduOJ-Jduge-Server


  • Slf4j、Log4j2

评测机的异常抛出多,调用链长,合理的日志构建对于debug的是必须的。

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

[外链图片转存中…(img-e5D0bdh7-1714690315363)]

[外链图片转存中…(img-9bVLajlA-1714690315363)]

最常见Java面试题解析(2021最新版)

[外链图片转存中…(img-3ITZMfrg-1714690315363)]

[外链图片转存中…(img-RYu21W8F-1714690315364)]

2021企业Java面试题精选

[外链图片转存中…(img-aN9VtJfY-1714690315364)]

[外链图片转存中…(img-JWtbPAxK-1714690315364)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值