AIX의 백그라운드에서 스크립트가 실행되면 bg가 실행되는 동안 /tmp 디렉토리에 복사본이 생성됩니다. 이 동작을 어떻게 변경할 수 있습니까?

AIX의 백그라운드에서 스크립트가 실행되면 bg가 실행되는 동안 /tmp 디렉토리에 복사본이 생성됩니다. 이 동작을 어떻게 변경할 수 있습니까?

스크립트가 백그라운드에서 실행되어 상위 프로세스 ID를 사용하여 /tmp 디렉터리에 복사본을 생성하면 프로세스가 완료된 후 즉시 복사본이 삭제되지만 이 실행 중에 모든 사용자는 서버에 액세스할 수 있으며 다음 작업을 수행할 수 있습니다. 자격 증명을 봅니다.

내 질문은 /tmp 디렉토리에 복사본을 만들기 위해 이 동작을 어떻게 변경할 수 있습니까? 변경할 수 없는 경우 /tmp 디렉터리의 복사본에 640 권한만 있는지 어떻게 확인할 수 있습니까?

다음은 PID 32702884를 사용하여 백그라운드에서 실행되고 /tmp 디렉터리에 sh32702884.1을 사용하여 복사본을 생성하는 스크립트입니다. 조언해주세요.

  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>

답변1

할 수 있다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심볼릭 링크 공격으로부터 보호하기 위해 이와 같은 것을 사용합니다.

직접 편집할 수 없는 경우저것스크립트에서는 스크립트를 생성한 프로그램을 눈에 잘 띄지 않는 곳에 래핑하여 비슷한 작업을 수행할 수 있어야 합니다 $TMPDIR.

관련 정보