前言
为什么创建用户和组
用户和组的分类
用户和组主要配置文件
用户管理
组管理
前言
资源分派的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的用户信息 查看其它用户的信息> 指定用户shell> 修改用户信息>
组管理
创建组
命令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所属组列表