내 스크립트에는 /dev/sdX에 대한 쓰기 권한이 필요합니다. 루트로 실행하지 않으려면 어떻게 해야 합니까?

내 스크립트에는 /dev/sdX에 대한 쓰기 권한이 필요합니다. 루트로 실행하지 않으려면 어떻게 해야 합니까?

f3저는 다음과 같이 다수의 USB 드라이브에 대한 포맷 및 테스트(사용)를 처리하는 Bash 스크립트를 개발 중입니다 .

mkntfs -QF /dev/sdX

저는 루트로 스크립트를 실행하곤 했습니다.

sudo MyScript.sh

그러나 오늘은 도구를 모듈식으로 재설계하는 동안 실수로 스크립트를 실행할 때마다 운영 체제가 충돌하는 일을 했습니다. 다양한 애플리케이션이 종료되거나 중단되어 더 이상 기본적인 명령줄 작업을 수행할 수 없었습니다. 다행히 재부팅으로 모든 것이 해결되었지만 다시 생각하게 되었습니다.진짜이 스크립트를 루트로 실행하면 안 되나요?

문제는 일반 사용자를 제한하는 작업(예: /dev/의 장치 문자 파일에 대한 쓰기 액세스)을 수행해야 한다는 것입니다.

내 스크립트에 정확한 권한을 부여하고 불행한 오타로 인해 내 하드 드라이브가 지워지거나 손상될 가능성을 방지하려면 어떻게 해야 합니까 /dev/null?

답변1

udevUSB 드라이브를 일치시키고 선택한 그룹에서 쓸 수 있도록 규칙을 추가한 다음 해당 그룹에서 스크립트를 실행할 수 있습니다.

다음 일치 항목은 이동식 USB 드라이브를 식별해야 합니다.

KERNEL=="sd*[!0-9]", ATTR{removable}=="1", SUBSYSTEMS=="usb"

관련 정보