2009-07-16 78 views
3

好的,設置有些複雜。不要怪我,我不是系統管理員。使用SSHFS掛載遠程文件系統

這是情況。有一臺機器可以從網絡外部進入SSH。我只能使用我的私鑰以root身份(是的,你聽到正確的)。我知道以用戶身份登錄並提升權限更爲典型,但在這種情況下,我必須做相反的事情。

問題是我想使用SSHFS來遠程掛載文件系統。我有這個完美的工作。但是,我不希望每個文件都反映出根權限。我想首先解除(su到用戶帳戶)。

任何人都知道我可以用SSHFS來做到這一點嗎?

+0

如果我理解正確,那麼你可以在遠程系統上sshfs進入root,但不能(因爲sysadmin;也是root)sshfs進入一個權限較低的帳戶? – Inshallah 2009-07-16 07:15:50

+1

serverfault.com? – liori 2009-07-16 11:36:54

+0

我有一個類似的問題,發現我試圖編輯的文件夾實際上是一個符號鏈接。我現在sshfs直接到文件夾(實際的實際路徑,不遵循一個符號鏈接)。這對我有效。 – Richard 2012-12-20 17:44:14

回答

8

您可以創建一個腳本來攔截對遠程計算機上sftp子系統的調用。把下面的腳本某處的遠程服務器上,讓我們說/根/斌/ sftp_intercept:

#!/bin/sh 
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server 

,然後作出像這樣的電話:

sshfs [email protected]:dir mountpoint -o sftp_server=/root/bin/sftp_intercept 

那麼這應該給了預期的效果。

您需要一個合適的sudoers條目才能使sudo在沒有提示密碼的情況下工作,並且不要忘記「chmod 755〜/ bin/sftp_intercept」。

另外,請確保/ usr/lib/openssh/sftp-server確實是sftp服務器的路徑。如果不是,那麼可能是/ usr/lib/sftp-server。

1

的sshfs的聯機幫助表明,經過

-o uid=$YOURUID -o gid=$YOURGID

您sshfs的調用應設置用戶/組創建到UID/GID的文件。顯然,您需要在遠程系統上找到這些信息。