前言
为什么创建用户和组
用户和组的分类
用户和组主要配置文件
用户管理
组管理
前言
资源分派的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,描述信息等)
[[email protected] testdir]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin #以上是文件部分内容
#下面对用户属性文件格式做一个了解 root:x:0:0:root:/root:/bin/bash root #用户名 :x #用户密码(由于一些安全因素,此处不记录密码) :0 #用户UID :0 #用户GID :root #用户的一些描述信息(空就表示没有) :/root #用户家目录 :/bin/bash #用户登录shell
2.用户密码文件
/etc/shadow
用户存放密码及其其他属性的的文本文件
#以下是用户密码属性文件部分内容 [[email protected] testdir]# cat /etc/shadow root:$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/passwd root:x:0:liaoxz root 组名 :x 组密码(因为安全因素这里不设定密码) :0 组id(组的标识号码) :liaoxz 以当前组作为附加组的用户列表
4.组密码文件
/etc/gshadow
存储组密码的相关属性(包括组的密码,管理员等)
[[email protected] mail]# cat /etc/gshadow bin:::bin,daemon bin 群组名 :: 群组密码(空为没有) :: 组管理员列表(空为没有) bin,daemon 以当前组作为附加组的用户列表
5.其它文件操作命令
#直接打开用户属性文件命令 [[email protected] ~]# vipw root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync #直接打开组属性文件命令 [[email protected] ~]# vigr root: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:liaoxz cdrom:x:11: mail:x:12:postfix #检查用户密码文件的完整性命令 #语法 pwck [options] [passwd [ shadow ]] #主要选项 -q:只显示错误信息,警告不显示 -s:按id排序 -r:只读方式检查 [[email protected] ~]# pwck user ‘ftp‘: directory ‘/var/ftp‘ does not exist user ‘avahi-autoipd‘: directory ‘/var/lib/avahi-autoipd‘ does not exist user ‘saslauth‘: directory ‘/run/saslauthd‘ does not exist user ‘pulse‘: directory ‘/var/run/pulse‘ does not exist pwck: no changes #检查用户组及密码文件的完整性 #语法 grpck [options] [passwd [ shadow ]] #主要选项 -q:只显示错误信息,警告不显示; -s:按id排序; -r:只读方式检查。 [[email protected] ~]# grpck
用户管理
查看用户id
命令1
#语法 id [OPTION]... [USERNAME] #选项 -g或--group 显示用户所属群组的ID; -G或--groups 显示用户所属附加群组的ID; -n或--name 显示用户,所属群组或附加群组的名称; -r或--real 显示实际ID; -u或--user 显示用户ID; -help 显示帮助; -version 显示版本信息。 #实例 [[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root)
用户创建
命令2
#语法 useradd [options] LOGIN [[email protected] mail]# useradd test [[email protected] 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; #实例 [[email protected] testdir]# useradd –g natasha –G work1 liaoxz # -g 加入主要组 -G 加入辅助组 [[email protected] testdir]# useradd -u 520 -s /bin/csh -g root -G bin lxz # -u 指定uid -s 指定登录shell -g 指定主组 -G 指定辅助组
用户属性更改命令
命令3
#语法 usermod[OPTION]login [[email protected] testdir]# usermod -d /root/ liaoxz usermod #主要选项 -c 修改用户帐号的备注文字; -d 修改用户登入时的目录; -e 修改帐号的有效期限; -f 修改在密码过期后多少天即关闭该帐号; -g 修改用户所属的群组; -G 修改用户所属的附加群组; -l 修改用户帐号名称; -L 锁定用户密码,使密码无效; -s 修改用户登入后所使用的shell; -u 修改用户ID; -U 解除密码锁定。 #实例 [[email protected] testdir]# usermod -d /root/ -c "liaoxz" -u 521 liaoxz #-d 修改用户目录 -c 修改备注信息 -u 修改UID
删除用户命令
命令4
#语法 userdel [options] LOGIN #主要参数 -f 强制删除用户; -r 删除用户同时删除相关文件。 #实例 [[email protected] testdir]# userdel -fr lxz
用户切换命令
命令5
#语法 su [OPTION]... [-] [USER [ARG]...] #主要选项: su – 登录式切换。直接登录到用户配置文件 属于完全切换命令; su 非登录式切换 不会读取配置文件,不改变当前工作目录命令; su -username -c “ls”使用指定用户在不切换的情况执行某个命令; su -l username 相当于执 su – username 。 #实例 [[email protected] testdir]# su lxz [[email protected] testdir]$ pwd /testdir [[email protected] testdir]$ who am i root pts/1 2016-07-26 09:22 (10.1.250.31) [[email protected] testdir]$ #使用su不添加任何选项 不变更工作目录,以及HOME,SHELL,USER,logname。不会变更PATH变量
设置用户密码
命令5
#语法 passwd[OPTIONS] UserName #主要选项 -d:删除密码,仅有系统管理者才能使用; -f:强制执行; -k:设置只有在密码过期失效后,方能更新; -l:锁住密码; -s:列出密码的相关信息,仅有系统管理者才能使用; -u:解开已上锁的帐号。 #实例 [[email protected] ~]# useradd lxz [[email protected] ~]# passwd lxz Changing password for user lxz. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. #给用户设置密码 [[email protected] ~]# cat /etc/shadow lxz:$6$isscheKT$T8sdUTJjZKjzvPBM6SXjLYGie7FbUTYQekpvhDHEwnyl577ZMLjkQhNXd6s2ZMJfU07.mNJyDI nI6P5YnKNHq0:17015:0:99999:7::: #查看文件 [[email protected] ~]# passwd -d lxz Removing password for user lxz. passwd: Success #删除密码 [[email protected] ~]# cat /etc/shadow lxz::17015:0:99999:7::: #密码passwd 添加-d选项删除密码成功
用户其他相关命令
#<修改用户信息> #语法 chfn [option] [username] #实例 [[email protected] ~]# chfn xiaoliao Changing finger information for xiaoliao. Name []: li^H chfn: control characters are not allowed Name []: liao Office []: none Office Phone []: 13600110011 Home Phone []: 3368663 Finger information changed. [[email protected] ~]# getent passwd xiaoliao xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/bash #更改xiaoliao用户常用信息为备注为liao,手机号为13600110011,家用电话号为3368663 #<指定用户shell> #语法 chsh [option] [username] #实例 [[email protected] ~]# chsh xiaoliao Changing shell for xiaoliao. New shell [/sbin/nologin]: /bin/csh Shell changed. [[email protected] ~]# getent passwd xiaoliao xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/csh #更改用户xiaoliao的shel为/bin/csh #<查看其它用户的信息> #语法 finger [username] #实例 [[email protected] 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: NOKEY Preparing... ################################# [100%] Updating / installing... 1:finger-0.17-52.el7 ################################# [100%] [[email protected] Packages]# fin find findfs findmnt finger find2perl find-jar find-repos-of-install [[email protected] Packages]# finger xiaoliao Login: xiaoliao Name: liao Directory: /home/xiaoliao Shell: /bin/csh Office: 13600110011, 336-8663 Never logged in. No mail. No Plan. [[email protected] Packages]# finger xiaohua Login: xiaohua Name: Directory: /home/xiaohua Shell: /bin/bash Last login Wed Aug 3 09:53 (CST) on pts/2 No mail. No Plan. #因为系统默认没有安装该工具,所以先安装,使用finger [username] 查看到了xiaoliao,xiaohua的 用户信息
组管理
创建组
命令1
#语法 groupadd [options] group #主要选项 -g:指定新建工作组的id; -r:创建系统工作组,系统工作组的组ID小于500; -K:覆盖配置文件“/ect/login.defs”; -o:允许添加组ID号不唯一的工作组。 #实例 [[email protected] ~]# groupadd -g 518 -r liao [[email protected] ~]# cat /etc/group liao:x:518:
修改组的属性
命令2
#语法 groupmod [options] GROUP #主要选项 -g:设置欲使用的群组识别码; -o:重复使用群组识别码; -n:设置欲使用的群组名称。 #实例 [[email protected] ~]# groupmod -g 528 -n liaox liao [[email protected] ~]# cat /etc/group liaox:x:528: #修改组liao的GID为528 并改名为liaox
设置组密码
命令3
#语法 gpasswd [option] group #主要选项 -a:添加用户到组; -d:从组删除用户; -A:指定管理员; -M:指定组成员和-A的用途差不多; -r:删除密码; -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。 #实例 [[email protected] ~]# gpasswd lxz Changing the password for group lxz New Password: Re-enter new password: [[email protected] ~]# cat /etc/gshadow lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu 7/DL0xX9zEfeZl0:: #给使用gpasswd给用户lxz设置区密码 [[email protected] ~]# gpasswd -a l lxz Adding user l to group lxz lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu 7/DL0xX9zEfeZl0::l #将l用户加入到组lxz中 [[email protected] ~]# gpasswd -r lxz [[email protected] ~]# cat /etc/gshadow lxz:::l #将组lxz的密码删除
删除组
命令4
#语法 groupdel [options] GROUP #实例 [[email protected] ~]# groupadd xiaoliao [[email protected] ~]# getent group xiaoliao xiaoliao:x:1003: [[email protected] ~]# groupdel xiaoliao [[email protected] ~]# getent group xiaoliao [[email protected] ~]# #新建用户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 列出组中的所有成员。 #实例 [[email protected] ~]# useradd xiaoliao [[email protected] ~]# groupadd xiaoliaogroup [[email protected] ~]# groupmems -g xiaoliaogroup -a xiaoliao [[email protected] ~]# getent group xiaoliaogroup xiaoliaogroup:x:1004:xiaoliao #将用户xiaoliao加到组xiaoliaogroup [[email protected] ~]# groupmems -g usergroup -l xiaowang xiaoqiang xiaohua xiaoliu #列出组usergroup的成员
组常用基本命令
命令6
#临时切换基本组命令 #语法 newgrp [-] [group] #实例 [[email protected] ~]# newgrp usergroup [[email protected] ~]# id uid=0(root) gid=1009(usergroup) groups=1009(usergroup),0(root) context=unconfined_u:unconf ined_r:unconfined_t:s0-s0:c0.c1023 [[email protected] ~]# exit [[email protected] ~]# id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s 0:c0.c1023 #临时将root用户添加到usergrou组,当用户退出后再登录失效
命令7
#查看用户所属组列表 #语法 groups [OPTION]... [USERNAME]... #实例 [[email protected] ~]# groups xiaoliao xiaoliao : xiaoliao xiaoliaogroup usergroup #查看用户xiaoliao所属组列表