場景:在搭建Ftp伺服器時候,需要建立ftp使用者,其實建立的ftp使用者和Linux中root建立的使用者一樣,隻是需要了解建立使用者時候的相關規則。
1 解決建立使用者缺少配置檔案
1. useradd 添加使用者或更新新建立使用者的預設資訊
該指令的各選項含義如下:
代碼:
# useradd -d /home/test -m test;
然後給test設定密碼。
# passwd test;

ps:注意上述test目錄中已經存在一些使用者預設的配置檔案。
一般情況下是:
但是這樣看起來不是很簡潔,一個簡潔的指令是
按部就班的辦法是先删除使用者在删除目錄:
今天建立了一個MQM的使用者 ,
終端中顯示 -bash-4.1$而不是 [mqm@locahost~]
百度了下。據說是因為缺少配置檔案,是以将缺少的配置檔案複制到使用者的家目錄既可以。
将/etc/skel中的檔案全部複制到/var/mqm/之後,問題就得到了解決。 操作如下
linux中以 .開頭的檔案預設隐藏。在指令中加入-a可以對隐藏檔案進行操作。
如果想将一個檔案隐藏,隻要在檔案名之前加上“ . ”即可
2 使用者Shell控制
linux adduser-s /sbin/nologin和/bin/false的差別
如果想要用false在禁止login的同時允許ftp,則必須在/etc/shells裡增加一行/bin/false。
知道了Linux使用者管理最重要的兩個檔案就是/etc/passwd和/etc/shadow這兩個檔案。其中/etc/passwd是用來存儲登陸使用者資訊的,它的基本格式如下:
由上面的格式可以看出,每一行代表一個使用者的資訊,一共包括7個字段的資訊,每個字段的資訊用冒号隔開。這7個字段分别代表:
1. 賬号名稱:即登陸時的使用者名
2. 密碼:早期UNIX系統的密碼是放在這個檔案中的,但因為這個檔案的特性是所有程式都能夠讀取,是以,這樣很容易造成資料被竊取,是以後來就将這個字段的密碼資料改放到/etc/shadow中了
3. UID:使用者ID,每個賬号名稱對應一個UID,通常UID=0表示root管理者
4. GID:組ID,與/etc/group有關,/etc/group與/etc/passwd差不多,是用來規範使用者組資訊的
5. 使用者資訊說明欄: 用來解釋這個賬号是幹什麼的
6. 家目錄:home目錄,即使用者登陸以後跳轉到的目錄,以root使用者為例,/root是它的家目錄,是以root使用者登陸以後就跳轉到/root目錄這裡
7. Shell:使用者使用的shell,通常使用/bin/bash這個shell,這也就是為什麼登陸Linux時預設的shell是bash的原因,就是在這裡設定的,如果要想更改登陸後使用的shell,可以在這裡修改。
另外一個很重要shell可以用來替代讓賬号無法登陸shell的指令,那就是/sbin/nologin,此時該使用者隻能使用ftp登入。
當我看到這裡的時候,我就去登陸我們實驗室的伺服器,打開/etc/passwd這個檔案,裡面果然有很多的類似上面格式的使用者賬号資訊。由于我們實驗室伺服器開放了ftp服務,而我正好有一個ftp的賬号,我看到我的賬号資訊是這樣的
通過上面的學習,我覺得它的意思大概是這樣的,使用者名是lxb,x表示密碼經過加密放到/etc/shadow檔案中了,UID是530,GID是525,通路的目錄是/opt/ftp,我看了一下,這個目錄下的内容正好是我登陸ftp後所看到的,至于最後一個/sbin/nologin,應該是登入時候使用的shell,但是它為什麼是nologin呢,難道不讓我登陸嗎?
于是我用root權限登陸到裡面,把後面的/sbin/nologin改成了/bin/bash,重新用ssh進行登陸,真的登陸進去了,而且登陸後的目錄正好是/opt/ftp。
修改使用者的shell類型有兩種方式:
1、編輯/etc/passwd 檔案
找到要修改的使用者,直接進行編輯即可。
2、使用指令修改