1

我有一个 FriendlyARM Mini2440 ARM 板,我曾经multistrap为它创建一个基本的 debian 6.0 root 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/bash

op并且op2是我通过adduser命令创建的用户帐户。

我还将这些用户添加到roottty、和组dialout,但仍然没有运气。usersssh

从 ssh 和串行终端,op用户成功登录,/etc/motd被打印,“Last login”行被打印,然后它干净地退出。

已解决(有点)

对不起,我找到了。我已将vm.mmap_min_addr内核变量从默认值 4096 更改为 65536。我在某处读到从安全角度来看这是一个好主意,但不知道它会破坏某些进程。

内核文档说(仅供参考):

mmap_min_addr

此文件指示用户进程将被限制映射的地址空间量。由于内核空引用错误可能会根据内存前几页中的信息意外操作,因此不应允许用户空间进程写入它们。默认情况下,此值设置为 0,安全模块不会强制执行任何保护。将此值设置为 64k 之类的值将允许绝大多数应用程序正常工作,并针对未来潜在的内核错误提供深度防御。

但我仍然不确定为什么除了非 root 用户登录之外,其他一切都有效。

4

2 回答 2

1

您是否检查过用于其他帐户的外壳?输入您的用户名/etc/passwd并检查最后一个字段中是否有 shell 的完整路径。如果你想改变,你想试试这个chsh命令。

您是否也可以尝试通过键入例如从 root 登录:

# su - youruser -c /bin/bash
于 2012-09-23T08:31:20.880 回答
1

/etc/nologin吗?如果是这样,只需将其删除。此文件可防止非 root 用户登录。

于 2012-09-23T09:20:03.643 回答