저는 현재 일부 스크립트를 업데이트하고 있으며 다른 사람들이 사용할 수 있도록 몇 가지 유용한 스크립트를 출시할 계획입니다. 따라서 다양한 컴퓨터에서 충돌이나 손상 없이 작동해야 합니다.
그들 중 한 명은 Fedora 시스템에 chromiumpepflash 플러그인과 몇 가지 다른 것들을 추가했습니다. 저는 원래 스크립트를 다음과 같이 만들었습니다.러시아 페도라에 관한 것그렇게 하는 것은 당시에는 신뢰할 수 없어 보였고, 성가신 종속성이 많이 필요했으며 때로는 구식이었습니다. 내 스크립트는 내가 생각하는 대로 작동해야 합니다.우분투 스크립트실제로 - 크롬 패키지를 사용하고 플러그인을 추출하여 합법적으로 재배포할 수 있습니다.
무엇을 하고 있는지 파악한 후에는 다음과 유사한 복사 명령을 사용하여 크롬 설치 등에 내용을 복사해야 합니다(내 Fedora 21 시스템에서는 잘 작동합니다).
sudo cp -riv ${tmpdir}/* ${location}/
${tmpdir}
/tmp/tmp.IOfylQBAHT
등이 있을 수 있고 ${location}
있을 수 있는 위치 /usr/lib64/chromium-browser/
는 둘 다 스크립트가 실행되는 설정과 사용되는 옵션에 따라 다릅니다. 일반적으로 두 개 또는 세 개의 복사 명령이 필요합니다.
내 질문은 모든 시스템이 그것을 사용하는 것은 아니라고 생각합니다 (일부 시스템은 사용해야 sudo
합니다).su
sudo
설치되지 않음또는 설정, 일부 시스템에서는 사용자에게 루트 권한이 전혀 없을 수도 있습니다.) 그래서 어떻게 해야 하는지 궁금합니다.
- 그것을 사용
sudo
하고 최선을 다하길 바랍니다 timeout 2 sudo -v > /dev/null 2>&1
사용자가 sudo를 루트로 사용하여 작업을 수행할 수 있는지 확인하는 등의 이상한 작업을 사용하세요.$?
이러한 메시지를 표시하고 종료할 수 없는 경우,To finish installation, please run 'cp -riv ${tmpdir}/* ${location}/' as root
가능하다면 계속 진행하세요.(테스트 명령은 사용자가 sudo를 사용하려고 시도하는 경우 일부 시스템에서 악명 높은 "이 이벤트가 보고됩니다" 문제를 일으킬 수 있습니다. 또한 사용자의 시간 초과 등이 연장될 수도 있습니다.원천)- 종료하고 잠시 후에 메시지를 표시하세요.
echo
(참고로 편집 되어${tmpdir}
적절한 위치 등으로 교체될 예정입니다.) 사용자가 루트로 스크립트를 실행하고 있는지 확인하십시오. 예를 들면 다음과 같습니다.
if [ "$(whoami)" != "root" ]; then echo -e "\e[31mERROR: This needs to be run as root\e[0m"; exit 1 ; fi
- 다른 것 :)
답변1
나는 개인적으로 스크립트를 sudo
넣는 것이 나쁜 생각이라는 것처럼 그것에 대해 어떤 가정도 하지 않을 것입니다 . sudo
IMHO, 네 번째 제안(스크립트가 루트로 실행되는지 확인)이 최고입니다. 나는 이름 대신 유효한 사용자 ID를 확인하는 것을 선호합니다.
[ -n "$EUID" ] && [ $EUID -eq 0 ] || <not root, exit>
그러면 스크립트를 실행하는 데 사용할 수퍼유저 도구를 사용자가 선택할 수 있습니다.