Linux用户和组管理
在Linux系统中,用户管理是基于用户名和密码的方式进行资源的分配,Linux上的用户分为以下类别:
管理员:root,0
普通用户:1-65535
普通用户又分为:系统用户和普通用户两种;
系统用户的UID编号为1-499(centos6系统) 1-999(centos7系统) 对守护进程获取资源进行权限分配;
普通用户的UID编号为500+(centos6系统) 1000+(centos7系统) 通过交互的方式登录
Linux组:Groupname/GID
管理员组:root,0
普通组:1-65535
普通组又分为系统组和普通组
系统组:1-499(centos6系统) 1-999(centos7系统)
普通组:500+(centos6系统) 1000+(centos7系统)
对于一个用户而言可以有多个不同的组,分别称之为用户的基本组(主组)和附加组;基本组组名与用户名相同,且仅包含一个用户,也叫私有组。基本组以外的组属于用户的附加组。
在Linux系统中,与用户和组相关的配置文件为为一下四个
/etc/passwd:用户及其属性信息
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
下面就以上四个配置文件我们选其中的passwd,group,shadow来简要说明
1)/etc/passwd
通过whatis passwd来查看其对应的配置文件的帮助信息;
或者通过#man 5 passwd查看配置文件的帮助信息;
通常格式为:
name:password:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID:用户的详细说明信息:用户的家目录:用户的默认shell类型
2)/etc/group
group_name:password:GID:user_list
组名:组密码:组ID:以当前组为附加组的用户列表(如果有多个,则用逗号隔开)
3)/etc/shadow:用户密码
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:过期期限:保留字段
4)/etc/group:租的信息库
group_name:password:GID:user_list
user_list:该组的用户成员;以此组为附加组的用户的用户列表;
说到密码,我们有必要提一下密码的加密和解密机制:
加密:明文-->密文
解密:密文-->明文
而计算机中常用的算法有:md5,sha1,sha224,sha256,sha384,sha512
密码在加密过程中存在着一种雪崩效应,既指初始条件的微小变动,将会引起结果的巨大变化。
这里给大家一些关于密码设置的建议:
1.使用数字、大写字母、小写字母及特殊字符中的至少3个
2.足够长
3.使用随机密码
4.定期更换,不要使用最近经常使用的密码
接下来我们来说一下用户和组的相关管理命令
groupadd命令:添加组
groupadd [选项] group_name
-g GID:指定GID:默认是上一个组的GID+1;
-r:创建系统组
groupmod命令:修改组属性
groupmod [选项] GROUP
useradd命令:创建用户
useradd [选项] 登录名
-u, --uid UID:指定UID:
-g, --gid GROUP:指定基本组ID,此组得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]:指明用户所属的附加组,多个组之间用逗号分隔;
-c,--comment COMMENT:指定注释信息;
-d ,--home HOME_DIR:以指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中:
-r,--system:创建系统用户;
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
useradd -D:显示创建用户的默认配置;
useradd -D 选项:修改默认选项的值;
修改的结果保存于/etc/default/useradd文件中;
usermod命令:修改用户属性
user [选项] 登录
-u, --uid UID:修改用户UID:
-g, --gid GROUP:修改用户所属的基本组;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
-a, --append:与-G一同使用,用于为用户追加新的附加组;
-c,--cmomment COMMENT:修改注释信息;
-d, --home HOME_DIR:修改用户的家目录:用户原有的文件不会被转移至新位置;
-m, --move-home:只能与-d选项一同使用,用于将原有的家目录移动为新的家目录;
-l,--login NEW_LOGIN:修改用户名;
-s,--shell SHELL:修改用户的默认shell;
-L,--lcok:锁定用户密码:既在用户原来的密码字符串之前添加一个"!";
-U,--unlock:解锁用户的密码;
userdel,命令:删除用户
userdel [选项] 登录
-r:删除用户时一并删除其家目录;
passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
(1)passwd:修改用户自己的密码;
(2)passwd USERNAME:修改指定用户的密码,但仅root有此权限;
-l,-u:锁定和解锁用户;
-d:清除用户密码串;
-e DATE:过期期限,日期;
-i DAYS:非活动期限;
-n DAYS:密码的最短使用期限;
-x DAYS:密码的最长使用期限;
-w DAYS:警告期限;
--stdin:
echo "PASSWORD" | passwd --stdin USERNAME
gpasswd命令:
组密码文件:/etc/gshadow
gpasswd [选项] group
-a USERNAME: 向组中添加用户
-d USERNAME: 从组中移除命令
newgrp命令:临时切换指定的组为基本组;
newgrp [-] [group]
-:会模拟用户重新登录以实现重新初始化其工作环境;
chage命令:更改用户密码过期信息;
chage [选项] 登录名
id命令:显示用户登录的真实和有效ID;
id [OPTION]... [USER]
~u:仅显示有效的UID;
-g:仅显示用户的基本组ID;
-G:仅显示用户所属的所有组的ID;
-n:显示名字而非ID;
su命令;switch user
登录式切换:会通过读取目标用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
非切换式登录:不会读取目标用户的配置文件进行初始化
su USERNAME
注意:管理员可无密码切换至其它任何用户;
-c ‘COMMAND‘:仅以指定用户的身份运行此处命令;
练习:
1.创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
2.创建下面的用户、组和组成员关系
名字为admins 的组
用户natasha,使用admins 作为附属组
用户harry,也使用admins 作为附属组
用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos
本文出自 “11798474” 博客,请务必保留此出处http://11808474.blog.51cto.com/11798474/1832362
原文地址:http://11808474.blog.51cto.com/11798474/1832362