То, как я это сделал, выглядит так:
//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50
//OUT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD DUMMY
//OUTPUT DD SYSOUT=*
//SYSTSIN DD DSN=AA.SOMETHING.LOGIN,DISP=SHR
// DD DSN=AA.SOMETHING.FTP,DISP=SHR
// DD DSN=AA.SOMETHING.LOGOFF,DISP=SHR
, где AA.SOMETHING.LOGIN
будет содержать
123.234.345.67
myuser1 <- replace with ACID for this job
p4ssw0rd <- replace with password for the ACID
AA.SOMETHING.FTP
будет содержать
ascii
cd infos
PUT 'EF35.LMINFO.D180203' info_180203.txt
AA.SOMETHING.LOGOFF
будет содержать
QUIT
Этот JCL будет работать через пакетную ACID, и только ACID будет иметь доступ на чтение / запись к файлу AA.SOMETHING.LOGIN
. Таким образом, FTP-сервер должен добавить ACID как пользователь. Это действительно единственный способ сделать это. Вы правы, хотя, каждый, кто имеет доступ к AA.SOMETHING.LOGIN
, может видеть учетные данные, но поскольку мы отделили информацию для входа в систему от команд FTP, нет никакой причины для доступа к файлам для входа в систему, если только имя пользователя / пароль или IP-адрес не изменились. , Таким образом, вы сможете изменить что-либо в файлах, к которым у вас есть доступ. Вы также можете сделать шаг дальше, чем поместить IP-адрес в отдельный набор данных, чтобы затем можно было редактировать / просматривать буквально все, кроме учетных данных для входа. Это будет выглядеть так:
//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50
//OUT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD DUMMY
//OUTPUT DD SYSOUT=*
//SYSTSIN DD DSN=AA.SOMETHING.SERVER,DISP=SHR
// DD DSN=AA.SOMETHING.LOGIN,DISP=SHR
// DD DSN=AA.SOMETHING.FTP,DISP=SHR
// DD DSN=AA.SOMETHING.LOGOFF,DISP=SHR
Это также позволяет вам изменять сервер, команды FTP и выходить из системы / очищать все без доступа к учетным данным для входа.
Единственный реальный недостаток - если вам когда-либо понадобится обновить учетные данные для входа, вам необходимо:
- Запрос доступа к файлу
- Напишите еще один JCL, который будет работать с ACID, у которого есть доступ к этому файлу, чтобы обновить его
Даже с учетом этого я все же думаю, что это лучший способ.