一步步完善rootfs:3.使用者登入
阿新 • • 發佈:2018-11-08
使用者登入
一、進入終端
- 免登入方式:先執行 profile 檔案,再執行 /bin/sh ,然後就會出現命令列
::respawn:-/bin/sh
- 登入方式:使用 /bin/login 或者 /sbin/getty 來代替 /bin/sh
::respawn:/bin/login
::respawn:/sbin/getty -L tty 115200 vt100
最常見的用於登入的程式是/sbin/getty,在busybox中/sbin/getty和/bin/login差別不大。
二、修改inittab
下面使用getty方式登入,首先要知道系統中的tty是哪一個裝置檔案,我的串列埠裝置檔案有以下四個。注意不同的系統由於串列埠驅動不同,所以裝置檔名會不一樣。
查詢控制檯在使用哪一個串列埠裝置檔案的方法是:先找到類似的四五個比較像的串列埠裝置名,然後依次執行
echo hi > /dev/s3c2410_serialx
,控制檯有響應的串列埠裝置就是我要找的那個裝置。inittab檔案登入部分修改為:
#::askfirst:-/bin/sh
::respawn:/sbin/getty -L s3c2410_serial2 115200 vt100
重新啟動系統,發現已經出現了登入提示,但是這裡是登入不進去的,因為系統中還沒有為使用者設定密碼。
三、新增passwd和shadow檔案
passwd檔案中儲存使用者的密碼設定,shadow檔案儲存的是加密後的檔案,採用密文儲存。這兩個檔案可以從ubuntu系統中複製貼上過來,做一些修改就可以用了。
[email protected]:/etc# cp passwd shadow /root/rootfs_zht/rootfs/etc/
修改passwd檔案為以下內容,重點是:第一個/表示當前使用者的主目錄,登入之後會預設切換到此目錄,因為目前rootfs下還沒有root目錄,所以需要手動建立root目錄;/bin/sh表示當前使用者的預設指令碼,登入之後載入此指令碼。
root:x:0:0:root:/root:/bin/sh
改到這裡就可以進行登入了,root使用者的密碼和ubuntu中的一樣。
四、重置密碼
開啟shadow檔案,將第一行以下不用的東西刪掉,保留第一行,再把第一個冒號和第二個冒號之間的內容(即為加密之後的密碼)刪掉,剩下了如下所示內容:
root::14610:0:99999:7:::
這個時候再使用root使用者登入時,不需要輸入密碼就可以進入系統,使用passwd命令為root使用者重新設定密碼,到這裡密碼重置就完成了。
參考資料: 朱老師嵌入式Linux