Appearance
Linux文件共享配置
sftp共享配置
linux使用ssh协议共享文件,多用户共享,设置用户不能ssh登录到命令行,只能访问特定的共享文件。
bash
groupadd dnc103sftp
useradd -MN -G dnc103sftp dnc103sftp01 //-M 不创建用户的主目录,-N 不创建与用户同名的组,-G 指定用户组。
passwd dnc103sftp01
mkdir /dnc103/sftp103/dnc103sftp01 //用户的共享目录
chown dnc103sftp01:root /dnc103/sftp103/dnc103sftp01
chmod 755 /dnc103/sftp103
chmod 770 /dnc103/sftp103/dnc103sftp01配置chroot限制用户到指定目录: 使用chroot将用户的访问限制在其主目录下,阻止用户访问系统的其他部分。
bash
vim /etc/ssh/sshd_config在文件末尾添加以下内容,限制dnc103sftp0的目录访问:
shell
AllowUsers cdn dnc103sftp01 dnc103sftp02
Match Group dnc103sftp //添加dnc103sftp用户。用户添加方法:Match User dnc103sftp01
ChrootDirectory /dnc103/sftp103
ForceCommand internal-sftp
AllowTcpForwarding nobash
systemctl restart sshd1)Match User dnc103sftp01
这行代码是一个条件语句,指定后续配置仅适用于dnc103sftp01用户。Match User用来匹配特定用户,使得仅对该用户应用一些特定配置。
后续的配置(缩进部分)将仅对dnc103sftp01生效,而不影响其他用户。
2)ChrootDirectory /dnc103/sftp103ChrootDirectory用于指定dnc103sftp01的根目录为/dnc103/sftp103。
设置了该指令后,user1在登录后只能访问该目录(或该目录下的子目录),无法访问其他系统文件。
这种配置通常用于增强安全性,特别是限制SFTP用户的文件访问范围。
3)ForceCommand internal-sftp
这行配置强制user1用户只能使用SFTP服务,而不能执行其他SSH命令。internal-sftp是OpenSSH内置的SFTP子系统,性能和安全性更高,适合设置SFTP-only的环境。
配置此选项后,user1无法通过SSH运行其他命令,只能使用SFTP。
4)AllowTcpForwarding no
这行代码禁用了TCP转发功能,限制dnc103sftp01通过SSH进行端口转发。TCP转发用于允许SSH客户端通过服务器转发流量(如动态代理、端口隧道等),禁用它可以减少潜在的安全风险。
配置示例功能总结:
对dnc103sftp01的访问权限进行了严格的限制:dnc103sftp01只能访问指定的目录/dnc103/sftp103;
只能使用SFTP协议进行文件传输,无法运行其他SSH命令;
无法进行端口转发。
这种配置通常用于限制用户访问,只开放文件传输功能,是较为常见的SFTP配置方案。
Linux中挂载sftp共享文件
bash
sudo yum -y install sshfs
mkdir ~/remote_sftp
sshfs -p 22 user1@192.168.1.8:/remote/path ~/remote_sftp/remote/path:服务器上的路径。~/remote_sftp:本地挂载点路径。
如果需要卸载挂载的SFTP文件系统,可以使用以下命令:
bash
fusermount -u ~/remote_sftpWindows中访问sftp共享文件
软件:Winscp
CentOS搭建smb(samba)文件共享
smb(samb)
bash
yum -y install samba samba-client samba-common //安装smb服务
mkdir -p /date/smb104
vim /etc/samba/smb.conf
[share104]
path = /date/smb104
valid users = @smb104g
read only = no
browsable = yes
writable = yes
groupadd smb104g
useradd -M -s /sbin/nologin -G smb104g smb104ucdn
useradd -M -s /sbin/nologin -G smb104g smb104u1
useradd -M -s /sbin/nologin -G smb104g smb104u2分别创建了3个用户smb104ucdn、smb104u1、smb104u2。-M:没有/home下的家目录。-s: 设置新用户的登录shell。/sbin/nologin:表示该用户无法登录系统,尝试登录时会显示一条消息。
这样设置可以防止用户通过终端或SSH登录到系统,但仍然可以通过Samba访问共享。-G:添加到smb104g组。
bash
smbpasswd -a smb104ucdn //smb104ucdn
smbpasswd -a smb104u1 //smb104u1
smbpasswd -a smb104u2 //smb104u2
chown smb104ucdn:smb104g /date/smb104
chmod 1775 /date/smb104
systemctl start smb
systemctl enable smbRockyLinux9上挂载Windows共享的文件
1、在Windows上开启文件共享
2、RockyLinux9上配置
bash
dnf install cifs-utils -y //安装必备工具
mkdir -p /dndncc //创建本地挂载点
chmod 755 /dndncc
vim /etc/smb-user.txt //创建凭据文件,能连接Windows文件共享的账号密码文件,格式如下
username=user
password=passwd
domain=WORKGROUP //如果Windows是工作组模式
chmod 600 /etc/smb-user.txt
mount -t cifs //192.168.1.8/共享名 /dndncc -o credentials=/etc/smb-user.txt,vers=3.0 //手动测试挂载
df -h | grep /dndncc //检查挂载
vim /etc/fstab //配置开机自动挂载
//192.168.1.8/共享名 /dndncc cifs credentials=/etc/smb-user.txt,_netdev,vers=3.0,uid=1000,gid=1000,file_mode=0755,dir_mode=0755 0 0
mount -a //测试挂载配置vers=3.0:指定SMB协议版本(根据Windows版本调整,如失败可试vers=2.1或vers=1.0)uid=1000,gid=1000:替换为你的Linux用户ID(通过id命令查看)file_mode/dir_mode:设置文件/目录权限
3、主网络经常换会遇到的问题
由于我是笔记本使用virtualbox虚拟机安装的rockylinux9,笔记本的网络会经常换,所以需要做以下配置
1)网络1:桥接模式,做DHCP,用来连接外网和局域网等。网络2:仅主机模式,固定ip,用来和主机通信传输共享文件等。
2)所以在rockylinux9挂载时需要使用网络2的ip通信。
