답변:
@Tachyons 제안에 따라, 나는에 대해 많은 연구 pkexec
와 그 것이다 최고 !
예, 그것은 모든 요구 사항을 충족 시키며 그것이 "범용 gksudo" 가 될 수있는 가장 가까운 것 같아요 .
즉, pkexec
PolicyKit의 명령 줄 프런트 엔드입니다. 두 가지 기본 작동 모드가 있습니다.
을 사용하여 간단하게 실행하면 sudo
멋진 GUI 프롬프트가 표시됩니다.
$ pkexec rm -rf /
/usr/share/polkit-1/rules.d
특정 작업에만 루트 액세스, 다른 사람에게는 비밀번호 필요 없음, 특정 경로로 제한되는 액세스 등의 많은 사용자 정의 및 보안 관련 옵션을 사용할 수 있습니다. 등 세분화하여 설정을 미세 조정할 수 있습니다.보다 일반적인 방법은 "도우미 프로그램"을 작성하는 것입니다. 이러한 프로그램은 사용자에게 암호를 묻습니다. 예를 들어 Zenity가 설치되어 있다고 확신하면 사용할 수 있습니다. 그렇지 않으면 Python 또는 GUI와 상호 작용할 수있는 도우미 프로그램을 작성해야합니다.
( "askpass") 및 (stdin) 옵션에 대한 sudo
설명서를 읽으십시오 .-A
-S
sudo
스크립트에서 실행할 때 -H
를 시뮬레이션 하려면 (홈) 옵션 이 필요합니다 gksudo
.
이 방법은 잘 작동하지만 도우미 프로그램을 철저히 테스트하여 버그가 없는지 확인해야합니다.
아니요, 루트 (또는 다른 사용자의) 권한을 얻는 표준 방법은 없습니다.
가능한 많은 시스템과 호환 되려면 어떤 방식 으로든 가정하지 말고 사용자에게 스크립트를 특정 사용자로 실행해야한다고 알려주십시오. 그런 다음 스크립트가 올바른 방식으로 실행되도록 시스템을 구성하는 것은 사용자 / 관리자에게 달려 있습니다.
su, sudo 및 ConsoleKit과 같은 가장 일반적인 인증 시스템을 사용하는 방법에 대한 제안을하는 것이 좋습니다.
polkit
(이전의 PolicyKit)는 표준으로 간주 될 정도로 널리 퍼져 있습니다.