• Linux访问windows共享(samba/smbclient/smbfs/cifs)



    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件。
    ●安装samba,samba-client和cifs-utils.x86_64
    此步将自动安装好相关依赖包:samba-common、libsmbclient
    yum install –y samba samba-client samba-winbind-clients.x86_64 cifs-utils.x86_64
    OR
    apt install samba samba-client samba-winbind-clients.x86_64 cifs-utils.x86_64
    说明:
    samba-common:主要提供samba服务器的设置文件与设置文件语法检验程序testparm
    samba-client:客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
    samba:服务器端软件,主要提供samba服务器的守护程序,共享文档,开机默认选项。

    (1),使用linux访问windows下的共享文件。
    运行samba,然后 ctrl+l ;在提示框里面这样输入:
    smb : //windows的ip地址。
    例:smb://192.168.0.2/


    (2),Linux下通过smbclient访问windows共享目录


    1,列出某个IP地址所提供的共享文件夹
    smbclient -L 198.168.0.1 -U username -W domain (会提示输密码)
    smbclient -L 198.168.0.1 -U username%password -W domain

    2,像FTP客户端一样使用smbclient
    smbclient //192.168.0.1/tmp -U username -W domain (会提示输密码)
    smbclient //192.168.0.1/tmp -U username%password -W domain

    执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/>
    这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。
    通过这些命令,我们可以访问远程主机的共享资源。

    3,直接一次性使用smbclient命令
    smbclient -c "ls" //192.168.0.1/tmp -U username%password

    smbclient //192.168.0.1/tmp -U username%password
    smb:/>ls
    功能一样的

    例,创建一个共享文件夹
    smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password
    如果用户共享//192.168.0.1/tmp的方式是只读的,会提示
    NT_STATUS_ACCESS_DENIED making remote directory /share1

    (3),挂载windows共享目录(smbfs、cifs)
    Linux kernel2.6.29之后,smbfs将从内核中取消,将被cifs(Common Internet File System)代替。


    ①使用smbfs文件系统
    Linux客户端要连接samba或windows文件服务器时,需使用smbmount或mount指令:

    ▪【mount的用法】
    mount -t smbfs -o username=用户名,password=密码 , -l //ip地址/共享文件夹名 挂载点

    mount -t smbfs -o username=用户名,password=密码 , -l //计算机名/共享文件夹名 挂载点

    mount -t smbfs -o //ip地址或计算机名/共享文件夹名 挂载点

    【例】:
    mount -t smbfs -o username=administrator,password=password //sambaserver/sharefolder /mnt/share
      mount -t smbfs -o username=aaa%bbb //sambaserver/sharefolder /mnt/share
    mount -t smbfs -o username=administrator,password=password //Windows_OS/sharefolder /mnt/share
      mount -t smbfs -o username=aaa%bbb //Windows_OS/sharefolder /mnt/share 

    ▪【smbmount的用法】
    smbmount -o username=用户名,password=密码 , -l //ip地址或计算机名/共享文件夹名 挂载点

    smbmount //ip地址或计算机名/共享文件夹名 挂载点

    【例】:
      smbmount //sambaserver/sharefolder /mnt/share -o username=administrator,password=password
      smbmount //sambaserver/sharefolder /mnt/share -o username=administrator%password
    smbmount //Windows_OS/sharefolder /mnt/share -o username=administrator,password=password
      smbmount //Windows_OS/sharefolder /mnt/share -o username=administrator%password  


    使用mount命令完成,如(必须给出具体的windows共享名,可以通过前面介绍的smbclient获得共享名):
    # mount -o guest -t smbfs //192.168.0.20/linux /mnt/win_share

    ★附加说明

    1,为了能正确显示中文,以utf8为locale的用户(如果使用Ubuntu或Fedora,默认就是utf8的locale)
    加入以下选项:codepage=cp936和iocharset=utf8,即mount命令为:
    # mount -o guest,iocharset=utf8,codepage=cp936 -t smbfs //192.168.0.2/linux /mnt/win_share
    之所以这样写,是因为远端使用的编码是cp936,而本地使用的是utf8。


    2,以gbk为locale的用户则
    # mount -o guest,iocharset=cp936,codepage=cp936 -t smbfs //192.168.0.2/linux /mnt/win_share
    这样写的原因是远端和本地都是cp936

    [注意]:
      1. 指定uid或gid参数,也能指定用户的身份(uid=后面可接uid号或用户名),如:
      smbmount //test/d /mnt/d -o uid=grind
      2. smbmount也能写作mount.smbfs,这是个符号链接;
      3. smbmount的参数必须写在最后,而mount的参数位置能变化;
      4. 由于//sambaserver/d格式能表明是要mount上smbfs,所以mount的-t smbfs参数能省掉;
      5. 如果命令行中不加入密码,下一行中系统会提示你输入;

    ▪【使用例】:

    1.首先在windows上共享一个目录,如:共享了目录share,用户和密码是:administrator/abc123

    2.在linux机器上,在/mnt目录下建立一个win目录,使用root用户,执行下面命令:

    mount -t smbfs -o username=administrator,password=abc123 //192.168.1.1/share /mnt/win

    这是你就可以在/mnt/win看到了windows上共享的数据了。

    3.自动挂载,编辑 vi /etc/fstab, 在最后面加入:

    //192.168.1.1/share /mnt/win smbfs defaults,auto,username=administrator,password=abc123 0 0

    这样linux机器重新启动都可以自动挂载windows上的共享目录


    ②使用cifs文件系统

    ▪安装
    apt-get install cifs-utils
    OR
    yum install –y cifs-utils.x86_64


    1. 执行命令mount实现cifs

    sudo mount -t cifs -o username=登录windows共享文件夹用户名,password=登录windows共享文件夹密码 //windows共享主机IP地址/windows共享文件夹名称 /Ubuntu下的一个目录

    2. 重启系统的时候自动mount, 将下面命令行添加到/etc/fstab里。

    //windows共享主机IP地址/windows共享文件夹名称 /Ubuntu下的一个目录 cifs defaults,username=登录windows共享文件夹用户名,password=登录windows共享文件夹密码 0 2

    添加完成后执行: sudo mount -a


    例:
    1,把samba服务器或windows系统的共享文件,挂载到samba客户端。
    mount -t cifs -o username="root",password="123456" //10.10.04.15/test /mnt/share/

    ------山的那一边
  • 相关阅读:
    初识Python(3)__Python 数字
    初识Python(2)__Python 对象
    正式开始学习python
    现代浏览器的工作原理
    data URI scheme
    连接池
    介绍缓存的基本概念和常用的缓存技术(转)
    前后端及常用语言介绍
    非关系型数据库和关系型数据库区别
    VC编译连接选项详解(转)
  • 原文地址:https://www.cnblogs.com/mountain2011/p/7352708.html
Copyright © 2020-2023  润新知