oracle 사용자로 특정 명령 세트를 실행하고 루트 사용자로 일부 명령을 실행해야 하는 스크립트를 작성해야 합니다. 어떻게 해야 합니까? [폐쇄]

oracle 사용자로 특정 명령 세트를 실행하고 루트 사용자로 일부 명령을 실행해야 하는 스크립트를 작성해야 합니다. 어떻게 해야 합니까? [폐쇄]

oracle 사용자로서 특정 명령 세트를 실행한 다음 루트가 되어 일부 명령을 실행하고 oracle 사용자로 돌아가는 스크립트를 작성해야 합니다. 이 모든 작업은 하나의 스크립트로 수행되어야 합니다. 어떻게 해야 할까요? 더 구체적으로 말하자면, 저는 기본적으로 OTD(Oracle Traffic Director) 설치 및 구성을 자동화하고 있는데, 쉘 스크립트를 작성하라는 요청을 받았습니다. 설치의 모든 단계는 oracle 사용자로 수행되지만 다음 두 명령은 다음과 같습니다.

chown 루트 포트 바인딩

chmod 4750 포트 바인딩

이 작업은 루트 사용자로 수행해야 하며, 추가 자동화 단계는 oracle 사용자로 다시 완료해야 합니다. 따라서 스크립트에서 사용자(root 및 oracle)를 전환하는 방법이 필요합니다.

답변1

루트로 스크립트를 실행하고, -u다른 사용자로 실행해야 하는 명령에는 sudo 스위치를 사용하세요. sudo에 대한 매뉴얼 페이지를 참조하십시오.man sudo.

# sudo -u user echo test
test

답변2

oracle 사용자로 스크립트를 실행합니다. 스크립트에서 루트 권한이 필요한 부분은 sudo명령줄에서와 마찬가지로 사용하세요. 예를 들어

#!/bin/sh
echo 'This command is echoed by oracle user'
sudo echo 'This command is echoed with superuser privileges'

visudo그런 다음 실행해야 하는 특정 명령을 암호 없이 실행할 수 있도록 sudoers 파일(pass )을 구성합니다 . 파일 맨 아래에 다음 줄을 추가하고 필요에 따라 명령을 변경합니다. 실행하려는 각 명령에 대해 다음 줄 중 하나가 필요합니다.sudo

oracle localhost = (root) NOPASSWD: /path/to/command

관련 정보