Linux教程之Linux用户和用户组管理

Linux系统中,linux用户和用户组就像一个国家。如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成。在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的。


Linux用户和用户组管理之用户配置文件


1.1Linux用户和用户组管理用户信息文件

1.1.1 用户管理简介

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

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



1.1.2 /etc/passwd

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下用户帐号文件。

Linux用户管理

Linux用户和用户组

 

每行一共有七项,每一项使用:分开,他们代表的意思如下:

第1字段:用户名称

第2字段:密码标志

第3字段:UID(用户ID)

0:                超级用户

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

500-65535      普通用户

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

第5字段:用户说明

第6字段:用户家目录

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

超级用户:/root/

第7字段:登陆之后的shell

 


1.1.3  初始组和附加组

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

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

 


1.1.4  shell是什么

shell就是Linux的命令解析器

在 /etc/passwd中,除了标准shell是/bin/bash之外,还可以写成如/sbin/nologin/

 

1.2影子文件

1.2.1 /etc/shadow

在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。

Linux用户组管理

每行一共有九项,每一项使用:分开,他们代表的意思如下:

第1字段:用户名

第2字段:加密密码

如果是!!或*代表没有密码,不能登陆

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

使用1970.1.1作为标准时间,每过一天时间戳加1

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

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

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

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

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

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

第8字段:账号失效时间

第9字段:保留

 


1.2.2 时间戳换算

把时间戳换算为日期

date -d “1970-01-01 16066 days”

把日期换算为时间戳

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

 

1.3组信息文件

1.3.1 /etc/group

Linux用户和用户组

 

每行一共有四项,每一项使用:分开,他们代表的意思如下:

第1字段:组名

第2字段:组密码标志

第3字段:GID

第4字段:组中附加用户

 


1.3.2  组密码文件/etc/gshadow

同样也是每行一共有四项,每一项使用:分开,他们代表的意思如下:

第1字段:组名

第2字段:组密码

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

第4字段:组中附加用户

 

Linux用户和用户组管理之用户管理相关文件

1.用户家目录

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

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

 

2.用户邮箱

/var/spool/mail/用户名/

 

3.用户模版

/etc/skel/

 

Linux用户和用户组管理用户管理命令

1.useradd 命令格式


1.1  useradd [选项] 用户名

选项:

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

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

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

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

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

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

 


1.2.  用户默认值文件

/etc/default/useradd

GROUP=100                       用户默认组

HOME=/home                     用户家目录

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

EXPIRE=                            密码失效时间(shadow文件8字段)

SHELL=/bin/bash/                默认shell

SKEL=/etc/skel/                   模板目录

CREATE_MAIL_SPOOL=yes      是否建立邮箱

Linux用户和用户组

 

/etc/login.defs

PASS_MAX_DAYS             99999     密码有效期(shadow文件5字段)

PASS_MIN_DAYS                     0            密码修改间隔(shadow文件4字段)

PASS_MIN_LEN                 5            密码最小5位(PAM)

PASS_WARN_AGE             7            密码到期警告(shadow文件6字段)

UID_MIN                           500         最小和最大UID范围

GID_MAX                          600

ENCRYPT_MEHTOD        SHA512  加密模式

Linux用户和用户组

Linux用户和用户组

 

2.修改用户密码


2.1   passwd [选项] 用户名

-S           查询用户密码的密码状态。仅root用户可用

-l            暂时锁定用户。仅root用户可用

-u           解锁用户。仅root用户可用

–stdin  可以通过管道符输出的数据作为用户的密码

 

3.修改用户信息usermod,修改用户密码状态chage

3.1  usermod

选项同 useradd,区别是usermod是修改用户信息

-L 锁定用户

-U 解锁用户

 


3.2  chage 修改用户密码状态

chage [选项] 用户名

选项

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

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

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

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

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

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

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

chage -d 0 user1

#这个命令其实是把密码修改日期归0了(shadow第3字段)

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

 


4.Linux用户和用户组管理删除用户

4.1

userdel [-r] 用户名

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

 

查看用户id

id [用户名]

 

切换用户su

su [选项] 用户名

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

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

su – root -c “useradd user1″

#不切换成root,但是执行useradd命名添加user1用户

 

5.Linux用户和用户组管理用户组管理命令

5.1 新增组

groupadd [选项] 组名

-g GID 指定组ID

 


5.2 修改组

groupmod [选项] 组名

 


-g GID          修改组ID

-n 新组名      修改组名

groupmod -n 新组名 旧组名

 


5.3删除组

groupdel 组名

 


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

gpasswd 选项 组名

选择

-a 用户名      把用户加入组

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

本文Linux环境为CentOS 6。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值