특정 사용자의 바이너리 경로 무시


8

내 질문은 사소한 것처럼 보이지만 인터넷에서 도움이되는 것을 찾지 못했습니다. 나는 바이너리를 가지고있다

/urs/bin/binary

그러나 구식이며 최신 버전은 일부 마운트에서 사용할 수 있습니다.

/mount/new_version/binary

이 바이너리를 다음과 같은 형태로 호출하는 bash 스크립트가 있습니다.

binary -doSomething

이전 버전 대신 이진의 새 버전을 호출하려면이 스크립트가 필요하지만이 스크립트를 변경할 권한이 없습니다. 어떻게 든 경로를 무시하지만 내 사용자에게만 적용되는 방법입니까? 도움을 주시면 감사하겠습니다.


허용되지 않으면 관리자에게 문의하십시오.
Sven

답변:


11

바이너리가있는 경우 /usr/bin/binary와 스크립트의 전체 경로를 지정하지 않고 바이너리를 호출하는 대신에 의존 /usr/bin에있는 PATH다음 단순히 사용자의 시작 부분에 새로운 바이너리의 위치를 추가 할 수 있습니다 PATH. 이것에 이런 것을 넣으십시오 ~/.bashrc:

PATH=/mount/new_version:$PATH

보안상의 이유로, 스크립트는 종종 이런 종류의 것을 막기 위해 바이너리의 전체 경로를 지정합니다.


3

바이너리에 액세스 할 수 있으면 바이너리를 백업하고 심볼릭 링크를 만들 수 있습니다.

mv /urs/bin/binary /urs/bin/binary.bkp
ln -s /mount/new_version/binary /urs/bin/binary

[편집하다]

죄송합니다. 한 명의 사용자 만 변경해야합니다.

바이너리 대신 호출 할 함수를 만들 수 있습니다.

바이너리 (전체 경로 또는 이름)를 실행하는 방법에 따라 다음 과 같은 적절한 함수를 작성해야합니다 .

# Full path
function /urs/bin/binary () { command /mount/new_version/binary "$@"; }
export -f /urs/bin/binary
# Name
function binary () { command /mount/new_version/binary "$@"; }
export -f binary

바이너리가 인수를 허용하지 않거나 필요로하지 않으면 "$ @"를 제거하십시오 .

함수 작성을 자동화하려면 함수 홈을 사용자 홈 디렉토리의 .profile 파일에 두십시오.


이것은 모든 사용자에게 영향을 미칩니다. 허용되지 않습니다.
Viktor Stolbin

변경 사항이 한 명의 사용자에게만 영향을 미치므로 답변을 수정했습니다.
Douglas P.

3

alias commandname=/mount/new_version/binary

경로 문장 / 내보내기 위의 .bashrc 또는 프로파일에서 충분히 쉽게 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.