好吧,我先自己琢磨琢磨看看是什么原因……可能是 proot,也有可能设备,也有可能是脚本,也有可能就是 rootfs 有问题,但起码现在有方向了……等我找到具体原因了我再发帖吧……谢谢你的建议,如果是 anlinux 的问题,我会去提交 issues 的
我之前用过 anlinux 的 opensuse,也是不好使,估计就是这个原因,直接换了 Ubuntu 什么毛病都没有
我自己手捏的脚本也不行……
这是权限
我是新人,不是很明白有没有问题
drwx--S---. 5 root root 4096 Jan 8 04:02 adm
drwx--S---. 4 root root 4096 Jan 8 04:02 cache
请问这些权限有问题么?
@marguerite @tommyvct @hillwood
麻烦了
软件源都不开?
我觉得看一下 mount 比看这个有用
这是正常的:
drwxr-xr-x 10 root root 4096 Sep 27 02:57 adm
drwxr-xr-x 14 root root 4096 Sep 27 02:57 cache
这是你的:
drwx--S---. 5 root root 4096 Jan 8 04:02 adm
drwx--S---. 4 root root 4096 Jan 8 04:02 cache
问题就在这儿了,你现在的权限(2700,drwx—S—.)的意思是说:
- 除了 root 用户以外所有用户都无法运行这个文件下的东西,而且只有 root 用户自己可读可写,sudo 都不行。
- 这个文件夹下所有的文件都只能属于 root 这个 group。
openSUSE 肯定不会这么设置的,一般这么搞的都是极其注重安全的系统(看到 setuid/setgid 第一时间就要想到 selinux)。所以我怀疑你玩 selinux 把自己 block 了或者就是 anlinux 之类的脚本里面有这么玩的步骤。再或者因为你的机器装在 Android 上,我不了解是不是用的 Android 的真实闪存当硬盘用,或许就是 Android 本身的权限管理把你那个物理盘的权限给改了。
我感觉可行的解决办法:
- 试试用 su 切换到 root 再用 zypper。可能默认给 root 不必须设置普通用户的发行版就遇不到这个问题。
- 或者 sudo chmod 777 /var
就像楼上说的 mount 看磁盘挂载情况。我感觉 Anlinux 既然把 Linux 装在 Android 上,其 SD 卡或者闪存的安装位置离开 Anlinux 这个应用必受 Android 权限控制。Android 就没有普通用户。
我看了我自己的 mount,里面并没有/var
相关的内容
建议从start-opensuse.sh
这个脚本里的操作入手
还有可能不在 startup-opensuse.sh 的脚本,在那个 rootfs。rootfs 里用的 docker pull 的 openSUSE 的 image,不是用的 DVD 或者 JeOS…你要八个发行版一起搞 rootfs 的话,docker 自动化程度确实高,但是…
你可以把它的 rootfs 解压开看看里面的 /var 权限…我怕 openSUSE 的 docker image 做过针对微服务的定制…微服务确实可以只用 root,那么设置权限反而是安全的,反正软件都用 docker 装完了,image 成型也不会再手动进去装软件了,zypper 不能用有什么关系呢,直接删除都没关系。但是非要有人把它当正常系统的话…
你好,谢谢你的建议
Proot 下默认似乎就是使用的 root 登陆,比如
localhost: ~ # whoami
root
所以我个人暂时认为,权限是没有问题的,但我之后仍会尝试su
以后再进行zypper
另外,rootfs 内的文件权限是
drwx--S---. 5 root root 4096 Jan 8 04:02 adm
drwx--S---. 4 root root 4096 Jan 8 04:02 cache
再有,关于start-tumbleweed.sh
,该脚本确实没有挂载/var
现在的问题方向很明确了,我正在执行以下步骤
-
我将挂载/var
后尝试zypper
- 我查看了其他脚本,似乎也没有挂载
/var
的这种操作。以下是挂载后的提示。
- 我查看了其他脚本,似乎也没有挂载
proot warning: can’ t sanitize binding "/var ": No such file or directory.
挂我修改的内容
command+="-b /var"
-
我之后将尝试su
- 给出的 rootfs 竟然……
bash: su: command not found
-
最后使用chmod 777 -R /var
已执行,正在尝试安装 VIM- 失败,根据之前的建议我自己分析了 log,估计还是无法写入的问题
综上,我个人觉得应该是 rootfs 有问题,但是有些地方很奇怪
zypper.txt (407.2 KB) cli.txt (1.7 KB)
openSUSE 的 docker image 是精简过的。
你先解压 rootfs 看看 var 权限吧,另外你光 chmod 777 恐怕不行,你可能要先把 setgid 去掉。
你好,这一段时间比较忙,没有及时回复,实在抱歉。
我昨天下午按照你的方法尝试,似乎仍存在问题。
那么这只能是 rootfs 的问题了。
感谢你的帮助,我再次确认后会提交 issues 给 Anlinux,看看它的作者能不能解决问题。辛苦了。
另外,我在 docker 上使用 opensuse 似乎没有问题,不知道是什么。
感谢各位的帮助!