Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 只有root用户才能登录。可能的原因?_Linux_Embedded_Arm - Fatal编程技术网

Linux 只有root用户才能登录。可能的原因?

Linux 只有root用户才能登录。可能的原因?,linux,embedded,arm,Linux,Embedded,Arm,我有一个FriendlyARM Mini2440 ARM板,我使用multistrap为它创建了一个基本的debian 6.0根fs。内核是FriendlyARM网站上的官方linux-2.6.32.2树。一切都很好,除了只有root用户可以登录。其他用户也成功登录,但会立即注销,并且不会出现shell提示。我不知道为什么 可能是串行终端设备权限/dev/s3c2410_serial0是串行终端设备文件,属于root:tty,拥有600权限,但即使使用udev规则也不能修改权限 有什么想法吗 编

我有一个FriendlyARM Mini2440 ARM板,我使用
multistrap
为它创建了一个基本的debian 6.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/bash
op
op2
是我通过
adduser
命令创建的用户帐户

我还将这些用户添加到
root
tty
dialout
users
ssh
组,但仍然没有成功

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

已解决(类)

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

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

mmap\u min\u addr

此文件指示用户进程将使用的地址空间量 禁止吸烟。由于内核空解引用错误可能 根据前两页中的信息进行操作 不允许对内存用户空间进程进行写入。通过 默认情况下,此值设置为0,并且服务器不会强制实施任何保护 安全模块。将此值设置为64k将允许 绝大多数应用程序都无法正确工作并提供纵深防御 针对未来潜在的内核错误


但是我仍然不知道为什么除了非root用户登录之外,其他一切都能正常工作。

你检查过其他帐户使用的shell了吗?在
/etc/passwd
中Grep您的用户名,并检查最后一个字段中是否有shell的完整路径。 如果要更改,请尝试使用
chsh
命令

您是否也可以尝试通过键入以下内容从root登录:

# su - youruser -c /bin/bash

是否有
/etc/nologin
?如果是,只需删除它。此文件阻止非root用户登录。

什么是
/etc/passwd
外观?用户的shell是否存在?我在armel安装中也遇到了这个问题:在Debian 6中,mmap_min_addr默认设置为4096,这使得我所有的非根进程立即崩溃。当然,结果是登录后立即再次注销(即使是通过“su”启动)。将mmap_min_addr设置为0(“关闭”),为我解决了这个问题。我尝试了这个命令。它立即返回到我的根提示符。否,没有
/etc/nologin