Linux学习笔记(五)--用户和用户组管理

一、    用户配置文件

1.    用户信息文件/etc/passwd

 

用户管理简介

越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器管理规范。

在Linux中主要是通过用户配置文件来查看和修改用户信息。

/etc/passwd

用“:”分割字段,一共7个字段。

第1字段:用户名称

第2字段:密码标志

第3字段:UID(用户ID)

0                                 超级用户

1-499            系统用户(伪用户)

500-65535     普通用户

第4字段:GID(用户初始组ID)

第5字段:用户说明

第6字段:家目录

普通用户:/home/用户名/

超级用户:/root/

第7字段:登陆之后的shell

初始组和附加组

初始组:就是指用户已登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。

附加组:指用户可以加入多个其他用户组,并拥有这些组的权限,附加组可以有多个。

Shell是什么

Shell就是Linux的命令解释器。

在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写/sbin/nologin。(nologin禁止登陆)

 

2.    影子文件/etc/shadow

DAY15

第1字段:用户名

第2字段:加密密码

       加密算法升级为SHA512散列加密密码

       如加密密码是‘!!’或‘*’代表没密码,不能登陆

第3字段:密码最后一次修改时间

       使用1970年1月1日为标准时间,每过一天时间戳加1.

第4字段:两次密码修改的间隔(和第3字段)

第5字段:密码有效期(和第3字段)

第6字段:密码修改到期前的警告天数(和第5字段比)

第7字段:密码到期后的宽限天数(和第5字段比)

       0:代表密码过期后立即失效

       -1:则代表密码永远不会失效

第8字段:账号失效时间

       用时间戳表示

第9字段:保留

时间戳换算

把时间戳换算为日期:

       date-d "1970-01-01 16826 days"

把日期换算成时间戳

       echo$(($(date --date=”2014/01/06”+%s)/86400+1))

 

3.    组信息文件/etc/group和组密码文件/etc/gshadow

第1字段:组名

第2字段:组密码标示

第3字段:GID

第4字段:组中附加用户

第1字段:组名

第2字段:组密码

第3字段:组管理用户名

第4字段:组中附加用户

二、    用户管理相关文件

1.用户的家目录

普通用户:/home/用户名,所有者和所属组都是此用户,权限700

超级用户:/root/,所有者和所属组都是root用户,权限是550

2.用户的邮箱

/var/spool/mail/用户名/

3.用户模板目录

/etc/skel

三、    用户管理命令

1.    useradd命令格式

useradd 【选项】用户名

-u UID                                               手工指定用户的uid

-d 家目录      (directory)              手工指定用户的家目录

-c 用户说明   (comment)             手工指定用户的说明

-g 组名         (group)                      手工指定用户的初始组

-G 组名                                            指定用户的附加组

-s shell           (shell)                        手工指定用户的登陆shell。默认bash

2.    用户默认值文件

/etc/default/useradd

       GROUP=100                                                                #默认用户组

       Home=/home                                                              #默认家目录

       INACTIVE=-1                                                               #密码过期宽限天数

       EXPIRE=                                                                       #密码失效时间

       SHELL=/bin/shell                                                          #默认shell

       SKEL=/etc/skel                                                             #模板目录

       CREATE_MAIL_SPOOL=yes                                           #是否建立邮箱

/etc/login.defs

       PASS_MAX_DAYS 9999                                                 #密码有效期

       PASS_MIN_DAYS    0                                                  #密码修改间隔   

       PASS_MIN_LEN     5                                                  #密码最小5位

       PASS_WARN_AGE   7                                                  #密码到期警告

       UID_MIN                500                                              #最小和最大UID范围

       GID_MAX               60000                                           #

       ENCRYPT_METHOD SHA512                                         #加密模式

3.    修改用户信息usermod

usermod [选项] 用户名

-u UID                                               手工指定用户的uid

-c 用户说明   (comment)             手工指定用户的说明

-G 组名                                            指定用户的附加组

-L                                                      临时锁定用户(Lock)

-U UID                                              解锁用户锁定(Unclock)

 

4.修改用户密码状态chage

Chage [选项] 用户名

-l                                 列出用户的详细密码状态

-d 日期                       修改密码最后一次更改日期(shadow 3字段)

-m 天数                      两次修改密码的间隔(4字段)

-M 天数                      密码有效时间(5字段)

-W 天数                      密码过期前警告天数(6字段)

-I 天数                        密码过后宽限天数(7字段)

-E 日期                        账号失效天数(8字段)

范例:chage–d 0 altman

       #这个命令其实是把密码修改日期改为0了

       #这样用户一登陆就要修改密码

5.删除用户userdel

userel [-r] 用户名

-r 删除用户的同时删除用户家目录

手工删除用户

vi /etc/passwd

vi /etc/shadow

vi /etc/group

vi /etc/gshadow

rm –rf /var/spool/mail/用户名

rm –rf /home/用户名

1.    用户切换命令su

su [选项] 用户名

       -           代表连用户的环境变量一起切换

       -c          仅执行一次命令,而不切换用户身份

例如,su– root –c “useradd test2”

#普通用户调用root用户才能用的命令

7.查看用户ID

id 用户名

 

四、    用户组管理命令

1.     添加用户组

groupadd [选项] 组名

-g GID                         指定:GID

2.    修改用户组

       groupmod【选项】 组名

       -gGID                        修改组ID

       -n新组名                   修改组名

3. 删除用户组

       groupdel组名

4.     把用户添加入组或从组中删除

gpasswd 【选项】 组名

-a 用户名:         把用户加入组

-d 用户名:         把用户从组中删除  

你可能感兴趣的:(Linux学习笔记)