升级到Squeeze后,networking访问问题

我计划推出几个(~100)Guruplug显示机器。

他们随同Lenny装运。

我把所有东西都升级到了Squeeze,但是因为我在每个非root用户上都收到套接字错误。

Mar 26 20:31:50 localhost ntpd[1055]: ./../lib/isc/unix/ifiter_ioctl.c:348: unexpected error: Mar 26 20:31:50 localhost ntpd[1055]: making interface scan socket: Permission denied Mar 26 20:35:09 localhost ntpd[1055]: ntpd exiting on signal 15 yeri@gplugD ~ $ ping google.be ping: unknown host google.be yeri@gplugD ~ $ ping 85.12.6.171 socket: Permission denied yeri@gplugD ~ $ ssh localhost socket: Permission denied ssh: connect to host localhost port 22: Permission denied yeri@gplugD ~ $ su Password: gplugD ~ # ping 85.12.6.171 -c 1 PING 85.12.6.171 (85.12.6.171) 56(84) bytes of data. 64 bytes from 85.12.6.171: icmp_req=1 ttl=58 time=37.1 ms --- 85.12.6.171 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 37.145/37.145/37.145/0.000 ms 

由于这是一个Guruplug显示器,它不会运行默认的Debian内核。 然而,我无法find关于此的更多信息。 过去我曾经和一个普通的Guruplug做过一样的事情,并且没有任何问题地升级。

 gplugD ~ # uname -a Linux gplugD 2.6.29 #1 Wed Feb 16 17:59:04 IST 2011 armv5tejl GNU/Linux gplugD ~ # df -h Filesystem Size Used Avail Use% Mounted on /dev/mmcblk0p2 3.6G 917M 2.6G 27% / tmpfs 252M 0 252M 0% /lib/init/rw udev 10M 72K 10M 1% /dev tmpfs 252M 0 252M 0% /dev/shm gplugD ~ # free -m total used free shared buffers cached Mem: 503 159 344 0 8 100 -/+ buffers/cache: 49 454 Swap: 0 0 0 gplugD ~ # cat /etc/debian_version 6.0.1 

dhcp也拒绝自动给eth0一个IP,除非我以root身份运行它。 Sshd似乎工作正常(我可以从另一台机器连接到它)。

另一方面,我注意到我不能以root身份ping本地主机。 “lo”也不会自动启动。

 gplugD ~ # ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. ^C --- localhost ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3005ms 

然而,

 ifconfig lo 127.0.0.1 up 

解决了“本地主机”的问题。

编辑:ping strace: http : //pastebin.com/Dpm7i64G

任何想法为什么只有root可以访问与tcp / ip / networking有关的所有东西?

对了,find了解决办法;

 gplugD ~ # groupadd -g 3003 aid_inet gplugD ~ # usermod -G aid_inet yeri 

内核硬编码:CONFIG_ANDROID_PARANOID_NETWORK

编辑:在Nexus 7上使用的Android Jelly Bean(4.1)上,我不得不使用组名inet而不是aid_inet ,因此:

 $ groupadd -g 3004 inet # I used 3004 instead of 3003 because 3003 was already taken by aid_inet $ usermod -G inet <username> 

一些来自Android内核的代码片段与此相关: http : //blog.appuarium.com/2011/06/23/how-android-enforces-android-permission-internet/

我已经看到了这个问题,我所能提供的只是联系内核的开发人员询问升级过程中的已知问题。 我猜想这是一个标准的挤压升级不能很好地玩的私有问题。

对不起,我不能提供更多。