Linux基础知识之用户、组的介绍与管理

主要介绍Linux中用户、组的基本概念,对应的配置文件,用户组的管理包括添加、修改、删除。

Linux用户、组概念介绍

用户:一种技术、产品、服务的使用者。计算机中用户即使用计算机功能的对象。

组:系统中的组可以看做一个容器,在它所属下面的所有用户都具有这个容器的相关特性。
若这个组对某个文件有读写执行这三个权限,那么它下面的所有成员对这个文件也具有读写执行三个权限。
组按其不同性质可分三种:
1、
管理员组
普通用户组:系统组、登陆组
组标识:GroupID简称GID
管理员组:0
普通用户组:1-65535
系统用户组:1-499(CentOS6.x) 1-999(CentOS7.x)
登陆用户组:500-60000(CentOS6.x) 1000-60000(CentOS7.x)
2、
用户的基本组
用户的附加组
3、
私有组:组名同用户名,且只包含一个用户
公共组:组内包含了多个用户


--------------------------------------------------------------------------------
用户在登陆系统时系统会对所登陆用户进行认证,这个认证过程是通过对比事先存储在系统文件的信息与登录时提供的信息是否一致来判断。

对比的文件有/etc/passwd、/etc/shadow、/etc/gshadow、/etc/group
下面对这四个文件做下详细介绍

可以看到该文件有固定的表达格式。

其格式每一项的意义如下
第一项:为name用户名
第二项:为password,可以是加密的密码,也可以是占位符x,这里通常为占位符,而把密码放在另一个文件/etc/shadow内,这样更加安全。
第三项:为UID
第四项:为GID
第五项:为GECOS注释信息
第六项:为Directory用户的家目录
第七项:为shell用户的默认shell,登录时默认的shell程序

第一项:groupname组名

第二项:password密码
第三项:GID
第四项:userlist该组的用户成员,以此组为附加组的用户的用户列表。

第一项:user用户名
第二项:password用户密码,密文,默认使用sha512加密
第三项:从1970年1月1日起到密码最近一次被更改的时间
第四项:密码最短使用期限,密码再过几天可以被更改,0表示随时可被更改
第五项:最常使用期限,密码再过几天必须变更,99999表示永不过期
第六项:警告期段,密码过期前几天系统提醒用户
第七项:过期期限,密码过期几天后账号被锁定
第八项:保留字段,从1970年1月1日算起,多少天后账号失效。

第一项:groupname组名
第二项:password组密码,密文,默认sha512加密
第三项:GID
第四项:userlist该组的用户成员,以此组为附加组的用户的用户列表。

这里的四个文件都涉及到密码内容,这里就插点关于密码的相关内容,这内容会加深对加密方式的理解。

在上面的/etc/shadow、/etc/gshadow两个文件内,在第二项密码中,我们看到其开头都有$6,这里$6表示的是sha512加密算法。
加密算法:
对称加密:加密和解密使用同一个密码
非对称加密:加密解密使用一对密钥
密钥对儿:公钥、私钥
因为以上还是不够安全所以又有了单项加密
单项加密:只能加密,不能解密,提取数据特征码:
其特性:定长输出、雪崩效应(一点点的变化就会引起大变动)
Linux中使用的加密算法有以下6种:
$1 md5      由128bits二进制表示
$2 sha      由160bits二进制表示
$3 sha224  由224bits二进制表示
$4 sha256  由256bits二进制表示
$5 sha384  由384bits二进制表示
$6 sha512  由512bits二进制表示
近期由于md5的加密方式已被破解所以之前Linux默认使用的md5加密算法已被更新为sha512。

Linux用户、组管理

用户管理:创建、修改、删除
用户创建:
命令格式:useradd [OPTION] USERNAME
OPTION:
      -u 指定UID
      -g 指定基本组ID,此组需事先存在
      -c 指明注释信息
      -G 指明用户所属附加组,附加组需事先存在。
      -d 指明用户家目录,通过复制/etc/skel/此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
      -s 指定用户默认shell
      -r 创建系统用户
      -D 显示创建用户的默认配置
      -D + [选项] 修改用户的默认配置 /etc/login.def  修改的结果保存于/etc/default/useradd中

用户修改
usermod
命令格式:usermod [OPTION] USERNAME
OPTION:
      -u 修改用户的ID为指定的新UID
      -g 修改用户的GID为新的GID
      -c 修改该用户注释信息
      -G 修改该用户所属附加组,附加组需事先存在。
      -d 修改用户家目录,用户原有的文件不会被转移至新位置
      -m 与-d一起使用,将原来的家目录移动至新家目录(-m放在-d后面使用)
      -l 修改用户名
      -s 修改该用户默认shell
      -L 锁定用户密码
      -U 解锁用户密码

用户删除
userdel
命令格式:userdel [OPTION] USERNAME
OPTION:
      -r 删除用户时一并删除家目录

组管理:创建、修改、删除
组创建
groupadd

命令格式:groupadd [OPTION] GROUPNAME
OPTION:
      -g 指定GID,默认是上一个组的GID+1
      -r 创建系统组

组修改
groupmod
命令格式:groupadd [OPTION] GROUPNAME
OPTION:
      -g 修改GID
      -n 修改组名

组删除
groupdel GROUPNAME

其他的命令
groups USERNAME
查看用户的所属组信息

[root@localhost test]# groups gentoo
gentoo : gentoo distro peguin netadmin

这说明gentoo用户的基本组是gentoo,distro peguin netadmin是其附加组。

--------------------------------------------------------------------------------
下面通过几个例子来具体感受用户、组管理的具体作用

1、创建用户u1,附加组g1,g2,默认shell为/bin/csh,注释信息为“UUU”
要实现上述内容,需先创建组g1、g2,之后再创建u1。
[root@localhost ~]# groupadd g1
[root@localhost ~]# groupadd g2
[root@localhost ~]# useradd u1 -G g1,g2 -s /bin/csh -c "UUU"
[root@localhost ~]# tail -1 /etc/passwd
u1:x:4323:4323:UUU:/home/u1:/bin/csh
[root@localhost ~]# groups u1
u1 : u1 g1 g2

2、创建下面的用户、组和组成员关系

不可交互指的是其默认shell为/sbin/nologin

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134038.htm