天天看點

useradd建立使用者和權限配置設定

場景:在搭建Ftp伺服器時候,需要建立ftp使用者,其實建立的ftp使用者和Linux中root建立的使用者一樣,隻是需要了解建立使用者時候的相關規則。

1 解決建立使用者缺少配置檔案

1. useradd 添加使用者或更新新建立使用者的預設資訊

該指令的各選項含義如下:

代碼:

# useradd -d /home/test -m test;

然後給test設定密碼。

# passwd test;

useradd建立使用者和權限配置設定

 ps:注意上述test目錄中已經存在一些使用者預設的配置檔案。

一般情況下是:

useradd建立使用者和權限配置設定

 但是這樣看起來不是很簡潔,一個簡潔的指令是

useradd建立使用者和權限配置設定

按部就班的辦法是先删除使用者在删除目錄:

今天建立了一個MQM的使用者 ,

終端中顯示 -bash-4.1$而不是 [mqm@locahost~]

百度了下。據說是因為缺少配置檔案,是以将缺少的配置檔案複制到使用者的家目錄既可以。

将/etc/skel中的檔案全部複制到/var/mqm/之後,問題就得到了解決。 操作如下

useradd建立使用者和權限配置設定

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、使用指令修改

繼續閱讀