Quando um script é executado em segundo plano no AIX, ele está criando uma cópia no diretório / tmp durante o bg runtime, como alterar esse comportamento?

2

Quando um script é executado em segundo plano e está criando uma cópia dele com o ID do processo pai no diretório / tmp, é claro que esta cópia está sendo removida logo após o processo ser concluído, no entanto durante esse tempo de execução qualquer usuário tem acesso ao servidor pode ver credenciais.

Minha pergunta é como posso alterar esse comportamento criando uma cópia no diretório / tmp? se não puder ser alterado, como posso ter certeza de que há apenas 640 permissões na cópia no diretório / tmp.

Abaixo está o script que é executado em segundo plano com PID: 32702884 existe uma cópia criada no diretório / tmp com sh32702884.1, qualquer usuário pode catar este arquivo e ver se há alguma credencial. Por favor, conselhos.

  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>
    
por user188577 06.09.2016 / 22:35

1 resposta

1

Você poderia definir umask no script, por exemplo,

umask 037

mas se isso não ajudar, você pode fazer um subdiretório temporário de /tmp ser removido quando o script sair e definir as permissões em que para evitar a leitura. A maioria dos aplicativos presta atenção em TMPDIR (e os scripts podem ser modificados para fazer isso). O AIX não tem mktemp (exceto como um pacote complementar), mas você pode fazer isso com um script de shell, por exemplo,

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

e use $TMPDIR consistentemente onde o script pode dizer apenas /tmp .

A escolha do nome era apenas por exemplo: um bom script usaria algo como mktemp para proteger contra ataques de links simbólicos.

Se você não puder editar diretamente o script , poderá fazer algo assim, envolvendo o programa que cria o script com algo que defina $TMPDIR para um local menos visível.

    
por 06.09.2016 / 22:51

Tags