Devuan 및 LXC를 기반으로 한 가벼운 개인 정보 집중 데스크탑 운영 체제. 자체 교육을위한 프로젝트, 그리고 Qubes OS를 대안하려는 또 다른 시도. 이것은 아직 배포판이 아니며 아마도 결코 그렇게하지 않을 것입니다. 이것은 파일과 패치 세트, 간단한 makecex 스크립트 및 명령어 à la lfs입니다.
진행중인 작업.
현재이 시스템은 내 경험을 반영하며 개인적인 취향으로 가득합니다. 그들 중 일부는 꽤 근거가 없습니다. 사용자 수가 1.5를 넘어서 자마자 제거 할 것이라고 맹세합니다. 그러나 일반적으로 이론적 근거는 다음과 같습니다.
라이브 시스템이있는 부팅 가능한 미디어는 makecex로 생성 될 수 있습니다. 준비 및 빌드 스크립트로 만들 수있는 PPA가 필요합니다.
현재 AMD64에는 레거시 부팅 모드 만 지원됩니다.
스크립트에는 처음에 매개 변수가 포함되어 있으며 실행하기 전에 신중하게 수정합니다. 스크립트를 변경하는 대신 makecex.conf 에 수정 된 매개 변수를 쓸 수 있습니다.
초안/샌드 박스 섹션.
LXCEX가 idmapped 마운트로 이동 했으므로 파일 권한이 더욱 중요해졌습니다. uidmapshift 사용하면 모든 컨테이너 데이터가 기본 시스템의 비전지없는 사용자로부터 접근 할 수 없었습니다. 기본 시스템 및 컨테이너에 대한 사용자가 공통 ID를 가지고 있기 때문에 더 이상 IDMAPPED 마운트의 경우가 아닙니다 .
/var/lib/lxc 의 모든 하위 디렉토리에 최소한의 권한이 있고 적어도 other 읽을 수 없는지 확인하십시오. 다른 곳에 저장된 컨테이너 데이터에도 동일하게 적용됩니다.
그러나 IDMapped 마운트가 작동하려면 최소한의 권한에는 다른 사람을위한 디렉토리 트래버스가 포함되어야합니다. 이것은 setfacl 사용하여 해결 될 수 있지만, 이는 편의성을 과체중시킵니다.
위의 모든 것이 보안 문제 인 경우 IDMAPPED 마운트를 사용하지 마십시오.
/dev/ptmx .sh 사용하는 경우 sh 를 사용합니다.lxcex 제거하고 사용자가 사용자 정의하도록 하시겠습니까?uidmapshift 유지합니다. uidmapshift ED의 ID를 보여준 ls -l /var/lib/lxc 를 대체 한 컨테이너 인 lxcex-idmap 스크립트가 있습니다.좋아, 여기에 줄을 떨어 뜨 렸어. 나는 여전히이 모든 똥의 단일 사용자 인 것 같고, 아프리카 친구들이 말한 것처럼 "Daz Good!"
많은 기능이 필요했습니다. 첫 번째는 Runit을 제거하는 것입니다. 두 번째는 UI Utils입니다. 다른 모든 사람들은 단지 약간의 일입니다.
지금까지 너무 좋아. 새로운 8 장이 나왔습니다.
창립 3 개월 후, 이제 작별 인사, Linuxmint를 말할 수 있습니다. LXCEX는 지금부터 모든 노트북에 있습니다.
주요 업데이트 :
또 다른 이정표 : Makecex가 나왔습니다! 이 스크립트는 부팅 가능한 미디어를 생성합니다. 과도하게 테스트되지 않았으며, 그것은 단지 나에게만 적용됩니다.
패키지 repo가 나왔습니다. 현재 유일한 패키지는 uidmapshift입니다. 패치 된 버전의 libpulse를 추가 할 계획이므로 파일 허가 수정 장치를 제거합니다.
웃음으로 인한 죽음은 나의 궁극적 인 목표는 아니지만, 나는 나에게 서명 키를 추가해야했다.
자동화가 진행 중입니다. /var/lib/lxc를 실행중인 컨테이너로 재구성하여 시스템을 충돌시킨 후에 시작되었습니다. 그것이 너무 위험하다는 것을 몰랐습니다. 이 작업은 그와 관련이없는 백업 USB 스틱을 포함하여 모든 장착 된 파티션을 파괴했습니다. 왜???
그것은 음악을 재생합니다! 6 장의 초기 버전이 출시되어 업데이트됩니다.
XFCE 데스크탑 환경이 작동합니다!
태그 : 0.0.2
초기 커밋 및 릴리스.
기본 시스템을 포함한 수십 개의 컨테이너에 대한 apt upgrade 발행하는 방법이 궁금 할 것입니다. 그것이 Dist-Upgrade Script의 것입니다. 그것은 lxcex-chroot를 기반으로하며, 컨테이너의 루프에 적절히 chrooting.
그들은 적절한 저장소를 lauch습니다. 그래서 그들의 지시를 따를 가치가 있습니다.
글을 쓰는 시점에서 Firefox (버전 123)는 기본적으로 Wayland를 사용합니다. 기억한다면 Wayland_display는 /home/user/.config/sv/xfce4/run에서 재설정되며 Firefox가 무한 루프로 들어가게합니다.
Warning: ConnectToCompositor() try again : Connection refused
두 가지 옵션이 있습니다.
나는 둘 다 시도했다. 처음에는 스크립트를 사용하여 후자를 선택했습니다.
#!/bin/sh
if [ -n "$X_WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=$X_WAYLAND_DISPLAY
else
# fallback
export WAYLAND_DISPLAY=wayland-1
fi
firefox
그러나 이것은 카피-붙여 넣기가 번거 롭기 때문에 지금은 X 모드로 돌아 왔습니다.
초기 설정은 공유 하위 트리에 대한 이해 부족으로 인해 이상하고 깨지기 쉬웠습니다.
해결책은 다음과 같습니다.
마운트 포인트를 재귀 적으로 공유하십시오. 파일 시스템 rsshared (즉, 오해 지점)에서 임의의 디렉토리를 만들 수는 없습니다. 실제 마운트 포인트, 즉 일부 파일 시스템이 장착되는 디렉토리입니다.
Autofs에 /mnt/autofs 사용하고 싶습니다. 거기에 tmpfs를 장착하고 rshare :
mkdir -p /mnt/autofs
mount -t tmpfs -o size=64K --make-rshared tmpfs /mnt/autofs
mkdir /mnt/autofs/myserver
자동 구성 작성 :
mkdir /etc/auto.maps
echo "/mnt/autofs/myserver /etc/auto.maps/myserver" >/etc/auto.master.d/myserver.autofs
echo "shared-dir myserver.example.com:/var/share/top-secret" >/etc/auto.maps/myserver
Autofs를 다시 시작합니다.
컨테이너 구성에 다음 줄을 추가하십시오.
lxc.mount.entry = /mnt/autofs mnt/autofs none create=dir,rbind 0 0
컨테이너를 시작하십시오. 내부에서는 ls /mnt/myserver/shared-dir 예상대로 작동해야합니다.
그러나 사용자 : 그룹은 아무도 없습니다 : Nogroup과 나는 올바른 ID 매핑을 설정하는 방법을 모릅니다.
menulibre 약간 팽창적 인 것처럼 보이며 현재 Excalibur에서 완전히 깨졌습니다. 그러나 메뉴를 수동으로 편집하는 것은 매우 쉽습니다.
.config/menus/xfce-applications.menu 에 나열되어 있습니다.local/share/applications 입니다컨테이너는 마치 별도의 기계에서 작동하는 것처럼 작업 공간을 분리하는 데 좋습니다. 이것은 단일 시스템 내에서 유지하기에는 너무 오류가 발생하거나 불가능한 네트워킹과 같은 것들을 크게 단순화합니다.
그러나 컨테이너 레벨에서는 모든 응용 프로그램이 사용자 데이터에 완전히 액세스 할 수있는 단일 홈 디렉토리입니다.
이것은 위험합니다. 잠재적으로, 네트워크를 사용하는 모든 프로그램은 민감한 데이터를 유출 할 수 있습니다.
기본적으로 데이터와 함께 작동하는 모든 프로그램은 비활성화 된 네트워킹이있는 컨테이너로 실행해야하며 아마도 그러한 배열로 끝날 것입니다.
그러나 지금은 자체 컨테이너에서 실행되는 몇 가지 레거시 XFCE 환경이 있습니다. 해당 컨테이너에 배포 한 임시 솔루션은 주 사용자를위한 네트워크 액세스가 제한되고 모든 네트워킹 소프트웨어를 다른 사용자로 실행합니다. 이 소프트웨어에는 Firefox, Chromium, Mullvad 및 Tor 브라우저와 Thunderbird가 포함됩니다. 물론, 일부는 이미 Wayland를 지원하지만 LXCEX에는 여전히 복사를 포장하는 문제가 있으며 기본적으로 실행하는 차단 요소입니다.
다음은 Firefox의 예에서 다른 프로그램의 상용구로 사용할 수있는 설정입니다.
먼저 별도의 사용자를 만듭니다.
useradd -g users --skel /etc/skel --shell /bin/bash --create-home firefox
그런 다음 디렉토리를 움직입니다.
mkdir /home/firefox/.cache
mv /home/user/.mozilla /home/firefox/
mv /home/user/.cache/firefox /home/firefox/.cache/
chown -R firefox /home/firefox
다음으로 스크립트 /usr/local/bin/start-firefox 준비하십시오.
#!/bin/sh
USER=firefox
if [ -z "$1" ] ; then
xhost +SI:localuser:$USER
exec sudo $0 dosu
elif [ "$1" = "dosu" ] ; then
exec su -l -c "$0 run" $USER
elif [ "$1" = "run" ] ; then
cd /home/$USER
. /usr/local/share/lxcex-xdg.sh
export DISPAY=:0.0
exec firefox --display=:0.0
fi
실제로, DISPLAY 환경 변수는 여기에서 필요하지 않지만이 스크립트는 다른 앱을 실행하기 위해 보일러 플레이트로 사용될 수 있으므로 의도적으로 남겨 두었습니다.
마지막으로, /etc/sudoers.d/50-start-firefox 작성하십시오 (아아, sudo가 필요합니다) :
user ALL = NOPASSWD: /usr/local/bin/start-firefox dosu
XFCE 시작 메뉴 항목을 수정해야 할 수도 있습니다. 그리고 처음으로 -p 옵션을 추가하려면 Firefox가 빈 프로파일로 시작할 수 있습니다.
Downloads 디렉토리를 공유하는 것이 좋습니다. 이전 접근법은 Symlinks가있는 그룹 작성 디렉토리 였지만 가장 좋은 방법은 lxces-share 입니다.
DIRECROTY를 사용했던 것처럼 Downloads 를 user 의 홈 디렉토리에 두십시오. 그런 다음 컨테이너의 다음 sharetab 만듭니다.
/var/lib/lxc/<container-name>/rootfs/home/user/Downloads firefox /home/firefox/Downloads
8 장에서 볼 수 있듯이 컨테이너 구성에 후크를 사용하십시오.
lxc.hook.pre-start = /usr/local/bin/lxcex-share
lxc.hook.mount = /usr/local/bin/lxcex-share
lxc.hook.start = /usr/local/bin/lxcex-share
lxc.hook.post-stop = /usr/local/bin/lxcex-share
6 장을 썼을 때이 기사를 발견했습니다 : https://discuss.linuxcontainers.org/t/audio-via-pulseaudio-inside-container/8768 그들은 LXD를 사용하며 구현 OD 소켓 프록시를 살펴볼 가치가 있습니다. 베이스 컴포 터가 다시 시작될 때 컨테이너 소켓을 유지하고 호스트 소켓에 다시 연결하는 데 사용할 수 있습니까? 아니면 컨테이너가 최대 절전 모드에서 재개 될 때?
다시,
나는 왜 내가해야했는지를 알지 못했다
mount --make-shared /run IE /run , NOT /run/user mount --rbind /run/user "${LXC_ROOTFS_MOUNT}/run/host/run/user" 컨테이너로 전파하기를 원했습니다.
몇 번이나 다시 읽은 후에는 결국 분명해야합니다.
smartd 지금까지 HDD 스핀 타운을 비활성화하는 가장 신뢰할 수있는 도구입니다.
/etc/default/smartmontools 편집 : smartd_opts="--interval=10 --attributelog=- --savestate=-"
--interval , 다른 사람들은 내가 필요하지 않은 저축 상태를 비활성화합니다.-n 옵션이 never etc/smartd.conf 에 없는지 확인하십시오. DEVICESCAN -d removable -n never -m root -M exec /usr/share/smartmontools/smartd-runner
내 추가 패키지, 레코드 만.
gnome-font-viewer , 불필요하게 보입니다gthumbbreeze-icon-theme 사용했습니다.systemsettings : 만일을 대비하여 설치 한 지금까지 이익이 없습니다.libnss3 , libasound2