samba服务器配置和使用
安装:
#dnf install samba
端口:
管理工作组:UDP137,138
共享数据:TCP139,445(不一定存在)
启动服务:
#systemctl start smb
#systemctl enable smb
配置文件(/etc/samba/smb.conf):
1.先设定好服务器整体环境方面的参数
[global]
config file = /etc/samba/conf/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机 名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在 smb.conf中加入:config file = /etc/samba/conf/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由 smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
#用户组
workgroup = mygroup
#欢迎信息
server string = Samba Server Version %v
#加密
security = user
#使用TDB 数据库格式
passdb backend = tdbsam
#不加载打印机
load printers = no
#共享名
[homes]
#说明
comment = Home Directories
#除了使用者自己外,不可被其他人浏览
browseable = no
#挂载后可擦写此分享
writable = yes
#建立档案的权限为 664
create mode = 0664
#建立目录的权限为 775
directory mode = 0775
#指定允许访问该共享资源的用户&&多个用户或者组中间用逗号隔开,如果要加入一个组就用"@组名"表示,%s表示代替前一个[]里的内容
valid users = %S
valid users = MYDOMAIN\%S
[share]
comment = Public Stuff
#实际的 Linux 上面的目录位置
path = /home/samba
#用来指定该共享的管理员(对该共享具有完全控制权限)
admin users = admin
#指定允许访问该共享资源的用户或者组
valid users = share,@share
#指定不允许访问该共享资源的用户
invalid users = guest
#除了使用者自己外,不可被其他人浏览
browseable = no
#指定可以在该共享下写入文件的用户
write list = share,@share
#指定该共享是否允许guest账户访问
public = no
#指定该共享路径是否可写
writable = yes
#可以在该共享下写入文件的用户和组
write list = share,@share
- 用 testparm 查阅 smb.conf 的语法设定正确性
3.建立目录
#mkdir /home/project
#chmod 2770 /home/project
最后改变目录用户或者组属性
4.设定可使用 Samba 的用户账号与密码
#useradd -M -s /sbin/nologin -d /dev/null -G user1 share
使用 pdbedit 指令功能
# pdbedit -L [-vw] <==单纯的察看帐户信息
# pdbedit -a'-r'-x -u 账号 <==新增/修改/删除账号
# pdbedit -a -m -u 机器账号 <==与 PDC 有关的机器码
选项与参数:
-L :列出目前在数据库当中的账号与 UID 等相关信息;
-v :需要搭配 -L 来执行,可列出更多的讯息,包括家目录等数据;
-w :需要搭配 -L 来执行,使用旧版的 smbpasswd 格式来显示数据;
-a :新增一个可使用 Samba 的账号,后面的账号需要在 /etc/passwd 内存在者;
-r :修改一个账号的相关信息,需搭配很多特殊参数,请 man pdbedit;
-x :删除一个可使用 Samba 的账号,可先用 -L 找到账号后再删除;
-m :后面接的是机器的代码 (machine account),与 domain model 有关!
# pdbedit -a -u share
修改密码:
#smbpasswd share
5.查看分享资源
#smbclient -L [//主机或 IP] [-U 使用者账号]
6.挂载
#mount -t cifs //127.0.0.1/share /mnt -o username=share,password=123456
7.smbstatus:观察 SAMBA 的状态
# smbstatus [-pS] [-u username]
选项与参数:
-p :列出已经使用 SAMBA 联机的程序 PID ;
-S :列出已经被使用的资源共享状态;
-u :只列出某个用户相关的分享数据
8.SELinux设置
#允许共享Home目录
setsebool -P samba_enable_home_dirs on
#更改SELinux用户
chcon -t samba_share_t /path/to/directory