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
,这意味着它将屏蔽掉给其他人写权限。
在您的两个示例中,创建的文件不可被其他人写入。
它工作正常。