권한이 없는 lxc 컨테이너가 있습니다. 잘 작동하며 해당 컨테이너 내부에서 작업이 필요한 경우 루트로 수동으로 업데이트를 수행합니다 su --login lxc-user
. 때로는 Linux 컨테이너에서 일반 사용자로서 다른 crontab 작업을 추가하는 것과 같은 lxc-attach -e -n lxc-container
작업을 수행하고 su --login lxc-user
, 수행하고 lxc-attach -e -n lxc-container
, 수행합니다 .su --login normal-user
이 단계의 스크립팅을 시도했지만 lxc-attach가 su - c 명령에서 작동하지 않는 것을 발견했습니다. 보세요, 이것은 작동합니다:
$me:~$ sudo su --login lxc-user
$lxc-user:~$ lxc-attach -e -n lxc-container -- ls -ld /home/normal-user
drwxr-xr-x 15 normal-user normal-user 4096 Aug 28 15:47 /home/normal-user
$lxc-user:~$
스크립트를 작성하면 작동하지 않고 짖지도 않습니다.
$me:~$ sudo su --login lxc-user -c 'lxc-attach -e -n lxc-container -- ls -ld /home/normal-user'
$me:~$
이것이 작동하지 않는 이유에 대한 설명이 있습니까? 아니면 내 문제에 대한 해결책이 있습니까?
업데이트: 해결책:
작동하지 않는 이유는 세그폴트 때문입니다. 이렇게 하면 예를 들어 dmesg에서 다음과 같은 결과를 얻습니다.
[Mo Aug 31 20:45:10 2020] 3[2089617]: segfault at 30 ip 00007fe174eb9e4c sp 00007ffdf0f99ef0 error 4 in libpthread-2.31.so[7fe174eb0000+10000]
[Mo Aug 31 20:45:10 2020] Code: ec 98 00 00 00 45 31 c0 64 48 8b 04 25 28 00 00 00 48 89 84 24 88 00 00 00 31 c0 48 85 f6 74 15 48 b9 00 00 00 80 01 00 00 00 <48> 8b 06 48 85 c8 75 44 49 89 f0 41 ba 08 00 00 00 4c 89 c6 b8 0e
세그폴트가 정확히 무엇인지 모르겠습니다. 나는 정말로 모른다.