разрешение umask – где он работает, где он не работает – ftp vs 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 клиента.


Однако, если мы хотим скопировать файл с сервера на клиент, разрешение останется на сервере.

 [oracle@SJOAM ~]$ ls -l total.zip -rwxrwxr-x. 1 oracle oinstall 412 Aug 8 09:03 total.zip [oracle@SJOAM ~]$ scp total.zip grid@192.168.1.26:/home/grid/ grid@192.168.1.26'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.

Что не так? Или я понимаю неправильно?

В вашем примере показано, что вы указали -p который цитирует документация, копирует разрешения файлов из источника вместо использования umask. Удалите флаг -p если вы хотите использовать umask.

Ваш umask установлен в 0002 , что означает, что он будет маскировать разрешения на запись для других.

В обоих примерах созданный файл недоступен для записи другими.

Он работает правильно.