스크립트의 권한을 변경하는 방법은 무엇입니까?

스크립트의 권한을 변경하는 방법은 무엇입니까?

일부 디스크에 직접 액세스할 수 있는 VMWare 가상 머신이 있습니다. (자체 문제가 있는 su로 vmware를 실행하지 않고) 실행하려면 장치의 소유권을 변경해야 합니다. 나는 이것을 수동으로 사용하여 수행했습니다.니모, 그래서 무엇을 해야 하는지 알고 있습니다.

이를 위해 쉘 스크립트를 작성했습니다.

chown john:john /dev/disk/by-id/blahblah  /dev/anotherblah  /dev/lastoneblah

파일로 저장 drive-owner하고 실행 비트를 설정한 다음 루트 쉘에서 소유자를 루트로 변경하고 +s 특수 모드 플래그를 설정했습니다.

ls의 결과에 따르면 결과는 입니다 -rwsr-sr-x.

루트가 아닌 일반 쉘에서 실행하면 chown에서 오류가 발생합니다.허용되지 않는 작업. 루트 셸에서 불만 없이 실행됩니다.

스크립트를 루트로 자동 실행하는 부분이 누락된 것 같습니다. 이것이 "setuid" 권한의 목적이자 기능이라고 생각하며,+s를 지정하는 방법.

내가 무엇을 놓치고 있나요?

답변1

보안상의 이유로 쉘 스크립트는 setuid 및 setgid 플래그를 무시합니다.

답변2

다음 단계를 따르십시오.

  • 노력하다sudo
  • 노력하다chmod +x script_path
  • 보안이 중요하지 않은 경우 다음을 실행하십시오.chmod 777 script_path

답변3

@hildred는 위의 댓글에서 이를 지적했습니다. 이것이 정확하고 적극 권장되는 답변이라고 생각하기 때문에 이것을 답변으로 확장하겠습니다.

이것훌륭한주문하다

...지정된 사용자가 루트로 스크립트(또는 다른 명령)를 실행할 수 있도록 허용하거나 명령을 실행하기 전에 명령별로 uid, gid 및/또는 보조 그룹을 설정할 수 있습니다.이는 스크립트를 루트로 설정하는 것에 대한 안전한 대안으로 고안되었습니다.. 또한 Super를 사용하면 일반 사용자가 다른 사용자가 실행할 명령을 제공할 수 있습니다. 이러한 명령은 명령을 제공하는 사용자의 uid, gid 및 그룹을 사용하여 실행됩니다.

(강조).

관련 정보