myscript.sh 내가 디렉토리 $ 1 루트가 소유 sudo는 ./myscript.sh으로 호출하므로 사용자가 (a.txt이를 수정할 수없는 경우sudo는 쉘 스크립트에서 mkdir
#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
cp b.txt /usr
인 문제입니다.) 나는
#/!bin/sh
mkdir -p $1
cp -p a.txt ./$1
sudo cp b.txt /usr
에 스크립트를 변경하고 단지 ./myscript.sh로 호출하지만이 나쁜 방법입니다 느낌을 얻을 수 있습니다. 어떻게하면 사용자를 알지 못하는 일반적인 경우에 진행할 수 있습니까? chown이 도움이되지 않습니다.
환경 변수 $ USER에서 현재 사용자를 얻을 수 있습니다. 따라서 스크립트 내부에서 chown을 사용할 수 있습니다. – jitendra
@jitendra : 스크립트를 호출하기 전에'USER = anybody'를 설정할 수 있습니다. 그러면 파일이 잘못된 사용자에게'chown'됩니다. –
일반 파일을'/ usr'에 복사해서는 안됩니다. 정상적인 이벤트 과정에서 디렉터리 만 포함해야합니다. 왜'/ usr/b.txt' 파일을 원합니까? 당신이 두 개의 분리 된 작업을 잘못 묶어 두는 것처럼 내게 조금 보인다. –