kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

Linux搭建samba文件共享服务器

https://blog.csdn.net/weixin_52270081/article/details/126379020

https://blog.51cto.com/chenguang/1606746

http://www.adintr.com/article/blog/327

https://www.cnblogs.com/Maker-Liu/p/16591621.html


Samba 配置只能上传下载不能删除修改的方法

让上传的文件不能修改, 只需要让上传的文件的权限里不包含写权限即可.

要让文件不能删除, 则涉及到文件父目录的写权限问题, 但是不能直接关闭父目录的写权限, 因为这样就不能在该目录下上传文件了.

解决方法是在父目录上设置 t 标志位, 这用用户就不能删除这个目录下不属于自己的文件, 所以还需要设置文件的所有者不能是上传的用户, 将其设置为 root 即可.

综上,

1

首先对共享的根目录设置 1777 权限, 所有者为 root, 然后配置文件 /etc/samba/smb.conf 里面的设置:

2

1
2
3
4
5
inherit owner = yes           # 上传的文件继承父目录的所有者, 而不是使用登录的账号名, 这样上传的文件的所有者都是 root 了.
writable = yes                # 允许上传操作
create mask = 1774            # 上传的文件没有写权限
directory mask = 1777         # 上传的目录具有所有权限
force directory mode = 1000   # 上传的目录设置 t 标志 

3

稍作修改, 去掉 inherit owner = yes 即可让用户可以删除自己上传的文件, 不能删除其他用户创建的文件


如何做到将每个客户端的连接信息存放在单独的文件呢?在smb.conf文件中:

1
2
3
log file = /var/log/samba/%m.log

max log size = 5000 最大日志容量为 5000KB

通过log level参数来调整日志记录级别,级别越高,记录越详细。Samba使用LOG_DAEMON将日志级别分为10级,下表1列出常用的4级。

1
2
3
4
5
类型       级别
LOG_ERR       0
LOG_WARNING   1
LOG_NOTICE    2
LOG_INFO  3

配置内核参数

1
2
3
4
5
6
7
8
9
10
11
ulimit -n 16384

vi /etc/security/limits.conf

在最后加入以下内容

* - nofile 16384

tips: 这主要是避免在启动Samba时出现以下警告信息:

rlimit_max: increasing rlimit_max (1024) tominimum Windows limit (16384)

一,samba的基本概念

在早期的网络世界中,文件数据在不同主机之间的传输大多是使用 ftp,但是使用ftp服务传输档案使得我们无法直接修改主机上面的档案数据。NFS服务可以实现在客户端的机器上直接使用服务器上面的文件,但是NFS主要在unix系列操作系统上使用。windows上面也有类似的文件系统,那就是cifs(Common Internet File system,通用internet文件系统),cifs的最简单的用途就是“网上邻居”,但是cifs只能让windows机器沟通。

所以,为了实现windows和unix系列系统之间能够相互沟通,就产生了samba服务。

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

Samba服务:是提供基于Linux和Windows的共享文件服务,服务端和客户端都可以是Linux或Windows操作系统。可以基于特定的用户访问,功能比NFS更强大。

二,samba的安装

1
2
3
yum install samba samba-common

apt-get install samba samba-common

三,samba的基本配置

首先最简单的配置,找到一个文件夹作为共享文件,如:/ubuntu/home/share

1:更改share文件权限,授予所有权限

1
chmoe 777 share

2:更改配置文件 /etc/samba/smb.conf 最后添加以下内容

1
2
3
4
5
6
7
8
9
10
11
[share]
    comment = var www share
    path = /var/www/share
    public = yes
    writable = yes

    inherit owner = yes
    create mask = 1444
    directory mask = 1777
    force directory mode = 1000   # 上传的目录设置 t 标志
# valid users = smbtest,smbtest2 用户控制

保存退出,重启samba服务

1
service smb restart

四,samba的账号权限配置

创建账号及密码

1
useradd -d / -s /sbun/nologin smbtest2

由于Samba用户要以系统用户为基础,因而需要先创建出系统用户之后,再将其添加为Samba用户。

1
smbpasswd -a smbtest2

由于不需要这些账号登录服务器权限,所以设置参数 /sbin/nologin。

可以通过执行 pdbedit -L命令列表显示目前系统中已经存在的所有Samba用户。

1
pdbedit -L

一台电脑登录多个账号,会报错,

不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次

如果需要其他账号登录,断开原账号解决方法:

可使用以下命令断掉已有连接(开始 -> cmd) 不要超级管理员

1
net use * /del /y

五,samba目录设置对指定用户可见

有些情况设定,需要自己账号登录,只可见自己授权的目录,其他目录不可见。

例如:这里 /samba/PM 目录,只对登录pm账号用户可见。

1:global注释掉map to guest = bad user

打开编辑配置文件

在 [global] 下找到 map to guest = bad user,这个参数配置,是实现匿名无须交互输入用户名和密码的,登录IP访问时不需要输入用户名和密码了。