Seu exemplo mostra que você especificou -p
, que a documentação citada explica, copia as permissões de arquivo da fonte em vez de usar umask.
Remova o sinalizador -p
se você quiser usar o umask.
Src = SJOAM
Dest = sjoam2
Conectando-se a um servidor ftp, obtenha um arquivo dele.
No lado do servidor de ftp.
[oracle@SJOAM ~]$ ls -l total.zip
-rwxrwxr-x. 1 oracle oinstall 412 Aug 8 09:03 total.zip
No lado do cliente, conectando-se ao servidor 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 ~]$
Anote a permissão do arquivo no servidor e no cliente. A permissão do arquivo recuperado é ajustada para o umask do cliente.
No entanto, se formos scp o arquivo do servidor para o cliente, a permissão permanecerá como do servidor.
[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 ~]$
Veja a permissão de arquivo abaixo no cliente, é o mesmo que o do servidor
[grid@sjoam2 ~]$ ls -l
total 4
-rwxrwxr-x. 1 grid grid 412 Aug 8 09:03 total.zip
[grid@sjoam2 ~]$
Por quê?
No link , ele afirma que, por padrão, as permissões de arquivo aderem a umask no host de destino
7.5.4. Preserving Permissions
When scp copies files, the destination files are created with certain file attributes. By default, the file permissions adhere to a umask on the destination host, and the modification and last access times will be the time of the copy. Alternatively, you can tell scp to duplicate the permissions and timestamps of the original files. The -p option accomplishes this:
No meu caso, a permissão do arquivo de destino segue a da fonte e não da suask.
O que há de errado? Ou estou entendendo errado?
Seu exemplo mostra que você especificou -p
, que a documentação citada explica, copia as permissões de arquivo da fonte em vez de usar umask.
Remova o sinalizador -p
se você quiser usar o umask.
Seu umask
está definido como 0002
, o que significa que irá ocultar permissões de gravação para outras pessoas.
Nos dois exemplos, o arquivo criado não pode ser gravado por outras pessoas.
Está funcionando corretamente.