用户管理

用户管理

欢迎来到 来到大浪涛天的博客

1. 资源分派:

  • Authentication:认证
  • Authorization:授权
  • Accouting:审计
  • Audition
  • token, identity(username/password)

2. 用户

  • 管理员:root, 0
  • 普通用户:1-65535
  • 系统用户:1-499, 1-999
    对守护进程获取资源进行权限分配;
  • 登录用户:500+, 1000+
  • 交互式登录;

3. Linux组:Groupname/GID

  • 管理员组:root, 0
  • 普通组:
  1. 系统组:1-499, 1-999
  2. 普通组:500+, 1000+
  3. Linux组的类别:
    • 用户的基本组(主组):
      组名同用户名,且仅包含一个用户:私有组
    • 用户的附加组(额外组):

4. 安全上下文

运行中的程序:进程 (process)

以进程发起者的身份运行:
root: cat tom: cat

进程所能够访问的所有资源的权限取决于进程的发起者的身份;

5. Linux用户和组相关的配置文件:

		/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
		/etc/group:组及其属性信息;
		/etc/shadow:用户密码及其相关属性;
		/etc/gshadow:组密码及其相关属性;

	/etc/passwd:
		name:password:UID:GID:GECOS:directory:shell

		用户名:密码:UID:GID:GECOS:主目录:默认shell

	/etc/group:
		group_name:password:GID:user_list

		组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)

	/etc/shadow
		用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
  • 加密机制:
    加密:明文--> 密文
    解密:密文--> 明文
				
				单向加密:提取数据指纹
					md5: message digest, 128bits
					sha1: secure hash algorithm, 160bits
					sha224: 224bits
					sha256: 256bits
					sha384: 384bits
					sha512: 512bits

					雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变;
					定长输出:
  • 密码的复杂性策略:
  1. 使用数字、大写字母、小写字母及特殊字符中至少3种;
  2. 足够长
  3. 使用随机密码
  4. 定期更换;不要使用最近曾经使用过的密码;

6. 用户和组相关的管理命令:

6.1 useradd

用户创建:useradd
			useradd [options] LOGIN
				-u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
				-g GID:指明用户所属基本组,可为组名,也可以GID;
				-c "COMMENT":用户的注释信息;
				-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
				-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
				-G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
				-r: 创建系统用户
					CentOS 6: ID<500
					CentOS 7: ID<1000
默认值设定:/etc/default/useradd文件中
				useradd -D 
					-s SHELL

6.2 groupadd

组创建:groupadd
		groupadd [OPTION]... group_name

			-g GID: 指明GID号;[GID_MIN, GID_MAX]
			-r: 创建系统组;
				CentOS 6: ID<500
				CentOS 7: ID<1000

6.3 id

查看用户相关的ID信息:id
		id [OPTION]... [USER]
			-u: UID
			-g: GID
			-G: Groups
			-n: Name

6.4 su

切换用户或以其他用户身份执行命令:su
		su [options...] [-] [user [args...]]

			切换用户的方式:
				su UserName:非登录式切换,即不会读取目标用户的配置文件;
				su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;

				Note:root su至其他用户无须密码;非root用户切换时需要密码;

			换个身份执行命令:
				su [-] UserName -c 'COMMAND'

			选项:
				-l:“su -l UserName”相当于“su - UserName”

6.5 usermod

用户属性修改:usermod
		usermod [OPTION] login

			-u UID: 新UID
			-g GID: 新基本组
			-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
			-s SHELL:新的默认SHELL;
			-c 'COMMENT':新的注释信息;
			-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
			-l login_name: 新的名字;

			-L: lock指定用户
			-U: unlock指定用户

			-e YYYY-MM-DD: 指明用户账号过期日期;
			-f INACTIVE: 设定非活动期限;

6.6 passwd

给用户添加密码:passwd
		passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
		passwd: 修改自己的密码;

			常用选项:
				-l: 锁定指定用户
				-u: 解锁指定用户

				-n mindays: 指定最短使用期限
				-x maxdays:最大使用期限
				-w warndays:提前多少天开始警告
				-i inactivedays:非活动期限;

				--stdin:从标准输入接收用户密码;
					echo "PASSWORD" | passwd --stdin USERNAME

				Note: /dev/null, bit buckets
				      /dev/zero, 

6.7 userdel

删除用户:userdel
		userdel [OPTION]... login
			-r: 删除用户家目录;

6.8 groupmod,groupdel,gpasswd,newgrp

组属性修改:groupmod
		groupmod [OPTION]... group
			-n group_name: 新名字
			-g GID: 新的GID;
组删除:groupdel
		groupdel GROUP
组密码:gpasswd
		gpasswd [OPTION] GROUP

			-a user: 将user添加至指定组中;
			-d user: 删除用户user的以当前组为组名的附加组

			-A user1,user2,...: 设置有管理权限的用户列表

		newgrp命令:临时切换基本组;
			如果用户本不属于此组,则需要组密码;

6.9 chage

修改用户属性:chage
		chage [OPTION]... LOGIN
			-d LAST_DAY
			-E, --expiredate EXPIRE_DATE
			-I, --inactive INACTIVE
			-m, --mindays MIN_DAYS
			-M, --maxdays MAX_DAYS
			-W, --warndays WARN_DAYS
原文地址:https://www.cnblogs.com/chacha51/p/13764900.html