前言

为什么创建用户和组

用户和组的分类

用户和组主要配置文件

用户管理

组管理



前言

资源分派的3A认证

Authentication:认证   确认身份

Authorization:授权    给什么样的权限

Accouting|Audition:审计  记录行为



为什么创建用户和组

用户

在linux系统中认证是用用户来验证。

用户名+口令=令牌 有了不同等级的令牌就可以出入不同的关卡。

在系统中每一个用户都有自己的一个id号·这个id号是系统用来标识用户的主要凭证

组group

基于某种特定联系将多个用户集合在一起,即构成一个用户组

组可以方便几个用户使用同样的权限,方便了管理多个用户

在linux系统中创建用户的时候就默认创建同名的用户的组

而在windows中是不允许的!

当访问一个文件是否能够访问权限是通过用户来决定的



用户和组的分类

用户分类: 

管理员用户:root

UID :0

系统用户:1-499(centos6),1-999(cetnos7) 对守护进程获取资源进行权限分配

普通用户:501-65535(cetnos6),1000-65535(centos7) 交互式登录

 

组的分类:

主组(也叫基本组):创建用户在没有添加任何参数的时候自动创建同名主组,用户只能属于或者只能有一个主组

辅助组:用户除了在主组之外的其他组叫做附属组,一个用户可以属于零个或多个辅助组

组也有相对应的标识id号 Gid

默认管理员root组:root

GID  :0

系统用户组:1-499(centos6),1-999(cetnos7)

普通用户组:501-65535(cetnos6),1000-65535(centos7)



用户和组主要配置文件

1.用户属性文件

/etc/passwd 

是一个文本文件,包含了用户名及其一系列的用户属性(包括用户UID,GID,描述信息等)

[root@centos6 testdir]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinusbmuxd:x:113:113:usbmuxd user:/:/sbin/nologinrpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologinrtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin#以上是文件部分内容
#下面对用户属性文件格式做一个了解root:x:0:0:root:/root:/bin/bashroot          #用户名:x           #用户密码(由于一些安全因素,此处不记录密码):0           #用户UID:0           #用户GID:root          #用户的一些描述信息(空就表示没有):/root          #用户家目录:/bin/bash          #用户登录shell

2.用户密码文件

/etc/shadow  

用户存放密码及其其他属性的的文本文件 

#以下是用户密码属性文件部分内容[root@centos6 testdir]# cat /etc/shadowroot:$6$bkV/N8gpLVgw66mE$GCRmhYK3r75F/OFuN4.kiSvIcsXkddGbZWJykdPIh5H32aZwGgsLW7I030JAkCC.GTn8CAopetseb90TEAMbp/:17007:0:99999:7:::bin:*:15980:0:99999:7:::daemon:*:15980:0:99999:7:::adm:*:15980:0:99999:7:::lp:*:15980:0:99999:7:::sync:*:15980:0:99999:7:::shutdown:*:15980:0:99999:7:::halt:*:15980:0:99999:7:::mail:*:15980:0:99999:7:::uucp:*:15980:0:99999:7:::operator:*:15980:0:99999:7:::games:*:15980:0:99999:7:::gopher:*:15980:0:99999:7:::ftp:*:15980:0:99999:7:::nobody:*:15980:0:99999:7:::dbus:!!:17007::::::usbmuxd:!!:17007::::::rpc:!!:17007:0:99999:7:::rtkit:!!:17007::::::
liaoxz:!!:17008:0:99999:7:::liaoxz     用户名!!       密码(用户没有设置密码是禁止登录的所以是两个!!):17008     从1970.1.1起到密码最近一次更改时间:0       密码再过几天可以被更改:99999     密码有效期:7       密码过期前几天提醒(默认一周)::       密码过期几天后被锁定::       账户有效期(从1970.1.1算起多少天后失效)

3.组属性文件

/etc/group

组的相关属性(包括组名,gid等)

cat /etc/passwdroot:x:0:liaoxzroot          组名:x          组密码(因为安全因素这里不设定密码):0          组id(组的标识号码):liaoxz          以当前组作为附加组的用户列表

 

4.组密码文件

/etc/gshadow

存储组密码的相关属性(包括组的密码,管理员等)

[root@centos6 mail]# cat /etc/gshadowbin:::bin,daemonbin            群组名  ::            群组密码(空为没有)::            组管理员列表(空为没有)bin,daemon            以当前组作为附加组的用户列表

5.其它文件操作命令

#直接打开用户属性文件命令[root@centos6 ~]# vipwroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync#直接打开组属性文件命令[root@centos6 ~]# vigrroot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:mem:x:8:kmem:x:9:wheel:x:10:liaoxzcdrom:x:11:mail:x:12:postfix#检查用户密码文件的完整性命令#语法pwck [options] [passwd [ shadow ]]#主要选项-q:只显示错误信息,警告不显示-s:按id排序-r:只读方式检查[root@localhost ~]# pwckuser 'ftp': directory '/var/ftp' does not existuser 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not existuser 'saslauth': directory '/run/saslauthd' does not existuser 'pulse': directory '/var/run/pulse' does not existpwck: no changes#检查用户组及密码文件的完整性#语法grpck [options] [passwd [ shadow ]]#主要选项-q:只显示错误信息,警告不显示;-s:按id排序;-r:只读方式检查。[root@localhost ~]# grpck



用户管理

查看用户id

命令1

#语法id [OPTION]... [USERNAME]#选项-g或--group      显示用户所属群组的ID;-G或--groups       显示用户所属附加群组的ID; -n或--name       显示用户,所属群组或附加群组的名称; -r或--real       显示实际ID; -u或--user       显示用户ID; -help          显示帮助; -version         显示版本信息。#实例[root@localhost ~]# id rootuid=0(root) gid=0(root) groups=0(root)

用户创建

命令2

#语法 useradd [options] LOGIN[root@centos6 mail]# useradd test[root@centos6 mail]##主要选项  -c:加上备注文字,备注文字保存在passwd的备注栏中;  -d:指定用户登入时的主目录,替换系统默认值/home/
<用户名>
;  -D:变更预设值;  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效;  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。  默认值为-1;  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,  即users;  -G:指定用户所属的附加群组;  -m:自动建立用户的登入目录;  -M:不要自动建立用户的登入目录;  -n:取消建立以用户名称为名的群组;  -r:建立系统账号;  -s:指定用户登入后所使用的shell。默认值为/bin/bash;  -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该    值必须大于499;  #实例    [root@centos6 testdir]# useradd –g natasha –G work1 liaoxz   #  -g 加入主要组   -G 加入辅助组  [root@centos6 testdir]# useradd -u 520 -s /bin/csh -g root -G bin lxz  #   -u 指定uid   -s 指定登录shell     -g  指定主组    -G 指定辅助组

用户属性更改命令

命令3

#语法usermod[OPTION]login[root@centos6 testdir]# usermod -d /root/ liaoxz usermod#主要选项 -c   修改用户帐号的备注文字;  -d   修改用户登入时的目录;  -e   修改帐号的有效期限;  -f   修改在密码过期后多少天即关闭该帐号; -g   修改用户所属的群组;  -G   修改用户所属的附加群组; -l   修改用户帐号名称; -L   锁定用户密码,使密码无效; -s   修改用户登入后所使用的shell; -u   修改用户ID; -U   解除密码锁定。 #实例[root@centos6 testdir]# usermod -d /root/  -c "liaoxz" -u 521 liaoxz#-d 修改用户目录  -c  修改备注信息  -u 修改UID

 

删除用户命令

命令4

#语法userdel [options] LOGIN#主要参数   -f 强制删除用户;  -r 删除用户同时删除相关文件。#实例[root@centos6 testdir]# userdel -fr lxz

用户切换命令

命令5

#语法su [OPTION]... [-] [USER [ARG]...]#主要选项:su –                     登录式切换。直接登录到用户配置文件 属于完全切换命令;su                      非登录式切换 不会读取配置文件,不改变当前工作目录命令;su  -username -c “ls”使用指定用户在不切换的情况执行某个命令;su  -l username        相当于执 su – username 。#实例[root@centos6 testdir]# su lxz[lxz@centos6 testdir]$ pwd/testdir[lxz@centos6 testdir]$ who am i root     pts/1        2016-07-26 09:22 (10.1.250.31)[lxz@centos6 testdir]$  #使用su不添加任何选项   不变更工作目录,以及HOME,SHELL,USER,logname。不会变更PATH变量

设置用户密码

命令5

#语法passwd[OPTIONS] UserName#主要选项-d:删除密码,仅有系统管理者才能使用;-f:强制执行;-k:设置只有在密码过期失效后,方能更新;-l:锁住密码;-s:列出密码的相关信息,仅有系统管理者才能使用;-u:解开已上锁的帐号。#实例[root@localhost ~]# useradd lxz[root@localhost ~]# passwd lxzChanging password for user lxz.New password: BAD PASSWORD: The password is shorter than 8 charactersRetype new password: passwd: all authentication tokens updated successfully.#给用户设置密码[root@localhost ~]# cat /etc/shadowlxz:$6$isscheKT$T8sdUTJjZKjzvPBM6SXjLYGie7FbUTYQekpvhDHEwnyl577ZMLjkQhNXd6s2ZMJfU07.mNJyDInI6P5YnKNHq0:17015:0:99999:7:::#查看文件[root@localhost ~]# passwd -d lxzRemoving password for user lxz.passwd: Success#删除密码[root@localhost ~]# cat /etc/shadowlxz::17015:0:99999:7:::#密码passwd 添加-d选项删除密码成功

 

用户其他相关命令

#
<修改用户信息>
#语法chfn [option] [username]#实例[root@localhost ~]# chfn xiaoliaoChanging finger information for xiaoliao.Name []: li^Hchfn: control characters are not allowedName []: liaoOffice []: noneOffice Phone []: 13600110011Home Phone []: 3368663Finger information changed.[root@localhost ~]# getent passwd xiaoliaoxiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/bash#更改xiaoliao用户常用信息为备注为liao,手机号为13600110011,家用电话号为3368663#
<指定用户shell>
#语法chsh [option] [username]#实例[root@localhost ~]# chsh xiaoliaoChanging shell for xiaoliao.New shell [/sbin/nologin]: /bin/cshShell changed.[root@localhost ~]# getent passwd xiaoliaoxiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/csh#更改用户xiaoliao的shel为/bin/csh #
<查看其它用户的信息>
#语法finger [username]#实例[root@localhost Packages]# rpm -ivh finger-0.17-52.el7.x86_64.rpm warning: finger-0.17-52.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEYPreparing...                          ################################# [100%]Updating / installing...   1:finger-0.17-52.el7               ################################# [100%][root@localhost Packages]# finfind                   findfs                 findmnt                fingerfind2perl              find-jar               find-repos-of-install  [root@localhost Packages]# finger xiaoliaoLogin: xiaoliao        Name: liaoDirectory: /home/xiaoliao            Shell: /bin/cshOffice: 13600110011, 336-8663Never logged in.No mail.No Plan.[root@localhost Packages]# finger xiaohuaLogin: xiaohua         Name: Directory: /home/xiaohua             Shell: /bin/bashLast login Wed Aug  3 09:53 (CST) on pts/2No mail.No Plan.#因为系统默认没有安装该工具,所以先安装,使用finger [username] 查看到了xiaoliao,xiaohua的用户信息


组管理 

创建组

命令1

#语法groupadd [options] group#主要选项-g:指定新建工作组的id; -r:创建系统工作组,系统工作组的组ID小于500; -K:覆盖配置文件“/ect/login.defs”; -o:允许添加组ID号不唯一的工作组。#实例[root@localhost ~]# groupadd -g 518 -r liao[root@localhost ~]# cat /etc/groupliao:x:518:

 

修改组的属性

命令2

#语法groupmod [options] GROUP#主要选项-g:设置欲使用的群组识别码; -o:重复使用群组识别码; -n:设置欲使用的群组名称。#实例[root@localhost ~]# groupmod -g 528 -n liaox liao[root@localhost ~]# cat /etc/groupliaox:x:528:#修改组liao的GID为528 并改名为liaox

设置组密码

命令3

#语法gpasswd [option] group#主要选项-a:添加用户到组; -d:从组删除用户; -A:指定管理员; -M:指定组成员和-A的用途差不多; -r:删除密码; -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。#实例[root@localhost ~]# gpasswd lxzChanging the password for group lxzNew Password: Re-enter new password: [root@localhost ~]# cat /etc/gshadowlxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu7/DL0xX9zEfeZl0::#给使用gpasswd给用户lxz设置区密码[root@localhost ~]# gpasswd -a  l  lxzAdding user l to group lxzlxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu7/DL0xX9zEfeZl0::l#将l用户加入到组lxz中[root@localhost ~]# gpasswd -r lxz[root@localhost ~]# cat /etc/gshadowlxz:::l#将组lxz的密码删除

 

删除组

命令4

#语法 groupdel [options] GROUP#实例[root@localhost ~]# groupadd xiaoliao[root@localhost ~]# getent group xiaoliaoxiaoliao:x:1003:[root@localhost ~]# groupdel xiaoliao[root@localhost ~]# getent group xiaoliao[root@localhost ~]#  #新建用户xiaoliao,并将其删除

组成员更改与查看

命令5

#语法groupmems  [options] [action]#主要选项-g: –group groupname 更改组 groupname,而不是用户的组(只 root); -R: –root CHROOT_DIR chroot 到的目录动作; -a: –add 将用户 username 添加到组成员中; -d: –delete username 从组的成员中删除用户; -h: –help 显示此帮助信息并推出; -p: –purge 从组中移除所有成员; -l: –list 列出组中的所有成员。 #实例[root@localhost ~]# useradd xiaoliao[root@localhost ~]# groupadd xiaoliaogroup[root@localhost ~]# groupmems -g xiaoliaogroup -a xiaoliao[root@localhost ~]# getent group xiaoliaogroupxiaoliaogroup:x:1004:xiaoliao#将用户xiaoliao加到组xiaoliaogroup [root@localhost ~]# groupmems -g usergroup -l xiaowang  xiaoqiang  xiaohua  xiaoliu#列出组usergroup的成员

组常用基本命令

命令6

#临时切换基本组命令#语法newgrp [-] [group]#实例[root@localhost ~]# newgrp usergroup[root@localhost ~]# iduid=0(root) gid=1009(usergroup) groups=1009(usergroup),0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[root@localhost ~]# exit[root@localhost ~]# iduid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023#临时将root用户添加到usergrou组,当用户退出后再登录失效

命令7

#查看用户所属组列表#语法groups [OPTION]... [USERNAME]...#实例[root@localhost ~]# groups xiaoliaoxiaoliao : xiaoliao xiaoliaogroup usergroup #查看用户xiaoliao所属组列表