• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Thronds

            一問你會什么 二問你做出過什么 三問你為了什么

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              36 隨筆 :: 0 文章 :: 56 評論 :: 0 Trackbacks
            需求:在linux下訪問局域網(wǎng)絡中另一臺計算機的共享資源,另一臺計算機的系統(tǒng)可能為windows或者linux。我首先想到的是用mount命令掛載共享資源,后經(jīng)群里朋友提醒,直接用samba更方便。另外windows訪問linux資源也需要運用samba。Linux/Unix之間的文件互訪用NFS網(wǎng)絡文件系統(tǒng)。

            一、mount
                在mount共享文件之前,需要要先安裝smbfs工具包。原因是Windows網(wǎng)絡共享的核心是SMB/CIFS,在linux下要掛接(mount)windows的磁盤共享,就必須安裝和使用samba軟件包(參看下面的提問)。既然windows網(wǎng)絡共享的核心是smb/cifs,那么下面的兩條命令都可以實現(xiàn)掛載共享文件了:
                #mount -t smbfs //ip/sharefile /mountpoint
                #mount -t cifs //ip/sharefile /mountpoint
            上面的命令掛載正常,英文路徑下互訪正常;但中文路徑出現(xiàn)亂碼,不能正常互訪。原因是互訪編碼不一致,中文用utf8,用下面的命令可以正常識別中文:
                #mount -t smbfs -o codepage=cp936,iocharset=utf8 //ip/sharefile /mountpoint
            中文文件正?;ピL,但有Warning: ignoring deprecated smbfs option 'codepage=cp936'。知道原因的朋友留個解釋:)
            如果有用戶名和密碼的話:
                #mount -t smbfs -o username=****,password=*****,codepage=cp936,iocharset=utf8 //ip/sharefile /mountpoint
            卸載命令是:
                #umount /mountpoint 或者
                #umount //ip/sharefile

                提問時間:smb/cifs是什么玩意兒?[1]在mount之前不安裝smbfs工具包,能否用-t cifs實現(xiàn)互訪?

            二、samba
                在前一部分中已經(jīng)用到了samba,雖然已經(jīng)非常的方便(嘎嘎,mount很強大),但只能要在linux下訪問windows文件,我們還要能夠在 windows下訪問linux共享文件。samba采用server/client架構。通過使用samba客戶端可以讓linux訪問windows 共享資源;通過在linux上配置samba服務器,可以讓windows訪問linux共享資源。

                在linux環(huán)境下訪問windows共享資源
                首先,查看系統(tǒng)中是否已經(jīng)安裝samba.在ubuntu下用#dpkg -l | grep samba [2],在redhat中用rpm -qa | grep samba. [3] 如果沒有安裝好samba包,redhat下的安裝方法參考[3],ubuntu下使用#apt-get install samba。
                現(xiàn)在就可以使用samba訪問windows共享資源拉。訪問的方式也有兩種:
                 (1)命令方式
                命令方式如同第一部分介紹的那樣。它不用考慮對中文支持的問題,因為samba能很好的實現(xiàn)中文支持。它的使用命令如下:
                查詢windows主機共享資源:#smbclient -L SEU-PPCHEN(主機名)或者#smbclient -L //ip
                連接共享目錄:#smbclient //SEU-PPCHEN/sharefile 或者//ip/sharefile;然后就進入了smb模式,在smb模式下支持大部分的常用命令,可以用help查看有哪些命令。
            另外使用smbmount可以實現(xiàn)和第一部分一樣的掛載效果。
                (2)圖形方式(相當于windows下的網(wǎng)絡鄰居)
                在ubuntu的現(xiàn)在版本8.04中,在file browser中就能很好的支持網(wǎng)絡鄰居了。一,可以通過菜單places->network直接訪問;二,也可以在file browser的locate中輸入smb:///(查看有哪些主機)或smb://ip(訪問具體的主機)。
                在redhat和KDE下,參考[3]。

                windows下訪問linux共享資源
                linux提供共享服務,需要配置samba服務器實現(xiàn)共享功能。配置方法參考來自網(wǎng)絡上的一篇文章[4],作者不祥。為了能夠讓windows下的用戶通過以太網(wǎng)訪問Linux下的共享文件,需要開啟Samba服務器,Samba服務器詳細配置步驟如下:

                1.打開samba的配置文件
                vim /etc/samba/smb.conf

                2.其中存在如下幾個域
                [global](全局參數(shù)的設置,它對samba的功能具有很大的影響,主要用來設置整個系統(tǒng)規(guī)則。
                workgroup= 這是你在windows中的域。
                server string= 這是在windows中看到你的samba的解釋。
                netbios name =最好是你的機器名,如果把改句注消,默認的是你LINUX機器名,不過,最好還是自己填上
                dos charset=cp936
                unix charset=cp936 加上這二句就可以正確顯示中文了。
                hosts allow 允許登錄的linux-samba的主機名單,用IP地址給出,多個IP地址用空格分開,不在名單中的主機將不能得到samba提供的服務,這也是網(wǎng)絡安全的一個方面。
                printcap name 指定printcap文件地址,通常為/etc/printcap,包含了linux打印機的配置信息。
                load printers 允許使用共享打印機時,默認值為yes。
                printing 如果使用的打印機是非標準的,那么應該指出打印機系統(tǒng)類型。
                log file = /usr/local/samba/var/log.%m
                max log size = 0

                上面這兩行則是Samba日志的相關定義。其記錄文件的位置是放在/var/log/samba/%m.log,安裝目錄不一樣,日志可不一樣,后面的一條是定義日志記錄文件的大小,單位是KB,如果是0的話就不限大小。
                guest acount 來賓帳戶,表示用哪一個Linux用戶作為所要的客戶連接,定義Samba缺省的用戶賬號,這個賬號必須在/etc/passwd中。
                security 指定安全模式。大多數(shù)用戶使用user級的安全模式,samba用本地linux口令文件驗證。
                security = security_level

                定義Samba的安全級別,按從低到高分為四級:share,user,server,domain。它們對應的驗證方式如下:
                share:沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問服務器上的資源。
                user:samba的默認配置,要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。
                server:和user安全級別類似,但用戶名和密碼是遞交到另外一個服務器去驗證,比如遞交給一臺NT服務器。如果遞交失敗,就退到user安全級。
                domain:這個安全級別要求網(wǎng)絡上存在一臺Windows的主域控制器,samba把用戶名和密碼遞交給它去驗證。
                后面三種安全級都要求用戶在本linux機器上也要系統(tǒng)帳戶。否則是不能訪問的。
                主要修改和添加的域如下:

                2.1列出允許訪問的主機ip
                hosts allow = 192.168.0.1 192.168.0.88
                2.2安全模式
                security = share
                2.3指定共享文件名稱和共享文件
                [glx_linux]
                comment = This is Glx Linux #備注說明
                path = /mnt/e_win
                guest ok = yes
                writable = yes
                2.4創(chuàng)建Samba專用用戶
                創(chuàng)建用戶gliet_linux
                addusr gliet_linux
                passwd gliet_linux
                之后將該用戶添加到samba中
                /etc/samba/smbpasswd -a gliet_linux
                2.5清除ip鏈
                service iptables stop
                清除所有鏈: [ 確定 ]
                刪除用戶定義的鏈: [ 確定 ]
                將內(nèi)建鏈重設為默認的“ACCEPT”策略: [ 確定 ]
                2.6重啟網(wǎng)卡
                service network restart
                正在關閉接口 eth0: [ 確定 ]
                關閉環(huán)回接口: [ 確定 ]
                設置網(wǎng)絡參數(shù): [ 確定 ]
                彈出環(huán)回接口: [ 確定 ]
                彈出界面 eth0: [ 確定 ]

                3.重啟Samba

                /etc/rc.d/init.d/smb restart (重啟samba)

                4.好了,在win_xp下登錄

                //192.168.0.5
                輸入用戶名:gliet_linux和密碼后,就可以看到目錄glx_linux,該目錄是可以被windows用戶修改的。
                哈哈,windows可以對linux進行操作了,以下是我的一個配置文件:
                security = user
                [glx_linux_write_win_share]
                comment = This is Write test
                path = /home/gliet/win
                guest ok = yes
                writable = yes
                [glx_linux_read_win_tar_share]
                comment = This is Read test
                path = /home/gliet/tar
                guest ok = yes
                read only = yes
              
            三、NFS(Networks File System)
            [5]

            四、當Linux已經(jīng)存在亂碼文件時,可以通過iconv命令將文件內(nèi)容的編碼轉換成utf8.

                原Windows rar壓縮的文件,Linux系統(tǒng)下解壓后打開里邊的文件,內(nèi)容全部亂碼。其他類似的情況都可以按照如此辦法解決。

                之所以出現(xiàn)亂碼是因為所壓縮的文件中,有的文件是以中文命名。而在windows下中文的編碼一般為gbk,而linux下中文的編碼一般為utf8,所以在windows下正常打開的文件,到linux下很可能會出現(xiàn)亂碼。解決辦法為:使用命令iconv對文件內(nèi)容編碼進行轉換。例如我有一個文件"linux常用命令"在windows下打開正常,而在linux下打開則會亂碼,其解決辦法為在終端輸入:

              iconv -f gbk -t utf8 linux常用命令.txt > linux常用命令.txt.utf8

              之后再打開"linux常用命令.txt.utf8"這個文件,該文見的亂碼問題就解決了。


            reference
            [1]http://zhidao.baidu.com/question/7819626.html?fr=qrl
            [2]http://wiki.ubuntu.org.cn/UbuntuSkills
            [3]http://www.chinaitpower.com/2005September/2005-09-13/205372.html
            [4]http://www.linux-cn.com/html/linux/beginner/20070524/41617.html
            [5]http://blog.163.com/liang8421@126/blog/static/894819572008102774710496/
            posted on 2008-12-07 16:55 thronds 閱讀(1773) 評論(0)  編輯 收藏 引用 所屬分類: Linux/Unix高級技術
            久久精品www| 中文精品久久久久人妻不卡| 久久久国产乱子伦精品作者| 浪潮AV色综合久久天堂| 精品国产福利久久久| 精品多毛少妇人妻AV免费久久| 久久艹国产| 久久精品国产第一区二区三区| 精品久久久久久中文字幕| 欧美麻豆久久久久久中文| 无遮挡粉嫩小泬久久久久久久| 66精品综合久久久久久久| 久久亚洲国产精品成人AV秋霞| 国产精品一久久香蕉国产线看| 国产精品欧美久久久久无广告 | 久久久久无码精品国产不卡| 久久99精品国产| 久久99久久99精品免视看动漫| 狠狠88综合久久久久综合网| 欧美亚洲国产精品久久久久| 88久久精品无码一区二区毛片| 亚洲AV无码久久| 波多野结衣久久| 久久久精品视频免费观看| 69SEX久久精品国产麻豆| 亚洲日韩中文无码久久| 综合久久给合久久狠狠狠97色 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 蜜桃麻豆WWW久久囤产精品| 亚洲狠狠久久综合一区77777| 伊人久久大香线蕉综合Av| 色综合久久88色综合天天 | 99久久亚洲综合精品网站| 2021久久国自产拍精品| 午夜精品久久久久久99热| 久久精品国产亚洲AV久| 无码乱码观看精品久久| 久久激情五月丁香伊人| 99久久www免费人成精品 | 久久人人爽人人爽人人片AV不| 性做久久久久久免费观看|