Когда сценарий работает в фоновом режиме в AIX, он создает копию в каталоге / tmp во время выполнения bg, как изменить это поведение?

Когда сценарий работает в фоновом режиме, который создает его копию с родительским идентификатором процесса в каталоге / tmp, конечно, эта копия удаляется вскоре после завершения процесса, однако в течение этого времени выполнения любой пользователь имеет доступ к серверу, он может просматривать учетные данные ,

Мой вопрос в том, как изменить это поведение, создав копию в каталоге / tmp? если он не может быть изменен, как я могу убедиться, что в каталоге / tmp есть только 640 разрешений.

Ниже приведен сценарий, который работает в фоновом режиме с помощью PID: 32702884 есть копия, созданная в каталоге / tmp с sh32702884.1, любой пользователь может cat этот файл и посмотреть, есть ли какие-либо учетные данные. Пожалуйста посоветуй.

oracle@orcl:/users/cmsc/oracle>nohup ./rman_del_obsolete_090616.ksh>rman_del_obsolete_090616.ksh.log & [1] 32702884 oracle@orcl:/users/cmsc/oracle>ps -ef|grep ksh oracle 32702884 21627666 0 16:23:16 pts/0 0:00 sh -- ./rman_del_obsolete_090616.ksh oracle@orcl:/users/cmsc/oracle>cd /tmp oracle@orcl:/tmp>ls -ltr sh* -rwxrwxrwx 1 root system 3340 Jan 03 2012 sharch_root.sh -rwxrwxrwx 1 ctmagent controlm 3340 Jan 03 2012 sharch_ctmagent.sh -rw-r--r-- 1 oracle cdba 343185 Sep 06 16:23 sh32702884.1 oracle@orcl:/tmp>head sh32702884.1 connect target / connect catalog xxdfd/sscsxxxx@db1 run{ delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160718-474184-1'; delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160718-474180-1'; delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160718-474179-1'; delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160718-474183-1'; delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160717-474066-1'; delete force noprompt backuppiece 'RMAN-ORV1-ARCH-20160717-474063-1'; oracle@orcl:/tmp> 

Вы можете установить umask в скрипте, например,

 umask 037 

но если это не поможет, вы можете сделать временный подкаталог /tmp который будет удален при выходе сценария, и установить разрешения для этого, чтобы предотвратить чтение. Большинство приложений обращают внимание на TMPDIR (и для этого можно изменить сценарии). В AIX нет mktemp (кроме как надстройки), но вы можете сделать это с помощью сценария оболочки, например,

 umask 037 mytemp=/tmp/mytemp mkdir $mytemp || exit 1 trap "cd /tmp;rm -rf $mytemp" EXIT HUP INT QUIT TMPDIR="$mytemp" export TMPDIR 

и используйте $TMPDIR последовательно, где скрипт может сказать только /tmp .

Выбор имени был, например: хороший скриптинг использовал бы что-то вроде mktemp для защиты от symlink-атак.

Если вы не можете напрямую редактировать этот скрипт, вы должны иметь возможность сделать что-то подобное, обертывая программу, которая создает скрипт с чем-то, что устанавливает $TMPDIR в менее видимое местоположение.