![내 스크립트에는 /dev/sdX에 대한 쓰기 권한이 필요합니다. 루트로 실행하지 않으려면 어떻게 해야 합니까?](https://linux55.com/image/137075/%EB%82%B4%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EB%8A%94%20%2Fdev%2FsdX%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%93%B0%EA%B8%B0%20%EA%B6%8C%ED%95%9C%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EB%A3%A8%ED%8A%B8%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
f3
저는 다음과 같이 다수의 USB 드라이브에 대한 포맷 및 테스트(사용)를 처리하는 Bash 스크립트를 개발 중입니다 .
mkntfs -QF /dev/sdX
저는 루트로 스크립트를 실행하곤 했습니다.
sudo MyScript.sh
그러나 오늘은 도구를 모듈식으로 재설계하는 동안 실수로 스크립트를 실행할 때마다 운영 체제가 충돌하는 일을 했습니다. 다양한 애플리케이션이 종료되거나 중단되어 더 이상 기본적인 명령줄 작업을 수행할 수 없었습니다. 다행히 재부팅으로 모든 것이 해결되었지만 다시 생각하게 되었습니다.진짜이 스크립트를 루트로 실행하면 안 되나요?
문제는 일반 사용자를 제한하는 작업(예: /dev/의 장치 문자 파일에 대한 쓰기 액세스)을 수행해야 한다는 것입니다.
내 스크립트에 정확한 권한을 부여하고 불행한 오타로 인해 내 하드 드라이브가 지워지거나 손상될 가능성을 방지하려면 어떻게 해야 합니까 /dev/null
?
답변1
udev
USB 드라이브를 일치시키고 선택한 그룹에서 쓸 수 있도록 규칙을 추가한 다음 해당 그룹에서 스크립트를 실행할 수 있습니다.
다음 일치 항목은 이동식 USB 드라이브를 식별해야 합니다.
KERNEL=="sd*[!0-9]", ATTR{removable}=="1", SUBSYSTEMS=="usb"