請問有關於 Debian 密碼檔轉成 FreeBSD 的密碼檔

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

請問有關於 Debian 密碼檔轉成 FreeBSD 的密碼檔

文章giive » 週六 11月 12, 2005 12:17 pm

實驗室有一台本來跑 Debian 的 Server
上面的Service要轉成 FreeBSD
轉換的第一天就發現一個大問題

密碼檔不相同 :-?

Debian是用 /etc/shadow ,但是 FreeBSD 是用 /etc/master.passwd

兩個檔案的內容不一樣,請問一下有沒有程式可以互轉的?
giive
可愛的小學生
可愛的小學生
 
文章: 54
註冊時間: 週一 3月 07, 2005 5:09 pm

文章molopoly » 週六 11月 12, 2005 4:51 pm

工具:
http://www.enderunix.org/vpwd2sql/
相關的討論:
http://bbs.ee.ntu.edu.tw/cgi-bin/bbs2ht ... 6c702e2e2e
http://lists.freebsd.org/pipermail/free ... 01780.html
http://lists.freebsd.org/pipermail/free ... 14014.html
http://lists.debian.org/debian-bsd/2002 ... 00017.html
不過我剛剛看了一下,(雖然看不太懂)
發現FreeBSD的帳號、密碼的相關檔案不只有master.passwd,
也許你也要看看要不要改其他檔案。
ps.我是用passwd convert master.passwd去問google大神的。
molopoly
可愛的小學生
可愛的小學生
 
文章: 43
註冊時間: 週二 10月 18, 2005 1:29 am
來自: 台灣共和國

文章giive » 週日 11月 13, 2005 9:00 am

感謝您的回應,我稍微作了一下survey,寫下這篇文章
這篇文章還在發展中,有些東西我找到解答會加上去
也希望大家如果知道不吝給予指教

根據 openbsd.org 寫的這篇文章,以及顏國雄先生這篇文章
將Linux style passwd轉換成 BSD style的passwd
一共需要三個步驟
    1. 確定你的linux passwd是不是shadow好的,如果shadow過,必須先轉成 unshadow
    2. 將你的linux檔案裡面第四個欄位加入 ::0:0 這個字
    3. 建立新的 passwd db


1. 關於步驟一,根據 /etc/shadow 這個檔案名字,Debian 應該是 shadow過的檔案,
所以必須先將他轉換成 unshadow 過的 /etc/passwd

使用方式 :
代碼: 選擇全部
$ pwunconv

你會發現 /etc/shadow 這個檔案不見了
而 /etc/passwd 內容變多了,那是表示 pwunconv 把
/etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow這四個檔案 marge 起來

2. 當我仔細觀察兩者個檔案,還有man master.passwd , man shadow,發現到其實兩者最大的不同除了要加上 ::0:0 的部份以外,排列方式也略有不同

BSD裡面的 /etc/master.passwd 裡面 user_a這個使用者這一欄
代碼: 選擇全部
user_a:$1$亂碼:1001:1001::0:0:User &:/home/user_a:/bin/sh


linux 裡面 /etc/shadow 裡面 有關user_a這一欄
代碼: 選擇全部
user_a:$1$亂碼:12928:0:99999:7:::


man master.passwd ( BSD style passwd )
代碼: 選擇全部
           name      User's login name.
           password  User's encrypted password.
           uid       User's id.
           gid       User's login group id.
           class     User's login class.
           change    Password change time.
           expire    Account expiration time.
           gecos     General information about the user.
           home_dir  User's home directory.
           shell     User's login shell.         


man shadow ( Linux Style passwd )
代碼: 選擇全部
            Login name
            Encrypted password
            Days since Jan 1, 1970 that password was last changed
            Days before password may be changed
            Days after which password must be changed
            Days before password is to expire that user is warned
            Days after password expires that account is disabled
            Days since Jan 1, 1970 that account is disabled
            A reserved field


所以似乎就連欄位內容,順序都略有不同
所以我對openbsd.org這篇文章說直接在shadow裡面加上某些欄位就可以OK,感覺到不太可能,保持保留的態度


3. 建立新的 passwd db,就只需要使用下面的指令即可
代碼: 選擇全部
 pwd_mkdb -p /etc/master.passwd
最後由 giive 於 週日 11月 13, 2005 3:37 pm 編輯,總共編輯了 4 次。
giive
可愛的小學生
可愛的小學生
 
文章: 54
註冊時間: 週一 3月 07, 2005 5:09 pm

文章molopoly » 週日 11月 13, 2005 11:42 am

giive 寫:1. 關於步驟一,根據 /etc/shadow 這個檔案名字,Debian 應該是 shadow過的檔案,
所以我還需要去找將 shadow過的檔案 unshadow的辦法 ( 未完成)
請參考這個
http://linux.vbird.org/linux_basic/0410 ... p#pwunconv
用pwconv和pwunconv就可以處理/etc/passwd是否用shadow來加密的問題
molopoly
可愛的小學生
可愛的小學生
 
文章: 43
註冊時間: 週二 10月 18, 2005 1:29 am
來自: 台灣共和國

文章giive » 週日 11月 13, 2005 3:13 pm

不用寫了8-)
這篇說明了一切 :-P
giive
可愛的小學生
可愛的小學生
 
文章: 54
註冊時間: 週一 3月 07, 2005 5:09 pm


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron