호출 코드에 수퍼유저 권한 상승이 필요한지 여부를 프로그래밍 방식으로 어떻게 확인할 수 있나요?

호출 코드에 수퍼유저 권한 상승이 필요한지 여부를 프로그래밍 방식으로 어떻게 확인할 수 있나요?

다른 사람에게 코드를 제공할 때 모든 고도 관련 코드를 제거하는 것이 좋습니다. 즉, (또는 ) apt update대신 제공합니다 . 그러나 UNIX 기반 권한 상승을 처음 접하는 사람들에게는 이로 인해 모든 종류의 문제가 발생할 수 있습니다. 저와 제가 만난 다른 많은 사람들은 위 유틸리티를 사용하여 모든 것을 수퍼유저로 실행하곤 했습니다.sudo apt updatesu -c 'apt update'

또한 프로그래밍 방식으로 특정 명령을 호출할 때 일부 시스템에서는 수퍼유저 권한 상승이 필요하지만 다른 시스템에서는 필요하지 않습니다. 이는 권한 엘리베이터를 포함하면 슈퍼유저가 소유해서는 안 될 물건을 소유하기 시작하기 때문에 일부 시스템의 구성이 중단될 수 있음을 의미합니다. flatpak하나이에 대한 몇 가지 예(깨진 구성 제외) - 설치의 50%는 대부분의 명령을 호출하는 데 필요한 권한 상승을 사용했고 나머지 50%는 기본적으로 사용하지 않았습니다.

제 경험상 Windows 7+의 UAC 상승이 매우 잘 작동하는 것 같다는 점을 고려하면, 극단적인 경우에도 이 문제를 해결할 포괄적인 방법이 없는 것 같아 상당히 놀랐습니다.

따라서 명령을 호출하기 위해 사용자 권한 상승이 필요한지 여부를 프로그래밍 방식으로 결정하는 방법을 아는 사람이 있는지 묻고 있습니다. 특정 명령이 호출될 때 사용자를 전환하면 사용자의 동작이 해당 사용자에게 영향을 미칠 수 있다는 점을 이해하지만, 이러한 경우 사용자가 명령을 제한적으로 호출할 수 있다고는 상상할 수 없습니다(무용지물이 되지 않도록).


https://unix.stackexchange.com/search?q=ok+whether+superuser+elevation+required아무것도 반환하지 않지만명령에 루트 권한 상승이 필요한지 여부를 코드를 통해 어떻게 확인할 수 있습니까?그리고명령을 실행하는 데 "sudo" 권한이 필요한지 확인하는 방법은 무엇입니까?그들은 내가 알고 싶은 것이 무엇인지 묻는 것 같고, 두 가지 모두에서 사용할 수 있는 몇 가지 응답은 언어 독립적인 솔루션을 제공하기보다는 문제를 회피하기 위한 쉘 스크립트 코드에 초점을 맞춘 것 같습니다.

답변1

따라서 명령을 호출하기 위해 사용자 권한 상승이 필요한지 여부를 프로그래밍 방식으로 결정하는 방법을 아는 사람이 있는지 묻고 있습니다. 특정 명령이 호출될 때 사용자를 전환하면 사용자의 동작이 해당 사용자에게 영향을 미칠 수 있다는 점을 이해하지만, 이러한 경우 사용자가 명령을 제한적으로 호출할 수 있다고는 상상할 수 없습니다(무용지물이 되지 않도록).

apt그러한 방법은 존재하지 않습니다. 대신 루트로 실행해야 하는 것은 "관리자 컨텍스트 지식" 입니다 flatpak. 다른 프로그램은 필요할 때 권한 상승을 요청합니다.

제 경험상 Windows 7+의 UAC 상승이 매우 잘 작동하는 것 같다는 점을 고려하면, 극단적인 경우에도 이 문제를 해결할 포괄적인 방법이 없는 것 같아 상당히 놀랐습니다.

UAC 권한 상승은 linux/freedesktop의 sudo 또는policykit에 해당하는 Windows GUI입니다.

Windows에서는 프로그램에서 관리자 권한을 요청하지 않는 한 프로그램에 관리자 권한이 필요한지 여부도 알 수 없습니다.

그러나 Windows 그래픽 셸에는 실행 파일에 대한 링크를 "다른 사용자로 실행"으로 표시하는 방법이 있습니다. 그러나 이는 실행 파일을 검색하려면 권한 상승이 필요하다는 것과는 다릅니다.

관련 정보