用户和用户组管理

1.用户管理简介

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

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


1.1 ./etc/passwd

第一字段:用户名称

第二字段:密码标志

第三字段:UID(用户ID)

  0: 超级用户

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

500-65535:普通用户

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

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

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

第五字段:用户说明

第六字段:家目录

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

->超级用户:/root/

第七字段:登录之后的Shell

->Shell就是Linux的命令解释器

->在/etc/passwd/中,除了标准Shell是/bin/bash之外,还可以写入/sbin/nologin


1.2 影子文件 /etc/shadow

第一字段:用户名

第二字段:加密密码

->加密算法升级为SHA512散列加密算法

->如果密码位是"!!"或"*"代表没有密码,不能登录

第三字段:密码最后一次修改日期

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

第四字段:两次密码的修改间隔时间(和第三字段相比)

第五字段:密码有效期(和第三字段相比)

第六字段:密码修改到期前提示的警告天数(和第五字段相比)

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

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

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

第八字段:账号失效时间

->要用时间戳表示

第九字段:保留


时间戳换算

->把时间戳换算为日期

date -d "1970-01-01 166076 days"

->把日期换算为时间戳

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



1.3 组信息文件/etc/group

第一字段:组名

第二字段:组密码标志

第三字段:GID

第四字段:组中附加用户


1.4.组密码文件/etc/gshadow

第一字段:组名

第二字段:组密码

第三字段:组管理员用户名

第四字段:组中附加用户


2.用户管理相关文件(自动添加)

2.1 用户的家目录

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

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

2.2 用户的邮箱

-> /var/spool/mail/用户名/

2.3 用户模板目录

-> /etc/skel/


3. 用户管理命令

3.1 用户添加命令 useradd

-> useradd [选项] 用户名

选项:

-u UID:  手工指定用户的UID号

-d 家目录: 手工指定用户的家目录

-c 用户说明: 手工指定用户的说明

-g 组名: 手工指定用户的初始组

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

-s shell: 手工指定用户的登录shell。默认是/bin/bash

3.2 添加默认用户

useradd  sc

grep sc /etc/passwd

grep sc /etc/shadow

grep sc /etc/group

grep sc /etc/gshadow

grep sc /

3.3 指定选项添加用户

-> useradd -u 550 -G root,bin -d /home/lamp1 \

-c "test user" -s /bin/bash sc

3.4 用户默认值文件

-> /etc/default/useradd

-> GROUP=100  #用户默认组

-> HOME=/home #用户家目录

-> INACTIVE=-1 #密码过期宽限天数(shadow文件7字段)

->EXPIRE= #密码失效时间(8)

->SHELL=/bin/bash    #默认shell

->SKEL=/etc/skel #模板目录

->CREATE_MAIL_SPOOL=yes #是否建立邮箱

-> /etc/login.defs

-> PASS_MAX_DAYS 99999 # 密码有效期(5)

-> PASS_MIN_DAYS 0       # 密码修改间隔(4)

-> PASS_MIN_LEN    5      # 密码最小5位(PAM)

-> PASS_WARN_AGE 7      # 密码到期警告(6)

-> UID_MIN         500      # 最小和最大UID范围

-> GID_MAX 60000

->ENCRYPT_METHOD   SHA512 # 加密模式


4 修改用户密码passwd

1.passwd命令格式

passwd [选项] 用户名  (一般passwd什么都不需要跟,就直接加用户名就可以了)

选项:

-S  查询用户密码的状态 

-l      锁定用户

-u    解锁用户

echo "123"|passwd --stdin lamp   (常用于shell编程批量添加密码,明文密码,每个用户登录后最好要修改为自己的密码)


5、修改用户信息usermod 修改用户密码状态chage

usermod -c ”test user“ -G root -u 550 lamp(跟useradd的区别就是修改已经存在的用户)

-L -U  锁定和解锁用户


6、修改用户密码状态chage

chage [选项] 用户名

选项:

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

-d  日期: 修改密码最后一次更改日期   chage -d 0 lamp  (要求新用户一登录 就要修改密码)

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

-M 天数: 密码有效期(5字段)

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

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

-E  日期: 账号失效时间(8字段)


7、删除用户 userdel 

用户切换命令 su

userdel [-r] 用户名

选项:

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


手工删除用户

vi  /etc/passwd

vi  /etc/shadow

vi  /etc/group

vi /etc/gshadow

rm -rf /var/spool/mail/lamp

rm -rf /home/lamp/


查看用户ID    id 用户名

8、切换用户身份 su

su [选项] 用户名

选项:

:  选项只使用“-” 代表连带用户的环境变量一起切换

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

su -root -c "useradd user3"

不切换成root,但是执行useradd命令添加user3


用户组管理命令

1.添加用户组

groupadd [选项] 组名

选项:

-g GID: 指定组ID

2.修改用户组

groupmod [选项] 组名

选项:

-g GID:  修改组ID

-n 新组名:   修改组名

groupmod -n testgrp group1

#把组名group1修改为testgrp


3.删除用户组(不允许组中有初始用户)

groupdel 组名


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

gpasswd 选项 组名 (附加用户)

选项:

-a  用户名:把用户添加到组中

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值