我有一个非特权 lxc 容器。它运行良好,如果我需要在该容器内执行某些操作,su --login lxc-user
那么我会lxc-attach -e -n lxc-container
以 root 身份在其中手动执行更新。有时我需要以 Linux 容器的普通用户身份做一些事情,然后我做su --login lxc-user
,然后我做lxc-attach -e -n lxc-container
,然后我做su --login normal-user
,例如添加另一个 crontab 作业。
我尝试编写这些步骤的脚本,但遇到 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
我只是不知道到底是什么段错误。我真的不知道。