1

私は FriendlyARM Mini2440 ARM ボードを持っており、multistrapそれ用にベースの debian 6.0 ルート fs を作成していました。カーネルは、FriendlyARM Web サイトの公式の linux-2.6.32.2 ツリーです。ルートのみがログインできることを除いて、すべてがうまく機能します。他のユーザーも正常にログインしますが、すぐにログアウトされ、シェルプロンプトにはなりません。理由がわかりません。

おそらくシリアル端末デバイスのアクセス許可ですか?/dev/s3c2410_serial0これはシリアル端末デバイス ファイルであり、600 パーミッションに属し、root:tty600 パーミッションを持っていますが、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

これらのユーザーをrootttydialoutusersおよびsshグループにも追加しましたが、それでもうまくいきません。

ssh とシリアル ターミナルの両方から、opユーザーが正常にログインし/etc/motd、「Last login」行が出力され、正常に終了します。

解決済み(一種)

すみません、見つけました。カーネル変数をデフォルト値の 4096 から 65536 に変更vm.mmap_min_addrしました。これはセキュリティの観点からは良い考えだとどこかで読みましたが、一部のプロセスが壊れる可能性があるとは知りませんでした。

カーネルのドキュメントには次のように書かれています(参考までに):

mmap_min_addr

このファイルは、ユーザー プロセスが mmaping から制限されるアドレス空間の量を示します。カーネル null デリファレンス バグはメモリ ユーザー空間プロセスの最初の数ページの情報に基づいて誤って動作する可能性があるため、それらへの書き込みは許可されるべきではありません。デフォルトでは、この値は 0 に設定されており、セキュリティ モジュールによる保護は適用されません。この値を 64k などに設定すると、大多数のアプリケーションが正しく動作し、将来の潜在的なカーネル バグに対する多層防御が提供されます。

しかし、ルート以外のユーザーのログインを除いて、他のすべてが機能した理由はまだわかりません。

4

2 に答える 2

1

あり/etc/nologinますか?もしそうなら、単にそれを削除します。このファイルは、root以外のユーザーがログインするのを防ぎます。

于 2012-09-23T09:20:03.643 に答える
1

他のアカウントに使用されているシェルを確認しましたか? ユーザー名をgrepして/etc/passwd、最後のフィールドにシェルのフルパスがあるかどうかを確認してください。変更したい場合は、chshコマンドを試してください。

たとえば、次のように入力して、ルートからログインすることもできますか。

# su - youruser -c /bin/bash
于 2012-09-23T08:31:20.880 に答える