用戶信息文件: /etc/passwd
密碼文件: /etc/shadow
用戶組文件: /etc/group
用戶組密碼文件: /etc/gshadow
用戶配置文件
/etc/login.defs
/etc/default/useradd
新用戶信息文件 /etc/skel
登錄信息 /etc/motd
0.linux中用戶與組
-
1.用戶
(1)超級用戶 (root,UID為0) linux中只要是UID為0,linux就認為是超級用戶。
(2)普通用戶:(UID 500-6000 ,這個大小可以在配置文件更改)
(3)偽用戶(UID 1-499) linux自帶的一些用戶
- 偽用戶與系統和程序服務相關
例如:bin,dadaemon,shutdown,halt等,任何linux系統都默認有這些用戶、
mail,news,games,apache,ftp,mysql以及sshd,與linux系統的進程相關。
- 位用戶通常不需要或無法登陸系統
- 可以沒有宿主目錄
-
2.組:
(1)每個用戶都至少屬於一個組
(2)每個用戶組可以包含多個用戶
(3)同一用戶組的用戶享有該組共有的權限
1.用戶信息文件: /etc/passwd簡介:
里面的一行內容代表一個用戶,因此想查看當前有幾個用戶可以:
[root@VM_0_12_centos ~]# wc -l /etc/passwd 30 /etc/passwd
里面的一行內容簡介:
root:x:0:0:root:/root:/bin/bash
用戶名:密碼位:UID:GID:描述信息:
字段 | 含義 |
用戶名 | y用戶登錄系統時使用的用戶名 |
密碼 | 密碼位 |
UID | 用戶標識號 |
GID | 缺省組標識號 |
注釋性描述 | 例如存放用戶全名信息等 |
宿主目錄 | 用戶登錄系統后的默認目錄,如果創建用戶未指定,會在/home下創建於與用戶同名的目錄 |
命令解釋器 | 用戶使用的shell,默認為bash |
- 保留密碼位的原因:
linux一開始是將密碼寫到/etc/passwd中,然后再寫到/etc/shadow中。(這些操作是linux系統在我們添加用戶的時候幫我們做的先將密碼寫到passwd然后將密碼移到shadow)
[root@VM_0_12_centos ~]# grep qlq /etc/passwd #在/etc/passwd中查看qlq相關信息是密碼位 qlq:x:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# pwunconv #將密碼回寫到/etc/passwd [root@VM_0_12_centos ~]# grep qlq /etc/passwd #再次在/etc/passwd查看qlq相關信息是加密密碼 qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# grep qlq /etc/shadow #在/etc/shadow查看qlq信息發現shadow文件不存在 grep: /etc/shadow: No such file or directory [root@VM_0_12_centos ~]# pwconv #將密碼從/etc/passwd寫到/etc/shadow中 [root@VM_0_12_centos ~]# grep qlq /etc/passwd #查看/etc/passwd又變成密碼位 qlq:x:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# grep qlq /etc/shadow #查看/etc/shadow信息 qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:17620:0:99999:7:::
- 手工創建用戶
所以我們添加用戶的時候我們可以用vim手動添加一個到/etc/passwd,密碼可以不寫,然后在shadow中也添加此用戶信息,密碼不寫,用戶登錄之后再寫密碼。(模仿之前的用戶填寫,shell腳本不能寫錯,否則不能登錄)。然后我們還需要將/etc/skel/目錄下的登錄信息復制到/home/新建用戶 文件夾下面。因為我們使用useradd添加用戶的時候會在/home目錄下創建一個與用戶同名的目錄,且將/etc/skel/目錄下的登錄信息復制到用戶宿主目錄。
最后登錄即可:
username:在passwd驗證
password:在shadow驗證
2.密碼文件: /etc/shadow簡介
qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:17620:0:99999:7:::
用戶名:加密密碼:最后一次修改密碼時間:最小時間間隔:最大時間間隔:警告時間:賬號閑置時間:失效時間:標志
如果加密密碼刪除,只需要用戶名就可以登錄,所以如果忘記密碼可以刪除這個文件中對應用戶密碼,登錄之后重新設置密碼即可(雖然是只讀文件,root是超級管理員,可以用:wq!強行保存)
字段 | 含義 |
用戶名 | 用戶登錄的賬號 |
密碼 | 加密密碼 |
最后一次修改時間 | 距離上次修改密碼時間(距離1970年1月1日) |
最小時間間隔 | 兩次密碼修改之間的最小時間間隔天數 |
最大時間間隔 | 密碼保持有效的最多天數 |
警告時間 | 從系統開始警告到密碼失效的天數 |
賬號閑置時間 | 賬號閑置時間(0表示天天登錄) |
失效時間 | 密碼失效的絕對天數(失效了幾天了) |
標志 | 一般不用 |
3. 用戶缺省的配置文件
- /etc/login.defs
上面的默認值都在/etc/login.defs中配置,因此可以修改此配置文件:
[root@VM_0_12_centos skel]# cat /etc/login.defs # # Please note that the parameters in this configuration file control the # behavior of the tools from the shadow-utils component. None of these # tools uses the PAM mechanism, and the utilities that use PAM (such as the # passwd command) should therefore be configured elsewhere. Refer to # /etc/pam.d/system-auth for more information. # # *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence. # QMAIL_DIR is for Qmail # #QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #MAIL_FILE .mail # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 #密碼最短位數(用root設置的時候不用遵循規定) PASS_WARN_AGE 7 # # Min/max values for automatic uid selection in useradd # UID_MIN 1000 UID_MAX 60000 # System accounts SYS_UID_MIN 201 SYS_UID_MAX 999 # # Min/max values for automatic gid selection in groupadd # GID_MIN 1000 GID_MAX 60000 # System accounts SYS_GID_MIN 201 SYS_GID_MAX 999 # # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local # # If useradd should create home directories for users by default # On RH systems, we do. This option is overridden with the -m flag on # useradd command line. # CREATE_HOME yes #創建宿主目錄 # The permission mask is initialized to this value. If not specified, # the permission mask will be initialized to 022. UMASK 077 #默認權限 # This enables userdel to remove user groups if no members exist. # USERGROUPS_ENAB yes # Use SHA512 to encrypt password. ENCRYPT_METHOD MD5 #加密方法
- 另外還有一個默認的配置文件存在/etc/default/useradd
[root@VM_0_12_centos skel]# cat /etc/default/useradd # useradd defaults file GROUP=100 #組ID HOME=/home #默認宿主目錄創建在那個目錄 INACTIVE=-1 #賬號是否鎖定,-1表示未鎖定,0或其他表示鎖定 EXPIRE= #賬號失效時間 SHELL=/bin/bash #缺省使用的shell腳本 SKEL=/etc/skel #默認登錄信息存放位置 CREATE_MAIL_SPOOL=yes #保存郵件信息的文件
如果想查看系統的shell腳本:
[root@VM_0_12_centos skel]# cat /etc/shells #查看系統的shell腳本 /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
4.登錄信息文件 /etc/motd /etc/issure
-
- 1./etc/issure 登錄輸入用戶名和密碼時候的提示符
[root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/issue
\S
Kernel \r on an \m
這個配置文件是在登錄的時候會出現的配置文件:
最好不要暴露我們的liux版本,所以我們可以修改/etc/issure,例如:
(1)備份且修改issure文件:
[root@iz2ze46xi6pjjj69ailg9lz ~]# cp /etc/issue /etc/issue.bak20180330 [root@iz2ze46xi6pjjj69ailg9lz ~]# vim /etc/issue [root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/issue please enter username and password!:
(2)重新登錄查看提示符:
-
- /etc/motd 登錄成功之后的提示符(可以替代wall發廣播與替代mail發郵件)
[root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/motd
Welcome to Alibaba Cloud Elastic Compute Service !
修改登錄成功之后的提示信息:
(1)備份且修改/etc/motd文件
[root@iz2ze46xi6pjjj69ailg9lz ~]# cp /etc/motd /etc/motd.bak20180330 [root@iz2ze46xi6pjjj69ailg9lz ~]# vim /etc/motd [root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/motd Welcome to China!This is your father!
(2)登錄查看提示信息: