2025年6月

修改完Samba配置文件后,可通过以下方法使配置文件生效并重启Samba服务器:

使配置文件生效

  • 重新加载配置文件:使用命令 samba-tool daemon reload ,该命令会使Samba服务器在不停止运行的情况下重新加载配置文件,从而使新的配置生效。

重启Samba服务器

  • 使用 systemctl 命令:如果系统使用 systemctl 来管理服务,可执行 sudo systemctl restart smbd.service 或 sudo systemctl restart nmbd.service 命令。 smbd.service 是Samba的主要服务,负责处理文件和打印共享; nmbd.service 主要用于NetBIOS名称服务。
  • 使用 service 命令:在一些系统中,也可以使用 sudo service smbd restart 或 sudo service nmbd restart 命令来重启Samba服务器。

在重启Samba服务器之前,建议先使用 samba -t 命令检查配置文件的语法是否正确,避免因配置错误导致服务器无法正常启动。

在Samba SMB配置文件中, create mask 和 directory mask 用于设置新建文件和目录的默认权限。具体含义如下:

  •  create mask = 0644 :表示当通过Samba创建新文件时,其初始权限将被设置为 0644 。用数字表示权限时,第一位数字代表文件所有者的权限,第二位代表所属组的权限,第三位代表其他用户的权限。 6 对应 rw- ,表示文件所有者有读和写的权限; 4 对应 r-- ,表示所属组用户和其他用户只有读权限。
  •  directory mask = 0750 :意味着通过Samba创建新目录时,其默认权限为 0750 。其中, 7 对应 rwx ,表示目录所有者有读、写和执行的权限; 5 对应 r-x ,表示所属组用户有读和执行权限,但没有写权限;最后的 0 表示其他用户没有任何权限。

在Linux系统中,可以使用以下命令查看挂载磁盘的分区格式:

使用 df -T 命令

该命令可以显示系统中已挂载的文件系统的相关信息,包括分区格式。例如,执行命令后可能会显示类似如下内容:

plaintext

Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 48736256 1429068 44855660 4% /
devtmpfs devtmpfs 1914568 0 1914568 0% /dev
tmpfs tmpfs 1927580 0 1927580 0% /dev/shm
 

其中,“Type”列显示的就是分区格式,如“ext4”“devtmpfs”“tmpfs”等。

使用 lsblk -f 命令

此命令可以列出系统中的块设备,并显示它们的文件系统信息,包括分区格式。示例输出如下:

plaintext

NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 5a64b3c8 - 462f - 4c2a - 8d86 - 999c99569696 /
sdb
└─sdb1 vfat SYSTEM_D 484F - 4643 /boot/efi
 

从输出中可以看到每个分区的文件系统类型(FSTYPE),如“ext4”“vfat”等。

使用 mount 命令

该命令会显示当前系统中所有已挂载的文件系统及其相关信息,包括分区格式。例如,输出中可能会有类似“/dev/sda1 on / type ext4 (rw,relatime)”的内容,其中“type ext4”表明了分区格式为ext4。

在Linux中,可以使用以下几种方法查看用户情况:

查看用户列表

  • 使用 cat /etc/passwd 命令:该文件包含了系统中所有用户的基本信息,每行代表一个用户,格式为 用户名:密码:用户ID:组ID:用户说明:家目录:登录Shell 。例如, root:x:0:0:root:/root:/bin/bash 表示root用户。
  • 使用 cut 命令与 /etc/passwd 文件结合:如 cut -d: -f1 /etc/passwd ,可以仅显示用户名列表。

查看当前登录用户

  • 使用 who 命令:能显示当前登录到系统的所有用户的相关信息,包括用户名、登录终端、登录时间等。例如, root tty1 2023-11-10 08:00 表示root用户在2023年11月10日8点登录到tty1终端。
  • 使用 w 命令:除了显示当前登录用户的信息外,还会显示用户正在执行的命令等更详细的内容。

查看用户所属组

  • 使用 groups 命令:后面跟上用户名,如 groups root ,可以查看指定用户所属的组。如果不指定用户名,则显示当前用户所属的组。

查看用户账户信息

  • 使用 id 命令:例如 id root ,会显示指定用户的用户ID、组ID以及所属的附加组等信息。

安装samba服务

apt-get install samba samba-common -y

添加账号

然后添加一个可以访问smb的账号(必须是已经存在的用户账号),比如添加root:
smbpasswd -a root
然后根据提示输入2次密码(密码不会显示,密码可以与当初设置的用户账号不同)

修改配置文件

nano /etc/samba/smb.conf,在文件最末端粘贴以下内容
[share]
comment = share media
path = /media/sda
browseable = yes
public = no
writable = yes
printable = no
create mask = 0644
directory mask = 0750
valid users = root
(现在默认访问目录是/media/sda1,如果要改,改第三行 path = /xxxxxx)

重启samba服务

sudo systemctl restart smbd.service