專題首頁  /  知識庫文檔列表  /  詳情
避免 Windows 以 guest 等計畫外帳號
訪問 ReadyNAS SMB 共用

設想這樣一個場景:當通過 SMB 網路通訊協定訪問 ReadyNAS 共用區時, Windows 並未提示我輸入用戶名和密碼,而是直接使用了我不希望使用的帳號(例如 guest,或者曾經在這台電腦上登陸過的另外一個帳號,比如 Alice,而不是我希望的 Jack),從而獲取了不恰當的存取權限。

注意:正文使用 加粗 字體表示變數、代碼、需要輸入的內容或需要引起注意的內容。

為了解決 Windows 使用不恰當的用戶自動連接 ReadyNAS SMB 共用區的問題,需要:

一、理解 Windows 為何總是使用歷史帳號連接 ReadyNAS SMB 共用區

  1. 如果沒有匹配的憑據被保存,Windows 會嘗試以環境變數中的用戶名進行登錄。
  2. 如果 ReadyNAS 系統不存在同名使用者,則試圖以 guest 用戶訪問。
  3. 如果被訪問的共用區允許匿名訪問,那麼用戶就會以 guest 身份登錄而不要求進行身份驗證並獲取 everyone 的許可權。
  4. IMG-V1704509-03-01展示了使用 Windows 資源管理器訪問網路位置 \\10.45.1.78\MyFolder 時,資源管理器並未要求輸入用戶名和密碼,並嘗試以使用者 Ntgr 進行登錄,由於 ReadyNAS 系統不存在使用者 Ntgr,所以使用 guest 用戶登錄,在本例中 guest 沒有寫許可權。

    Alice 沒有寫許可權

二、如何獲知 Windows 保存了我的網路訪問憑據

  1. 在鍵盤上使用複合鍵 WinKey+R 打開 運行 程式,並在文字方塊中輸入 CMD 運行命令提示符。

    運行命令提示符
  2. 命令提示符 中使用命令查詢。
    >cmdkey /list
  3. 查詢結果如圖 IMG-V1704509-02-02 所示。

    用於自動登錄的憑據
  4. IMG-V1704509-02-02 展示了 Windows 保存了一個以使用者 Alice 登錄目標 10.45.1.78 的憑據。

三、理解我為什麼總是獲取 guest 許可權[1]

  1. 如果没有匹配的凭据被保存,Windows 会尝试以环境变量中的用户名进行登录。
  2. 如果 ReadyNAS 系统不存在同名用户,则试图以 guest 用户访问。
  3. 如果被访问的共享区允许匿名访问,那么用户就会以 guest 身份登录而不要求进行身份验证并获取 everyone 的权限。
  4. IMG-V1704509-03-01展示了使用 Windows 资源管理器访问网络位置 \\10.45.1.78\MyFolder 时,资源管理器并未要求输入用户名和密码,并尝试以用户 Ntgr 进行登录,由于 ReadyNAS 系统不存在用户 Ntgr,所以使用 guest 用户登录,在本例中 guest 没有写权限。

    guest 沒有寫許可權

四、如何在 Windows 中使用我希望的帳號訪問 ReadyNAS SMB 共用區

  1. 在鍵盤上使用複合鍵 WinKey+R 打開 運行 程式,並在文字方塊中輸入 CMD 運行命令提示符。

    運行命令提示符
  2. 命令提示符 中使用命令查詢已經建立的連接。
    >net use
  3. IMG-V1704509-04-02 展示了使用 net use 命令查詢到的一個連接。

    查詢連接
  4. 命令提示符 中使用命令刪除已經建立的連接。
    >net use \\ip\folder /delete
  5. IMG-V1704509-04-03 展示了使用 /delete 參數刪除了一個連接。

    刪除連接
  6. 命令提示符 中使用命令以希望的用戶建立新連接。
    net use \\ip\folder /user:username password
  7. IMG-V1704509-04-04 展示了使用 /user 參數以用戶 Jack 新建了一個連接。

    新建連接
  8. 驗證,用戶 Jack 有寫入許可權。

五、保存我希望的憑據,使 Windows 總是以此使用者訪問特定的網路路徑

  1. 在鍵盤上使用複合鍵 WinKey+R 打開 運行 程式,並在文字方塊中輸入 CMD 運行命令提示符。

    運行命令提示符
  2. 命令提示符 中使用命令查詢。
    >cmdkey /list
  3. 查詢結果如圖 IMG-V1704509-05-02 所示。

    用於自動登錄的憑據
  4. 命令提示符 中使用命令刪除憑證。
    >cmdkey /delete:ip
  5. 如圖 IMG-V1704509-05-03 所示,目標 10.45.1.78 的憑證被刪除。

    刪除憑據
  6. 命令提示符 中使用命令保存一個希望的憑證。
    >cmdkey /add:ip /user:username /pass:password
  7. 如圖 IMG-V1704509-05-04 所示,以使用者 Jack 訪問目標 10.45.1.78 的憑證被保存。

    新增憑據
  8. 再次訪問網路路徑\\10.45.1.78\MyFolder ,Windows 資源管理器未要求進行身份驗證並使用了希望的用戶 Jack 進行登錄。

    Jack 擁有寫許可權

參考文獻

  1. CIFS 3.2.4.2.4 User Authentication