我有一个FriendlyARM Mini2440 ARM板,我使用multistrap为它创建了一个基本的Debian6.0根fs。内核是来自FriendlyARM网站的官方linux-2.6.32.2树。一切都很好,只有root才能登录。其他用户也成功登录,但立即被注销,它永远无法获得shell提示。我找不到原因。
可能是串行终端设备权限?/dev/s3c2410_serial0是串行终端设备文件,属于root:tty,拥有600权限,但即使使用udev规则也不能修改该权限。
有什么想法吗?
编辑:这是/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
ntp:x:101:102::/home/ntp:/bin/false
dnsmasq:x:102:65534:dnsmasq,,,:/var/lib/misc:/bin/false
stunnel4:x:103:105::/var/run/stunnel4:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
op:x:1000:1000:,,,:/home/op:/bin/bash
op2:x:1001:1001:,,,:/home/op2:/bin/bashop和op2是我通过adduser命令创建的用户帐户。
我还将这些用户添加到root、tty、dialout、users和ssh组中,但仍然没有成功。
从ssh和串行终端,op用户成功地登录,/etc/motd被打印出来,“最后登录”行被打印出来,然后它干净地退出。
解决(某种程度)
抱歉我找到了。我将vm.mmap_min_addr内核变量从默认值4096更改为65536。我在某个地方读到,从安全的角度来看,这是一个好主意,但我不知道它会破坏某些进程。
内核文档说(仅供参考):
mmap_min_addr
此文件指示用户进程将被限制的地址空间的大小。由于内核null取消引用错误可能会意外地基于内存前几页中的信息进行操作,因此不应该允许进程向它们写入。默认情况下,此值设置为0,安全模块将不执行任何保护。将此值设置为64k将允许绝大多数应用程序正确工作,并为未来潜在的内核错误提供深入的防御。
但我仍然不知道为什么其他所有的工作,除了非根用户登录。
发布于 2012-09-23 08:31:20
你查过其他帐户的外壳了吗?Grep在/etc/passwd中使用您的用户名,并检查最后一个字段中是否有完整的shell路径。如果您想要更改,请尝试使用chsh命令。
您是否也可以尝试从root登录,例如:
# su - youruser -c /bin/bash发布于 2012-09-23 09:20:03
有/etc/nologin吗?如果是这样,只需删除它。此文件防止非根用户登录。
https://stackoverflow.com/questions/12550779
复制相似问题