说明参考
https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
安装
1
| sudo apt install -y samba smbclient
|
服务
1
| systemctl enable smbd nmbd
|
加防火墙(没墙跳过)
1 2
| firewall-cmd --permanent --add-service=samba firewall-cmd --reload
|
安装工具
1
| sudo apt -y install policycoreutils-python-utils
|
创建共享目录
配置权限
1 2 3
| groupadd netdisk chgrp netdisk /var/netdisk/ chmod 2775 /var/netdisk/
|
检查一下默认的SELinux
不开启SELinux时跳过带(SElinux)
的配置。
将samba_share_t上下文类型应用于组共享(SElinux)
1
| semanage fcontext -a -t samba_share_t "/var/netdisk/"
|
让samba可以创建新的主目录(SElinux)
1
| setsebool -P samba_create_home_dirs=1
|
要使用Samba共享NFS文件系统(SElinux)
1
| setsebool -P samba_share_nfs=1
|
写入权限(SElinux)
1
| setsebool -P allow_smbd_anon_write=1
|
配置Samba
1 2 3 4 5 6 7 8 9 10 11 12
| [netdisk] comment = netdisk share path = /var/netdisk/%U/root/ writable = yes browseable = yes printable = no guest ok = no write list = @netdiskuser read list = @netdiskuser valid users = @netdiskuser create mask = 0770 directory mask = 0770
|
测试配置
输出Loaded services file OK
其它输出与配置文件一致则配置正确
查看目录(SElinux)
修改目录(SElinux)
1
| chcon -t samba_share_t /var/netdisk/
|
创建samba用户
1
| useradd -s /sbin/nologin -g netdisk samba
|
samba创建密码
启动服务
1
| systemctl start smbd nmbd
|
使用脚本sambadduser.sh创建测试用户dev2
1
| ./sambadduser.sh x "dev2 dev2"
|
sambadduser.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #!/bin/bash if [ ! "$2" ];then echo "arg2 is empty" exit 0 fi n=`echo $2 | cut -d ' ' -f 1` p=`echo $2 | cut -d ' ' -f 2`
useradd -s /sbin/nologin -g netdisk $n (echo $p;echo $p) | smbpasswd -s -a $n mkdir -m 0770 "/var/netdisk/${n}" mkdir -m 0770 "/var/netdisk/${n}/root" mkdir -m 0770 "/var/netdisk/${n}/cache" chown "${n}:netdisk" "/var/netdisk/${n}" chown "${n}:netdisk" "/var/netdisk/${n}/root" chown "${n}:netdisk" "/var/netdisk/${n}/cache"
|
测试用户dev2
1
| smbclient //localhost/netdisk -U dev2
|
使用脚本smbdeluser.sh删除测试用户dev2
1
| ./smbdeluser.sh x "dev2"
|
smbdeluser.sh
1 2 3 4 5 6 7 8 9
| #!/bin/bash
if [ ! "$2" ];then echo "arg2 is empty" exit 0 fi smbpasswd -x $2 userdel -r $2 rm -rf /var/netdisk/$2/
|