umask 权限 - 哪里有效,哪里无效 - ftp 与 scp

umask 权限 - 哪里有效,哪里无效 - ftp 与 scp
Src = SJOAM    
Dest = sjoam2

连接到 ftp 服务器,从中获取文件。

在 ftp 服务器端。

[oracle@SJOAM ~]$ ls -l total.zip 
-rwxrwxr-x. 1 oracle oinstall 412 Aug  8 09:03 total.zip

在客户端连接 ftp 服务器

[grid@sjoam2 ~]$ umask
0002  -- take note of the permission
[grid@sjoam2 ~]$ ftp 192.168.1.25
Connected to 192.168.1.25 (192.168.1.25).
220 Welcome to SJOAM Network
Name (192.168.1.25:grid): oracle
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get total.zip
local: total.zip remote: total.zip
227 Entering Passive Mode (192,168,1,25,45,116).
150 Opening BINARY mode data connection for total.zip (412 bytes).
226 Transfer complete.
412 bytes received in 0.000105 secs (3923.81 Kbytes/sec)
ftp> exit
221 Goodbye.
[grid@sjoam2 ~]$ ls -l
total 4
-rw-rw-r--. 1 grid grid 412 Aug  8 18:28 total.zip
[grid@sjoam2 ~]$ 

记下服务器和客户端中文件的权限。检索到的文件的权限将调整为客户端的 umask。


但是,如果我们要将文件从服务器 scp 到客户端,则权限将保留为服务器的权限。

[oracle@SJOAM ~]$ ls -l total.zip 
-rwxrwxr-x. 1 oracle oinstall 412 Aug  8 09:03 total.zip
[oracle@SJOAM ~]$ scp total.zip [email protected]:/home/grid/
[email protected]'s password: 
total.zip                                     100%  412     0.4KB/s   00:00    
[oracle@SJOAM ~]$ 

客户端的文件权限见下面,和服务器的一样

[grid@sjoam2 ~]$ ls -l
total 4
-rwxrwxr-x. 1 grid grid 412 Aug  8 09:03 total.zip
[grid@sjoam2 ~]$ 

为什么?

http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch07_05.htm,它指出默认情况下文件权限遵循目标主机上的 umask

7.5.4.保留权限

scp 复制文件时,会创建具有某些文件属性的目标文件。默认情况下,文件权限遵循目标主机上的 umask,修改时间和上次访问时间将为复制时间。或者,您可以告诉 scp 复制原始文件的权限和时间戳。 -p 选项可以完成此任务:

就我而言,目标文件权限遵循源文件的权限,而不是其 umask。

怎么了?还是我理解错误?

答案1

您的示例显示您指定-p引用的文档解释了从源复制文件权限,而不是使用 umask。-p如果您想使用 umask,请删除该标志。

答案2

您的umask设置为0002,这意味着它将屏蔽掉给其他人写权限。

在您的两个示例中,创建的文件不可被其他人写入。

它工作正常。

相关内容