计算机中用户的作用:主要实现资源分享,在分享资源同时涉及到资源安全,又新增用户密码认证,使其资源由特定权限的用户或用户组才可访问。
linux系统中用户和组分类:
用户分为:管理员用户(root)、普通用户和系统用户(对守护进程获取资源进行权限分配,也就是在系统启动时或需要启动某进程服务时需要的用户,也称为“伪用户”)
用户组分为:管理员组、普通用户组,当然在创建用户时会同时创建一个同用户名的基本组,因此伪用户也有着自己的基本组。另外用户组针对用户来说还有一个“附加组”,当然也是普通用户组
并且同时在创建用户后会生成唯一标识用户的uid号,当然用户组也是有gid,管理员uid和gid为“0",因此如果在将一个用的uid和gid改为"0"那么这用户即可提升为系统管理员。在centos6中一般uid从1-499区间表示为"系统用户",uid为500+的用户为普通用户‘。
useradd命令:create a new user or update default new user information
【功能】创建一个新的用户或更新用户原来的信息
【语法】
useradd [option] USERNAME
【常用选项】
-u: [UID_MIN,UID_MAX] 定义在/etc/login.dnfs/ -g:指定用户的基本组,可为组名,也可以是GID -c:指定用户的属性信息 -d:指定用户的家目录,但是如果指定与用户名不同的家目录,指定时该目录应该不事先存在 -s:指定用户登录系统默认shell -G:指定用户的附加组,不同附加组用逗号隔开即可,一个用户可以属于多个附加组,组必须事先存在 -r:创建系统用户 centos6: 1-499 centos7:1-999
【配置文件】/etc/passwd 和 /etc/shadow
/etc/passwd文件以":"做分隔符将文件每行数据分为"7"段,而每行代表一个用户信息。 root:x:0:0:root:/root:/bin/bash 这些信息分别表示: 用户名:密码占位符:uid:gid:用户资料(电话号码,年龄等):用户属主目录:用户登录系统默认shell /etc/shadow:文件以":"做分隔符将文件每行数据分为"9"段,每行代表一个用户密码安全信息 root:$6$tlIcIKYX0qGDqZF5$QtTrzgTGF1cSp2Gf5.tWUGh7mR9JLNE32OJVcNVctD0x3Lv/YEqua8YY.En5xuEp4LiJAYdQ2i6FQahVuEynq.:16912:0:99999:7::: 1)用户名 2)加密的密码 3)上次更改密码的日期(从1970-1-1开始) 4)最短密码期限(按天计算,0 = 无最短期限) 5)最长密码期限(按天计算) 6)密码警告期限(按天计算,0 = 未指定警告) 7)密码非活动期限(按天计算) 8)账号到期时间(从1970-1-1开始) 9)保留域
【实例】useradd创建用户
[[email protected] ~]# useradd -u 505 -c "this is testuser" testuser1 [[email protected] ~]# tail -n 1 /etc/passwd testuser1:x:505:505:this is testuser:/home/testuser1:/bin/bash [[email protected] ~]# tail -n 1 /etc/shadow testuser1:!!:16913:0:99999:7::: //密码加密为显示为"!!"表示无法登录系统,没设置密码
usermod命令:modify a user account
【功能】修改用户基本信息,
【语法】
usermod [options] USERNAME
【常用选项】
当然可以直接改/etc/shadow文件,不建议 -e:修改用户账号有效期限 -u:修改用户uid -g:修改用户基本组 -c:修改用户的属性信息 -d:修改用户的家目录,但是如果指定与用户名不同的家目录,指定时该目录应该不事先存在 -s:修改用户登录系统默认shell -G:修改用户的附加组,不同附加组用逗号隔开即可,一个用户可以属于多个附加组,组必须事先存在 -l:修改用户名称, -L:锁定用户密码,使其用户密码无效,无法登录系统 -U:解除用户密码锁定
【实例】修改用户名称、默认shell、用户属性信息
[[email protected] ~]# tail -n 2 /etc/passwd gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash //原来用户信息 testuser1:x:505:505:this is testuser:/home/testuser1:/bin/bash [[email protected] ~]# usermod -s "/bin/tcsh" -l user1 -c "tell 110" testuser1 [[email protected] ~]# tail -n 2 /etc/passwd gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh //修改后用户信息
passwd命令:update user‘s authentication tokens
【功能】对用户/etc/shadow文件管理,类似usermod命令
【语法】
passwd [options] USERNAME
【常用选项】
-l:锁定用户 -u:解锁用户 -n mindays:指定用户密码最短使用期限,表示用户修改密码后 必须#天后才能再次修改密码 -x maxdays:最大使用期限,表示用户修改密码#天后必须修改密码,否则不可以登录系统 -w warndays:提前多少天前警告 表示用户密码最大期限到期的前#天提醒用户修改密码 -i inactivedays:非活动期限,表示用户还可以登录系统 -e expire:YY-MM-DD 设置密码过期期限 --stdin: 从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME 表示echo出来的直接输入给passwd --stdin 设置USERNAME 密码,但是必须显示的 可以使用 管道送给/dev/null bit buckets黑洞 于此对应的有 /dev/zero 一直吐零
【实例】为用户添加登录认证密码
//为用户添加密码方法一 [[email protected] ~]# tail -n 2 /etc/shadow gentoo:!!:16913:0:99999:7::: //密码加密位显示"!!"表示无密码并不可登录系统 user1:!!:16913:0:99999:7::: [[email protected] ~]# passwd gentoo Changing password for user gentoo. New password: //输入自己需要的密码即可,普通用户为自己设置密码要求复杂性 BAD PASSWORD: it is based on a dictionary word Retype new password: //再次输入密码, passwd: all authentication tokens updated successfully. //为用户设置密码方法二,并查看刚才设置密码是否成功 //不建议除非是批量新建用户时,并写脚本自动生成时,否则建议别使用,万一谁查看过你的历史命令或者是站在你后面可怎么办哦, [[email protected] ~]# echo "[email protected]" | passwd --stdin user1 Changing password for user user1. passwd: all authentication tokens updated successfully. [[email protected] ~]# tail -n 2 /etc/shadow gentoo:$6$JQGxgi3e$XZiFTUa1lQVrCrwfHw6m4cWVJQ4ktmH7QKu8aXnsAJyNzdikosrGQxT4pMilsmVo1BDlXw0aLgQBcJJL9/sYI1:16913:0:99999:7::: user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:7:::
userdel命令: delete a user account and related files
【功能】常用删除用户
【语法】
userdel [option] USERANME
【常用选项】
-r:表示在删除用户时,同时删除用户属主目录(小心谨慎)
【实例】在系统中删除gentoo用户并且删除gentoo的属主目录
[[email protected] ~]# ls /home gentoo lisi testuser1 zhangsan //在home目录下有gentoo的属主目录 [[email protected] ~]# tail -n 2 /etc/passwd gentoo:x:504:504:xxxxxxxxxxxxx:/home/gentoo:/bin/bash //gentoo的用户 user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh [[email protected] ~]# userdel -r gentoo //删除gentoo用户并属主目录 [[email protected] ~]# !ls ls /home lisi testuser1 zhangsan //无gentoo属主目录 [[email protected] ~]# tail -n 2 /etc/passwd //也无gentoo用户 lisi:x:503:503::/home/lisi:/bin/bash user1:x:505:505:tell 110:/home/testuser1:/bin/tcsh
groupadd命令:create a new group
【功能】在用户需要指定附加组时,而附加组是必须事先存在才可指定,那么在创建用户指定用户附加组之前就必须先创建"组"。
【语法】
groupadd [options] GROUPNAME
【常用选项】
-g:创建组时指定gid -r:创建系统工作组,gid位于1-499区间
【实例】创建新组
//创建一个组名为testgroup,gid为534, [[email protected] ~]# groupadd -g 534 testgroup [[email protected] ~]# tail -n 2 /etc/group test:x:555: testgroup:x:534: //创建默认系统工作组,gid位于1-399区间 [[email protected] ~]# groupadd -r systemgroup [[email protected] ~]# tail -n 2 /etc/group testgroup:x:534: systemgroup:x:498:
gpasswd命令:administer /etc/group and /etc/gshadow
【功能】管理/etc/group,/etc/gshadow文件,当对组设置密码时,可实现当用户不属于改组的成员,可通过gpasswd设置的密码,进行组切换,操作完成退出即可,不常用
【语法】
gpasswd [options] GROUPNAME
【常用选项】
-a user: 将user添加至指定组中,附加组
-d user:删除用户user从附加组中移除
-A user1,user2……,设置有管理权限的用户列表
newgroup:临时切换组
pwck:检查用户认证信息完成性问题
【实例1】添加删除用户附加组
[[email protected] ~]# id user1 uid=505(user1) gid=505(testuser1) groups=505(testuser1) [[email protected] ~]# gpasswd -a user1 test //添加test组为用户user1的附加组 Adding user user1 to group test [[email protected] ~]# id user1 uid=505(user1) gid=505(testuser1) groups=505(testuser1),555(test) [[email protected] ~]# gpasswd -d user1 test //移除user1的附加组test Removing user user1 from group test [[email protected] ~]# id user1 uid=505(user1) gid=505(testuser1) groups=505(testuser1)
groupdel命令: delete a group
【功能】删除系统中用户组
【语法】
groupdel GROUPNAME
【实例】删除系统中组
[[email protected] ~]# tail -n 2 /etc/group testgroup:x:534: systemgroup:x:498: [[email protected] ~]# groupdel systemgroup [[email protected] ~]# tail -n 2 /etc/group test:x:555: testgroup:x:534:
chage命令:change user password expiry information
【功能】修改用户/etc/shadow文件字段信息
【语法】
chage [options] USERNAME
【常用选项】
-d, --lastday LAST_DAY 修改最近一次修改密码时间 -E, --expiredate EXPIRE_DATE 有效时间 -I, --inactive INACTIVE 非活动期限 -m, --mindays MIN_DAYS 最小使用天数 -M, --maxdays MAX_DAYS 最大使用天数 -W, --warndays WARN_DAYS 提前警告时间
【实例】修改用户密码过期"提前警告天数"
[[email protected] ~]# tail -n 1 /etc/shadow user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:7::: //默认为7天 [[email protected] ~]# chage -W 6 user1 [[email protected] ~]# tail -n 1 /etc/shadow user1:$6$b5rZKPL1$3aWfNwGVPz.VWN67SZN58sHLt4.j/RPnk7C/eXGL0qFHPxwqYJTYA0p2scr6zdTi7cpfiIhqkAmRqUNFMvLZE1:16913:0:99999:6::: //已经修改为6天
更多详细信息:可google、百度或参与培训