下指令的方式新增使用者

前提

這篇是參與這裡的討論,重新整理而來。

站在管理者的角度,假設要新增一位使用者「cooker」。

新增使用者

執行以下的指令,就可以新增一位使用者叫做「cooker」。過程中會詢問,要為「cooker」設定的密碼。和一些額外的資訊。請依照提示執行。

$ sudo adduser cooker

更改密碼

$ sudo passwd cooker

參考文章

套件探索

探索「adduser」

查詢「adduser」屬於哪個套件

$ dpkg -S adduser

看起來是屬於「adduser」這個套件。

準備等會要工作的資料夾

$ mkdir ~/tmp/adduser -p
$ cd ~/tmp/adduser
$ mkdir download source

下載「adduser」這個「package」,並解開。

$ cd download
$ apt-get download adduser
$ dpkg -x adduser_3.113+nmu3ubuntu3_all.deb adduser
$ ar xf adduser_3.113+nmu3ubuntu3_all.deb
$ dpkg -e adduser_3.113+nmu3ubuntu3_all.deb

觀看「etc」底下有什麼檔。

$ ls /adduser/etc

發現只有「deluser.conf」,沒有「adduser.conf」。

所以觀看「postinst」。

$ vi DEBIAN/postinst

原來是安裝後,會根據「/etc/adduser.conf」是否存在,才會複製一份到「/etc」底下。

if [ ! -e "/etc/adduser.conf" ]; then
    cp /usr/share/adduser/adduser.conf /etc/adduser.conf
fi

不過「DEBIAN/postinst」後面還有,尚未弄懂。

觀看「usr/sbin」有哪些執行檔。

ls adduser/usr/sbin -l

共有四個檔。 「adduser」和「deluser」。 「addgroup」symbolic link「adduser」。 「delgroup」symbolic link「deluser」。

$ vi adduser/usr/sbin/adduser
$ vi adduser/usr/sbin/deluser

發現是「perl」寫的。

查看有哪些「manual」可以查閱。

$ ls adduser/usr/share/man/man5
$ ls adduser/usr/share/man/man8

所以可以查閱的manual如下。

man 5

man 8

額外的參考

ls adduser/usr/share/doc/adduser/examples/

下載「adduser」這個「source package」,並解開。

cd ~/tmp/adduser/source
apt-get source adduser

觀看「control」檔。

$ vi adduser-3.113+nmu3ubuntu3/debian/control

探索「useradd」

查看「useradd」屬於哪個套件。

$ dpkg -S useradd

看起來是屬於「passwd」這個套件。

準備等會要工作的資料夾

$ mkdir ~/tmp/passwd -p
$ cd ~/tmp/passwd
$ mkdir download source

下載「passwd」這個「package」,並解開。

$ cd download
$ apt-get download passwd
$ dpkg -x passwd_1%3a4.1.5.1-1ubuntu9_amd64.deb passwd
$ ar xf passwd_1%3a4.1.5.1-1ubuntu9_amd64.deb
$ dpkg -e passwd_1%3a4.1.5.1-1ubuntu9_amd64.deb

下載「passwd」的「source package」,並解開。

cd ~/tmp/passwd/source
apt-get source passwd

「passwd」的「source package」是「shadow」。

觀看「control」檔。

$ vi shadow-4.1.5.1/debian/control

回到「download」資料夾。

$ cd ~/tmp/passwd/download

查看有哪些「manual」可以查閱。

$ ls passwd/usr/share/man/man1 -1
$ ls passwd/usr/share/man/man5 -1
$ ls passwd/usr/share/man/man8 -1

man 1

man 5

man 8