我可以远程访问服务器。在那里我umask
设置为 0007。我将我的服务器名称称为“sme”,我的本地名称称为“lme”。所以我执行以下操作:
sme@server$ touch f1
sme@server$ ls -l f1
-rw-rw---- 1 sme 0 Jun 16 18:46 f1
Run Code Online (Sandbox Code Playgroud)
现在我去我的本地计算机:
lme@local$ umask
0007
lme@local$ mkdir server
lme@local$ sshfs sme@server /home/sme /server/ -o umask=0000
lme@local$ touch server/f2
lme@local$ ls -l server/f2
-rwxrwxrwx 1 lme 1001 0B Jun 16 18:48 server/f2
Run Code Online (Sandbox Code Playgroud)
首先,我注意到我本地的任何用户都拥有 f2 的完全权限。为什么?我将umask
其他用户的权限设置为 7,因此他们的文件权限应为 0。
在服务器端检查:
sme@server$ ls f2
-rw-r----- 1 sme 0 Jun 16 18:48 f2
Run Code Online (Sandbox Code Playgroud)
我在服务器上登录后,我没有设置执行权限。我的服务器组无法写入文件。此外,文件的所有者不是本地用户“lme”而是服务器用户“sme”。然后我尝试sshfs
在检查后指定我的服务器用户的 uid 和 gid :
# Get server user's id and group id
sme@server$ id
uid=1059(sme) gid=1001(server-group) groups=1001(server-group)
# Remount the server's root
lme@local$ umount server/
lme@local$ sshfs sme@server /home/sme /server/ -o umask=0000 -o uid=1059 -o gid=1001
lme@local$ touch server/f3
lme@local$ ls -l server/f3
-rwxrwxrwx 1 lme 1001 0B Jun 16 18:50 server/f3
Run Code Online (Sandbox Code Playgroud)
但:
sme@server$ ls -l
-rw-r----- 1 sme 0 Jun 16 18:50 f3
Run Code Online (Sandbox Code Playgroud)
指定uid
和gid
tosshfs
不会更改任何有关文件权限的内容。此外,组所有者在服务器上为 0,而从本地挂载点列出时为 1001。矛盾的是,我的本地用户看到每个文件权限都设置为我的服务器用户创建的所有文件。
但是我可以看到,首先,检查从本地创建的文件到服务器,所有者的名称发生变化:从本地安装的文件夹上检查,本地用户“lme”是文件所有者,但从服务器检查,用户“sme”拥有所有权。其次,从本地设置的组权限不会跟随在服务器端。服务器组没有写入权限。第三,传入参数的掩码sshfs
与本地用户和服务器用户的都不匹配。
我希望我的服务器的用户和组能够访问本地用户创建的任何文件和文件夹。我想知道如何做到这一点,最重要的是任何解释和/或文档解释如何umask
使用sshfs
. 到目前为止,我发现的小文档(其他论坛主题)比其他任何东西都更令人困惑。
归档时间: |
|
查看次数: |
1415 次 |
最近记录: |