unshare

원격 데스크톱 프로그램에서 하위 프로세스 격리
unshare

원격 데스크톱 프로그램에서 하위 프로세스 격리

저는 Linux용 원격 데스크톱/스트리밍 프로그램을 개발 중입니다. 사용자가 로그인할 때 시작할 프로그램을 지정하면 원격 서버는 해당 프로그램을 새로운 프로세스로 시작합니다. 서버 프로세스는 Wayland 컴포지터 역할을 하므로 하위 프로세스는 화면 밖에서(서버의 다른 사용자의 관점에서) 실행되고 컴포지터로부터 입력을 받습니다. 이는 간단한 애플리케이션에서는 잘 작동하지만 Steam(이 사용 사례에서 중요한 애플리케이션)과 같은 많은 데스크톱 애플리케이션은 dbus를 사용하여 실행 중인 기존 Stea...

Admin

chroot를 사용하여 공유를 해제하면 /proc처럼 /dev를 격리하지 않는 이유는 무엇입니까?
unshare

chroot를 사용하여 공유를 해제하면 /proc처럼 /dev를 격리하지 않는 이유는 무엇입니까?

나는 팔로우하고 있다처음부터 Kevin Boone 컨테이너 만들기 /mnt/container/ 아래에 알파인 미니 루트 파일 시스템이 있습니다. chroot 및 unshare에서 마운트가 작동하는 방식이 약간 혼란스럽습니다. 공유를 해제하면 공유를 해제할 필요가 없습니다. chroot /mnt/container /bin/sh -l 호스트 시스템에 "/"(루트)가 있는 컨테이너(일종의)를 얻습니다 /mnt/container. 컨테이너 내부에서 다음 명령을 실행하면; mount -t proc proc ...

Admin

--fork를 `nsenter -t'로 사용할 때 `unshare`의 하위 ID를 얻는 방법`?
unshare

--fork를 `nsenter -t'로 사용할 때 `unshare`의 하위 ID를 얻는 방법`?

를 사용하는 경우 올바른 pid 네임스페이스를 얻으려면 pid 가 아닌 subpid에 명령을 추가해야 합니다 unshare --pid --fork.nsenterunshare 다음과 같이 unshare의 pid를 얻을 수 있습니다. unshare --pid --mount --fork --mount-proc bash & echo PID: $! fg unshare하지만 올바른 네임스페이스를 입력하려면 자식의 pid(2914003)가 필요합니다 . ps wwfuax | grep -A1 unsha...

Admin

터미널 1:
unshare

터미널 1:

unshare및 매뉴얼 페이지에서 읽은 모든 것에서 디렉토리를 자체( 디렉토리) nsenter에 바인드 마운트한 다음 해당 디렉토리의 파일을 사용하여 영구 네임스페이스에 대한 참조를 보유할 수 있어야 합니다 . 이것이 제가 하고 있는 일입니다. 기본적 으로 디렉토리가 다르지만 mount --make-private기본적으로 동일합니다 .man unshare--pid=file--mount=file 터미널 1: # mkdir -p /mnt/jails/debian/bookworm/.ns # mount --b...

Admin

포트에 권한이 없으면 네임스페이스의 루트일 때 포트에 액세스할 수 없는 이유는 무엇입니까?
unshare

포트에 권한이 없으면 네임스페이스의 루트일 때 포트에 액세스할 수 없는 이유는 무엇입니까?

나는 도망 갔다 sudo sysctl -w net.ipv4.ip_unprivileged_port_start=1. 그러나 sudo ip netns exec myvpn unshare -r python -m http.server -b 127.0.0.1 2작동하지 않습니다. 이상하게도 이는 사실입니다 sudo ip netns exec myvpn unshare python -m http.server -b 127.0.0.1 2. 왜? 편집하다: 그러나 둘 다 작동하지 sudo ip netns exec myvpn...

Admin

Linux 네임스페이스에서 하위 UI 수를 확장하는 방법
unshare

Linux 네임스페이스에서 하위 UI 수를 확장하는 방법

다음과 같이 실행한 후: $ unshare -rUm $ mkdir opt $ mount --bind opt /opt $ touch /opt/test $ chown 1000:1000 /opt/test 나는 이것을 받습니다: chown: changing ownership of '/opt/test': Invalid argument 보시다시피 제가 사용할 수 있는 subuid는 1개뿐입니다. $ cat /proc/self/uid_map 0 1000 1 어떻게 ...

Admin

단계 복사
unshare

단계 복사

.unshare​overlayfs​/tmp ​/proc​ 을 adduser(를 su) 새 사용자로 추가할 수도 있습니다 . 그러나 마운트를 설정할 때 overlayfs하위 레이어는 압축이 풀린 tarball이고 상위 레이어는 임시 디렉터리입니다. su새 사용자인 경우 위 단계를 반복하면 권한 거부 문제가 발생하여 실패합니다. 새로 생성된 사용자에게 오버레이 파일 시스템에서 읽을 수 있는 권한이 없는 것과 관련이 있는 것으로 의심되지만 adduser확실하지 않습니다. 로 demsg설정했는데도 /pro...

Admin

gid_map에 대한 에코는 실패했지만 uid_map은 성공했습니다.
unshare

gid_map에 대한 에코는 실패했지만 uid_map은 성공했습니다.

uid_map 및 gid_map 파일에 작성하여 새 네임스페이스에 사용자 및 그룹 ID를 매핑하려고 합니다. 곧터미널 1나는 일을 해요 vaibhav@vaibhav:~$ unshare -U /bin/sh $ id uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup) $ echo $$ 2506 그런 다음 새 터미널을 엽니다.NO2.그래요 vaibhav@vaibhav:~$ echo '0 1000 1' > /proc/2506/ uid_map vai...

Admin

해결책
unshare

해결책

네트워크 네임스페이스에서 실행 중인 애플리케이션이 있습니다. 이것은 훌륭하게 작동합니다. 다른 네임스페이스에서 애플리케이션을 여러 번 실행하고 싶습니다. 편의상 애플리케이션의 작업 디렉터리를 네임스페이스 내의 /tmp/nsX와 같은 디렉터리에 바인딩하고 싶습니다. 네임스페이스에서 이 작업을 수행 하면 mount --bind /tmp/nsX /var/lib/my-app네임스페이스를 종료할 때 마운트가 사라집니다. 네임스페이스에 들어가거나 나온다는 것은ip netns exec bash 보고 있는데 uns...

Admin

--mount-proc를 사용하여 공유를 해제하면 새로운 mnt 네임스페이스가 생성됩니다.
unshare

--mount-proc를 사용하여 공유를 해제하면 새로운 mnt 네임스페이스가 생성됩니다.

--mount-proc명령과 함께 사용할 때 수행되는 작업에 대해 약간 혼란 스럽 습니다 .unshare 이를 사용했을 때 unshare -fp --mount-proc bash새로운 PID 네임스페이스와 새로운 MNT 네임스페이스가 생성되는 것을 확인했습니다. 새로운 MNT 네임스페이스에 있다는 점을 고려하여 루프 장치 중 하나를 마운트 해제하려고 시도했지만 이것이 상위 MNT에 반영되지 않은 것을 확인했습니다( df -h상위 네임스페이스에서 실행했을 때 마운트가 여전히 표시됨). 이제 한발 더 나아...

Admin

공유 해제에서 다른 PID 얻기
unshare

공유 해제에서 다른 PID 얻기

다음은 이라는 스크립트의 일부 기본 코드입니다 test.sh. bash -c "sleep 10; echo \$(pidof unshare)" & sudo unshare --mount --uts --ipc --net --pid --fork /bin/sh -c " ... do stuff ... sleep 60 " & PID=$! 스크립트를 실행하면 첫 번째 줄의 백그라운드 bash 명령으로 인식되는 프로세스 ID와 PID에 할당된 값이 다릅니다. 또한 ps스크립트 내에서 실행하면 프로세...

Admin

보조 그룹과 공유 취소
unshare

보조 그룹과 공유 취소

내 Linux 컴퓨터에는 나(나의 사용자)가 기본 그룹과 여러 다른 그룹을 가지고 있습니다(나는 그룹 150에 속합니다). $ id -u; id -g; id -G 1000 1000 1000 6 21 91 97 150 190 465 996 1003 명령을 사용자 네임스페이스로 격리해야 합니다. 나는 unshare --user이것을 사용합니다 : $ unshare --user --map-user=4000 --map-group=4000 bash -c 'id -u; id -g; id -G' 4000 400...

Admin

새 PID 네임스페이스의 PID가 연속적이지 않은 이유는 무엇입니까?
unshare

새 PID 네임스페이스의 PID가 연속적이지 않은 이유는 무엇입니까?

저는 우분투 20.04를 실행하고 있습니다. ~에 따르면https://lwn.net/Articles/531419/그리고https://stackoverflow.com/questions/3446727/how-does-linux-define-the-next-pid/3457108#3457108, 할당된 PID는 연속적이어야 합니다. 그러나 이것은 새로 생성된 PID 네임스페이스의 경우에는 해당되지 않습니다. 여기서 첫 번째 프로세스의 PID는 1(당연히 그래야 함)이고 다음 프로세스의 PID는 8입니다. 이...

Admin