如何在Linux上安装SMB分享
SMB是基于Windows的计算机使用的协议,用于在网络上共享对资源的访问权限。
要安装SMB Share,Linux内核现在支持默认支持SMB3(默认要求SMB3.1.1/SMB3.02/SMB3/SMB2.1方言)。
CIFS是服务器消息块(SMB)协议的特定实现。
CIFS是SMB的方言。
CIFS-utils提供用户空间工具,用于在Linux上安装SMB/CIFS共享。
在本教程中,将介绍如何在Linux上安装SMB股票。
在Linux上安装CIFS-Util
安装SMB/CIFS共享我们需要在Linux上安装CIFS Utils包。
运行以下命令以在Ubuntu和Debian上安装CIFS-Util:
$sudo apt update $sudo apt install cifs-utils
要在RHEL,CentOS或者Fedora上安装CIFS-Util,请键入以下命令:
$sudo yum install cifs-utils
对于Fedora28及以上使用DNF包来安装CIFS-Utils:
$sudo dnf install cifs-utils
使用CIFS安装SMB份额
在本节中,教程将向我们展示在Linux系统上使用CIF安装SMB共享的方法。
使用"CIFS"选项的Mount命令选项,可以将SMB共享安装在安装点上。
在以下示例中,我们使用SMB 1协议使用"-o VERS = 1.0"选项来安装共享:
$sudo mount -t cifs -o vers=1.0,username=user_name //server_name/share_name /mnt/data
默认情况下,Linux内核使用操作系统支持的最新SMB协议版本。
在以下命令中,我们将在不传递'vers ='选项的情况下安装smb共享:
$sudo mount -t cifs -o username=user_name //server_name/share_name /mnt/data
如果用户位于Windows域中,请将域指定为以下命令:
$sudo mount -t cifs -o username=DOMAIN\Administrator,seal,vers=3.0 //server_name/share_name /mnt/data
默认情况下,Linux安装Windows共享与完整权限(RWX或者777)。
如果要自己更改权限,请使用dir_mode和file_mode选项来设置目录和文件的权限。
$sudo mount -t cifs -o credentials=/etc/credentials,dir_mode=0755,file_mode=0755 //server_name/<share_name> /mnt/data
我们还可以通过指定UID(用户ID)和GID(组ID)选项来更改用户和组的默认所有权。
$sudo mount -t cifs -o credentials=/etc/credentials,uid=500,gid=500,dir_mode=0755,file_mode=0755 //server_name/share_name /mnt/data
使用smbmount安装smb份额
smbmount命令用于安装Linux SMB文件系统。
虽然它被弃用,但不再维护,仍然可以通过运行以下命令来使用smbmount来安装smb共享:
smbmount //Hostname/Username /local/mountpoint -o username=username,password=password,lfs
此处启用LFS(大文件系统)选项已启用NAS Samba份额。
从NAS存储复制大文件时,这将避免错误。
# smbmount //nastorage.theitroad.com/oracleshare /oraclefiles -o username=LOGINNAME,password=LOGINPASSWORD,lfs
使用smbclient连接SMB共享
默认情况下,此包不会包含在大多数Linux发行版中,因此我们需要将其与本地包管理器安装。
在Debian和Ubuntu服务器上使用以下命令安装SMBClient:
- sudo apt-get更新
- sudo apt-get安装smbclient
SMBClient是一个客户程序,它是Samba套件的一部分,它像FTP程序一样。
我们可以连接到共享,使用Get并放置命令传输文件。
$sudo smbclient //192.168.1.100/myshare -U aloft Password: Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.23c-2] smb: \>
如何列出SMB分享
smbclient命令也可以用于列出远程Samba服务器上的共享SMB资源。
使用以下smbclient -l命令在远程服务器'192.168.1.100'上显示共享SMB资源:
$sudo smbclient -L 192.168.1.100 Password: Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.23c-2] Sharename Type Comment --------- ---- ------ myshare Disk Mary's and Fred's stuff IPC$IPC IPC Service (Samba Server) root Disk Home Directories Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.23c-2] Server Comment --------- ------ Workgroup Master --------- ------ MYGROUP
fstab条目登录smb
FSTAB条目确保寄存器持久在重新引导中。
以下示例显示SMB共享的FSTAB条目:
$sudo cat /etc/fstab LABEL=/1/ext3 defaults 1 1 LABEL=SWAP-sda2 swap swap defaults 0 0 //192.168.1.100/myshare /smbdata cifs user,uid=500,rw,suid, username=aloft,password=aloft123 0 0
其中本地用户(UID = 500)将成为已安装文件的所有者。
以类似的方式,我们可以指定凭据,例如UID = UID号或者帐户/用户或者组的名称。
/etc/fstab是可读的,所以它显然不会有一个好主意。
通过使用称为凭据文件的内容来解决此问题的方法。
//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/.smbpasswd 0 0
echo命令下面可用于创建凭据文件:
$sudo echo username=mywindowsusername > .smbpasswd $sudo echo password=mywindowspassword >> .smbpasswd
修改文件的权限,只有我们有权读取和写入它。
$sudo chmod 600 .smbpasswd