您的位置:首页 > 运维架构 > Linux

Linux基础之用户、组概念及相关命令

2016-05-26 13:26 453 查看
“Linux是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。”我们在刚接触到Linux时就知道这句话,其他暂且不表,本文主要对于“多用户”这个特性及其相关知识进行简单总结和归纳。

概念部分:
用户及其三要素
1.username

用户名,类似于人的名字,每个用户都有一个username,便于人类的记忆、识别和区分。

2.UID

用户ID,可理解为人的身份证号,唯一地标示每个用户,也能让计算机更好地识别、区分和管理。

3.passwd

用户密码;在生活中我们已经接触了太多密码,我们也越来越依赖各种各样的密码;密码机制提供了较好的认证机制。

用户组:
在linux系统中,往往需要对不同的用户赋予不同的权限,为了便于对具有相同权限用户的管理与赋权,于是有了用户组的概念。一个组下面有多个用户,对这个组赋予相应的权限,则这个组下面的成员就具有了相应的权限。
对应的,用户组也有类似于用户的几个要素:groupname(组名),GID(组ID)和gpasswd(组密码),概念较简单,不再赘述。
分类及ID划分
用户类别:管理员 UID:0
普通用户:UID(1-65635) 系统用户UID(1-499)centOS 6;UID(1-999)centOS 7 登陆用户;UID(500-60000)centOS 6;UID(1000-60000)centOS 7 组类别:管理员组 GID:0
普通用户组:GID(1-65635) 系统用户组GID(1-499)centOS 6;UID(1-999)centOS 7 登陆用户组;GID(500-60000)centOS 6;UID(1000-60000)centOS 7 基本组和附加组:
基本组:每个用户在创建时,都会有一个自己的基本组,默认情况下,基本组名和用户名相同,当然也可使用命令修改。注意基本组最多只有一个。
附加组:用户除了基本组外,还可使用命令加入其他已存在的组,将其作为附加组;附加组可有可无,也可以有多个;相关命令在后面会提到。

相关配置文件: /etc/passwd:用户信息库
格式:name:x:UID:GID:GECOS:directory:shell;从做到右分别是用户名、密码占位符、UID、基本GID、注释信息、家目录和默认shell类型,各项之间都用“:”隔开。 /etc/shadow:密码库
格式:name:密码(加密格式):last change date:min days:max days:warn days:inactive days:inactive date:备用;
其中last change date和inactive date都显示从1970年1月1日(linux元年)到该日期的天数,前者表示最近一次修改的日期,后者表示密码最后将要失效的日期;
min days指密码再过几天可被修改,0表示随时可修改;max days指密码再过几天必须修改,99999表示永远不修改都可以;warn days指密码过期的前几天会提醒用户修改;inactive days指密码过期几天后账号会被锁定。
密码:/etc/shadow中的密码以加密方式显示,锁定账户等价于在/etc/shadow文件密码字节前加“!”使用户失效。
组的相关配置文件为/etc/group和/etc/gshadow,相关概念类似,涉及信息更少,此处不再赘述。
相关命令 useradd:用户创建及用户属性设置;格式:useradd [OPTIONS] username; 选项: -u UID:指明要创建用户的UID;如果未跟此选项,新用户UID默认在上一个用户UID上加1; -g GID:指明基本组名或者GID;默认回创建与用户名相同的基本组; -c COMMENT:指明用户的注释信息; -d HOME_DIR:指明家目录;如果没指明默认为home下用户名同名目录;家目录下的原始文件是从/etc/skel下复制而来; -s SHELL:指明要创建用户的默认shell类型;默认为/bin/bash,当然默认信息也能在配置文件下修改;
-G GROUP1,GROUP2...:添加GROUP1,2为用户附加组,需要该组实现存在;
-N:不创建用户基本组,使用user作为基本组;
-r:创建用户为系统用户;centos 6中UID<500,在centos 7中UID<1000;
-o:与-u一起使用,不检查UID唯一性;可使多个用户名使用一个UID,但是其实本质上还是同一个用户。
usermod:已创建好用户属性的修改;格式:usermod [OPTIONS] username; 选项:
-u UID:新的UID; -g GID:新的组;
-G GROUP1,GROUP2...:新的附加组,原有附加组会被覆盖,可使用-a追加; -s SHELL:新的默认shell; -d HOME:新的家目录,如果要移动原家目录文件到新家目录,要和-m一起使用;
-l new name:新的username;
-L:锁定该用户;
-U:解锁该用户; userdel:删除该用户;格式:userdel [OPTIONS] username; -r:删除同时将用户家目录一并删除; groupadd:创建组;格式:groupadd [OPTIONS] groupname;

选项: -r:创建系统组; -g GID:指明GID;默认在上一个组GID上加1; groupmod:修改组属性;格式:groupmod [OPTIONS] groupname; 选项: -n group_name:使用新的group_name; -g GID:新的GID; groupdel:删除组;格式:groupadd groupname; id:查看用户相关ID信息;id [OPTION] user;
-u:查看UID;
-g:查看GID;
-G:查看附加组;
-N:id -N UID,在知道UID的情况下查看username;
passwd:修改自己密码; 仅root有修改其他人密码的权限,格式:passwd [OPTION] username;
-l:锁定指定用户; -u:解锁指定用户; -e:强制指定用户下次登录时需要修改密码; -n mindays:指定最短使用期限; -x maxdays:指定最大使用期限; -w warndays:指定提前多少天警告;
-i inactivedays:指定该用户非活动期限; --stdin:从标准输入获取密码;如echo “passwd”| passwd --stdin username;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: