Linux是个多用户多任务的分时操做系统,全部一个要使用系统资源的用户都必须先向系统管理员申请一个帐号,而后以这个帐号的身份进入系统。用户的帐号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另外一方面也能帮助用户组织文件,并为用户提供安全性保护。每一个用户帐号都拥有一个唯一的用户名和用户口令。用户在登陆时键入正确的用户名和口令后,才能进入系统和本身的主目录。vim
实现用户帐号的管理,要完成的工做主要有以下几个方面:安全
a.用户帐号的添加、删除和修改。bash
b.用户口令的管理。服务器
c.用户组的管理。网络
基于帐户身份对资源访问进行控制:ide
- 帐户类别: 用户帐户,组帐号ui
- 识别方式: UID ,GIDthis
用户帐号:加密
- 超级帐户root ,系统用户,普通用户spa
组帐号 :
- 基本组 (私有组)
- 附加组 (公共组)
帐号数据的存放
- 存储在本机磁盘中 ----- 本地帐号
- 存储在网络上专门的服务器 ----- 网络帐号
本地帐号的数据文件:
- /etc/default/useradd # 默认配置文件、用户添加的设置
- /etc/login.defs # 默认配置文件,密码有效期控制
- /etc/passwd # 保存用户帐号的基本信息
- /etc/shadow # 保存用户密码字串/有效期等信息
- /etc/group # 保存组帐号的基本信息
- /etc/gshadow # 保存组密码字串/有效期等信息
各个配置文件解说以下:
[root@localhost ~]# cat /etc/default/useradd
1) # useradd defaults file
2) GROUP=100
3) HOME=/home
4) INACTIVE=-1
5) EXPIRE=
6) SHELL=/bin/bash
7) SKEL=/etc/skel
8) CREATE_MAIL_SPOOL=yes
解释:
1) useradd默认文件
2) 表示可建立普通组
3) 用户的家目录建在/home中;用户家目录的默认建立地
4) 是否启用账号过时停权,-1表示不启用;宽限天数,0及如下数皆为无效数字
5) 账号终止日期,不设置表示不启用;账号失效日期(如:20081212)
6) 所用SHELL的类型;登陆后执行的程序
7) 用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当咱们用useradd 添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;
8) 是否建立用户邮件缓冲,yes表示建立
login.defs是设置用户账号限制的文件,在这里咱们可配置密码的最大过时天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。若是/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
[root@localhost ~]# cat /etc/login.defs
# *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 5 # 密码最小长度,对于root无效
PASS_WARN_AGE 7 # 密码过时前多少天开始提示
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500 # 用户ID的最小值
UID_MAX 60000 # 用户ID的最大值
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500 # 组ID的最小值
GID_MAX 60000 # 组ID的最大值
#
# 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 # 使用useradd的时候建立用户目录
# 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 # 使用 userdel 删除时,是否会删除初始群组
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB yes # 用MD5加密密码
ENCRYPT_METHOD MD5
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
解释:每一个用户记录一行,以":"分割为7个字段
字段1 :用户帐号的名称
字段2 :密码字串或占位符“x”
字段3 :用户帐号的UID
字段4 :所属基本组的IGD号
字段5 :用户全名
字段6 :宿主目录
字段7 :登陆Shell程序的路径
[root@localhost ~]# head -2 /etc/shadow
root:$1$Rlzv9ejD$9kiOFhTnlHNwOzbR.OpvA0:16242:0:99999:7:::
bin:*:16242:0:99999:7:::
解释:每一个用户记录一行,以":"分割为9个字段
字段1:用户帐号的名称
字段2:加密后的密码字符串
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认为“0”天
字段5:密码的最长有效天数,默认99999天
字段6:密码过时前的警告天数,默认7天
字段7:密码过时后多少天禁用此用户帐号
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用
[root@localhost ~]# head -2 /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
解释:每一个用户记录一行,以":"分割为4个字段
字段1:用户组名称;
字段2:用户组密码;
字段3:GID
字段4:用户列表,每一个用户之间用,号分割;本字段能够为空;若是字段为空表示用户组为GID的用户名
[root@localhost ~]# head -2 /etc/gshadow
root:::root
bin:::root,bin,daemon
解释:每一个用户记录一行,以":"分割为4个字段
字段1: 用户组名
字段2: 用户组密码
字段3: 用户组管理员的名称
字段4: 支持的帐号名称
/etc/skel目录
/etc/skel 目录中包含的文件和目录会自动复制到新用户的主目录时这样的用户由程序建立的 useradd。
主目录,也称为登陆的目录,是在 unix 操做系统上,做为对用户的我的文件、 目录和程序,包括我的配置文件存储库中的目录。它也是用户是在第一次登陆到系统后的目录。/etc 目录和其子目录中包含系统的不少重要的配置文件。
Useradd 程序位于 /usr/sbin/目录,并在大多数系统上,它是只能由根访问 (即行政) 用户。在某些系统上此程序可能会调用 useradd。
/etc/skel 容许系统管理员建立默认的主目录为全部新用户计算机或网络上,从而确保全部用户都开始用相同的设置或环境。
几个用户的配置文件放在 /etc/skel,默认状况下在安装操做系统时。一般,它们可能包括.bash_profile.bashrc、.bash_logout、 dircolors、.inputrc、.vimrc。前面的这些文件的名称,点代表他们是隐藏的文件,即,不是为了不视觉上的混乱和帮助减小意外损坏的可能性一般可见的文件。
即用其-a 选项,该选项显示全部文件和目录,包括隐藏的),使用 ls (即,列表) 命令能够查看 /etc/skel 的内容
ls-a /etc/skel
能够经过编辑与 SKEL 开头的行更改位置的 skel = 在配置文件 /etc/default/useradd 中。默认状况下这条线说 SKEL = /etc/skel。
它是一般最好保持 /etc/skel 到全局配置文件,如 /etc/profile 小如可能,并将全系统的配置项。这是由于后者使得它更容易更新现有的用户文件,由于它的设置生效,尽快的系统打开并将应用于新用户和老用途一致好评。
当由管理员使用 userdel 命令从系统删除用户时,该用户的主目录,包括文件和目录的已复制到它从 /etc/skel,保持不变。
目录 skel 名称来自字骨架,由于文件它包含窗体的基本结构为用户的主目录。
用户的初始配置文件
配置文件来源:
- 新建用户时,根据 /etc/skel 模板目录复制
主要的初始配置文件:
~/.bashrc # 每次进入新的Bash环境时执行
~/.bash_profile # 每次登陆时执行
~/.bash_logout # 每次退出时执行