码迷,mamicode.com
首页 > 系统相关 > 详细

Linux用户和组管理

时间:2016-07-31 16:02:01      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:linux   用户      管理   

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

Linux用户和组管理

标签:linux   用户      管理   

原文地址:http://11808474.blog.51cto.com/11798474/1832362

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!