Debian`dpkg-divert`와 동등한 기능

Debian`dpkg-divert`와 동등한 기능

Arch Linux에서 Skype를 사용하도록 구성하려고 합니다.샌드박스 사용자어떤 사용자가 전화하는지는 중요하지 않지만 skype위키에서 제안한 대로 BASH 별칭을 사용하여 Skype를 시작하는 것을 별로 좋아하지 않습니다. 왜냐하면 내가 아는 한 skype.desktop사용자가 BASH를 사용하지 않거나 전화를 걸지 않으면 사용되지 않기 때문입니다. 샌드박스 사용자의 Skype. /usr/bin/skype전화를 전달하는 것이 더 나을 것 같아요

sudo -u skype /usr/bin/skype.real

skype.real실제 Skype 바이너리는 어디에 있습니까? 나는 데비안에서 이것을 할 수 있다고 확신합니다.

dpkg-divert --package skype --add --rename --divert /usr/sbin/skype.real /usr/sbin/skype

그런 다음 내 파일을 /usr/sbin/skype.Arch를 사용하여 어떻게 수행합니까?

답변1

내 의견에서 제안한 대로 skype-restrictedAUR 패키지가 작동하지 않는 경우(그들이 사용하는 방법을 모른다는 점에 유의하세요) 두 가지 접근 방식을 생각해 볼 수 있습니다.

(아치에 적용하는 올바른 방법을 배우려면 끝까지 읽으십시오)

skype실제 Skype를 실행하도록 스크립트를 변경하세요 .

실제 Skype에 전화하기 위한 bash 스크립트를 만듭니다.

#!/bin/sh
sudo -u skype /usr/bin/skype.real

실행 권한을 부여하고 로 저장하고 /usr/bin/skype이전 Skype 바이너리의 이름을 /usr/bin/skype.real.

하지만 이 접근 방식에는 고려해야 할 몇 가지 문제가 있습니다.

  • 사용자(실제) 외에는 누구도 Skype에 전화하지 못하도록 하려면 skype파일에 적절한 권한을 부여해야 합니다.

    chown skype /usr/bin/skype.real
    chmod 0100 /usr/bin/skype.real
    

    이렇게 하면 소유자 이외의 다른 사람이 실행하는 것을 방지할 수 있습니다.

  • 누구든지 (새로, 스크립트로) 실행하려면 누구나(가급적이면 그룹 내에서, 아마도 group ) user 라고 부를 수 있도록 skypesudoers 파일을 편집해야 합니다( 를 사용하여 ) . 자세한 내용은 모르지만 할 수 있다는 것만 알고 있습니다.visudoskypeskype

소유자 변경 skypesetuid비트 설정

참고: setuid 실행 파일을 최소로 설정해야 하므로 이는 권장되는 접근 방식이 아닙니다.

setuid해당 비트를 호출하는 사람이 skypeuser 라고 부르도록 설정하는 것이 더 깔끔할 수도 있습니다 skype.

chown skype /usr/bin/skype
chmod u+s /usr/bin/skype

skype이렇게 하면 명령을 항상 사용할 수 있게 되지만 항상 user 로 실행됩니다 skype.


위의 상황 중 하나에서pacman, 바이너리가 교체되므로 Skype를 최신 버전으로 업데이트할 때마다 이 프로세스를 반복해야 합니다 .

해결책은 PKGBUILD공식 패키지를 다운로드하고, 압축을 풀고, 필요한 변경을 수행하는 프로그램을 만드는 것입니다. 그런 다음 AUR 패키지와 마찬가지로 수동으로 설치하십시오. 업데이트가 필요할 때마다 수동으로 다시 빌드해야 합니다. 그러나 Skype 업데이트는 그렇게 자주 발생하지 않습니다.

이 마지막 작업을 위해PKGBUILD에 대한 공식 위키훌륭한 자원입니다.

관련 정보