원격으로 서버에 액세스할 수 있습니다. 저는 0007로 설정했습니다 umask
. 내 서버 이름은 "sme", 로컬 이름은 "lme"로 지정하겠습니다. 그래서 나는 다음을 수행했습니다.
sme@server$ touch f1
sme@server$ ls -l f1
-rw-rw---- 1 sme 0 Jun 16 18:46 f1
이제 로컬 컴퓨터로 이동합니다.
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
첫째, 모든 로컬 사용자가 f2에 대한 모든 권한을 가지고 있음을 확인했습니다. 왜? umask
다른 사용자의 권한을 7로 설정했으므로 파일 권한은 0이 되어야 합니다 .
서버 측에서 확인하십시오.
sme@server$ ls f2
-rw-r----- 1 sme 0 Jun 16 18:48 f2
서버에 로그인할 때 실행 권한이 설정되어 있지 않습니다. 내 서버 그룹이 파일에 쓸 수 없습니다. 또한 파일의 소유자는 로컬 사용자 "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
하지만:
sme@server$ ls -l
-rw-r----- 1 sme 0 Jun 16 18:50 f3
uid
및 gid
to를 지정해 도 sshfs
파일 권한에 대해서는 아무 것도 변경되지 않습니다. 또한 그룹 소유자는 서버에서는 0이고 로컬 마운트 지점에서 나열되면 1001입니다. 역설적이게도 내 로컬 사용자는 내 서버 사용자가 만든 모든 파일에 대해 설정된 모든 파일 권한을 볼 수 있습니다.
하지만 먼저 로컬에서 서버로 생성된 파일을 확인하면 소유자 이름이 변경되는 것을 볼 수 있습니다. 로컬에서 마운트된 폴더로 확인하면 로컬 사용자 "lme"가 파일 소유자이지만 서버에서 확인하면 사용자 "sme"를 가져옵니다. 소유권. 둘째, 로컬 그룹 권한 설정은 서버 측을 따르지 않습니다. 서버 그룹에 쓰기 권한이 없습니다. 셋째, 들어오는 매개변수의 마스크는 sshfs
로컬 사용자의 마스크나 서버 사용자의 마스크와 일치하지 않습니다.
내 서버의 사용자와 그룹이 로컬 사용자가 만든 모든 파일과 폴더에 액세스할 수 있기를 바랍니다. 나는 이 작업을 수행하는 방법과 가장 중요한 umask
것은 sshfs
.