Ubuntu에서 데스크탑을 녹화하지 못하도록 화면 레코더를 차단합니다.

Ubuntu에서 데스크탑을 녹화하지 못하도록 화면 레코더를 차단합니다.

Ubuntu 18.04를 사용하고 있는데 화면 녹화를 방지할 수 있는 프로그램을 만들고 싶습니다. 나는 이것을 달성하기 위해 두 가지 방법을 시도했습니다.

1. C++에서 강제 파일 잠금 사용

#include<bits/stdc++.h>
#include<unistd.h>
#include<fcntl.h>
#include <sys/file.h>
using namespace std;
int main(int argc,char **argv)
{
    int fd = open(argv[1], O_RDWR);
    static struct flock lock;
    lock.l_type = F_WRLCK;  //F_WRLCK   F_RDLCK
    lock.l_start = 0;
    lock.l_whence = SEEK_SET;
    lock.l_len = 0;
    lock.l_pid = getpid();
    
    cout<< fcntl(fd, F_SETLKW, &lock)<<'\n';
   
    while (1) {      }  // to run this application so lock didn't release
    //will add release lock function here

    return 0;
} 

/dev/video0카메라의 장치 파일을 잠그겠습니다. 같은 방식으로 화면 녹화에 사용되는 파일을 잠급니다(현재 화면 녹화에 사용되는 장치 파일을 모릅니다). 그러면 다른 응용 프로그램에서 읽을 수 없도록 파일이 잠긴 상태로 유지됩니다.

2. 파일 권한 변경sudo chmod 002 /dev/snd( 오디오 담당) 실행하면 snd파일 권한이 그룹 쓰기로 변경되므로 권한이 없으므로 어떤 응용 프로그램도 데이터를 읽을 수 없습니다. 오디오는 재생되지 않으며 오디오가 포함된 비디오도 재생되지 않습니다.

두 가지 방법 모두에서 직면하고 있는 문제

첫 번째 방법으로는 파일이 잠겨 있지 않은 경우도 있으며, 잠겨 있어도 응용 프로그램이 계속해서 파일에서 데이터를 읽을 수 있습니다.

두 번째 방법으로는 권한을 복원했을 때 chmod 772앱은 오디오를 재생할 수 없다는 변경 사항을 읽을 수 없었으며 이 효과를 얻으려면 시스템을 재부팅해야 했습니다.

어떤 문제를 해결해야합니까?

첫 번째 방법으로는 파일이 잠겨 있는 동안에는 어떤 프로세스도 장치 파일을 읽을 수 없습니다.

두 번째 방법으로는 권한을 복원할 때 772효과를 읽기 위해 앱을 다시 시작할 필요가 없습니다. PC 대신 오디오 프로세스를 다시 시작해야 합니다.

관련 정보