1. 用户是什么,权限又是什么
1.1 当我们把linux系统想象成是一家提供诸多服务的俱乐部的时候,那么用户就相当于是这个俱乐部的会员,会员们在通过一系列的身份核实后,才可以进入俱乐部并在里面享受指定的服务,这个可以称为身份验证(Authencattion),进入linux系统时根据用户的凭据或(账号),来验证此用户是否是一个合法的用户,合法则可以进入系统,否则拒绝登录。
1.2 俱乐部根据会员的各种身份标识确定会员可以享受哪些服务的权益,这个可以称作为授权(Authorzation),linux系统中根据进入系统用户的身份给予相应的使用系统资源的权限。
1.3 在享受提供的服务的过程中,俱乐部会对此次的行为进行一些核实,看看会员是否有超出利益范围之外的服务,并对会员的服务项目进行记录。linux系统同样会对用户的行为进行记录,并进行审计,以免有用户超出自己的权利之外的操作,称为审计(Accounting)。
linux系统通过验证,授权,审计对用户的行为进行合理的管理。
2. 用户管理
2.1.用户如何标识
2.1.1 计算机容易识别的是数字,计算机的使用者容易使用的是有意义的字符串,当用户使用账号登录系统时,计算机会将用户名通过文件映射为相应的数字编号,这个和用户名对应的数字编号在系统中成为UID,linux系统使用UID来辨识每一个系统中的用户。
2.1.2在系统中记录用户账户及相关信息的文件:
2.1.2.1 /etc/passwd记录用户的用户名、UID、基本组等信息,如下图,为/etc/passwd文件的部分内容:
此文件每一行代表一个用户,不同的属性的字段之间使用分号(:)隔开,每个字段的含义如下:
登录名:密码字段:UID:GID:用户描述:主目录:用户默认shell
2.1.2.2 /etc/shadow 记录用户密码及相关属性,如下图为文件的部分内容:
文件中每字段的含义:
账号:加密保存密码:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
2.1.3 用户的分类
管理员用户(uid = 0)
普通用户:
系统用户
系统运行服务使用的用户,此类用户不可登录系统,没有home目录,没有默认shell(视系统的不同UID的范围不同,centos6(1-499)centos(1-999))
登录用户
使用其他未被分配的UID,逐个对用户进行分配
2.1.4 密码复杂性策略
(1)、使用数字、小写字母、大写字母、特殊字符四类中至少三类;
(2)、足够长;
(3)、使用随机密码;
(4)、定期更换;
2.2 用户管理相关命令
2.2.1 useradd 添加用户
useradd:创建用户
useradd [options] LOGIN
useradd -D [options]
-r: 创建系统用户
-u UID: 指定UID;
-g GID: 指定用户所属基本组,此组必须事先存在
-c ‘COMMENT‘:
-d /PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制;/etc/skel
-s SHELL:设定用户的默认shell;
cat /etc/shells
-G GID,...:指定所属的附加组;
-M: 不给用户创建家目录;
2.2.2 userdel 删除用户
userdel [-r] USERNAME
-r:删除用户的同时删除其家目录;
2.2.3 passwd 设置用户密码
passwd [OPTION] [UserName]
-l: lock user
-u: unlock user
-n mindays: 最短使用期限;
-x maxdays:默认为99999天;
-w warndays:
-i inactivedays:
--stdin:从标准输出接收用户密码;
echo ‘centos‘ | passwd --stdin centos
2.2.4 usermod 修改用户属性
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
-s SHELL
-c ‘COMMENT‘
-d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
-l LOGIN:
-L:lock user
-U: unlock user
2.2.5 id 查看用户相关的id信息
id:查看用户相关的id信息;
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: NAME
3. 组管理
3.1 组的标识
为了分层级管理会员的权益,俱乐部会对会员进行等级管理,通常会分成,普通会员、金卡会员、钻石会员等等,同一等级的会员有同等的权益,在linux系统中也有这样一个容器,称为组(group),系统为了能够辨识组的身份同样进行编号管理称为(GID),在同一个组中的用户,会继承组的权限。
3.2 组的分类
linux系统在创建用户的时候默认会创建一个与用户名相同的组,称为用户的基本组,用户在系统中除了属于基本组,还可以附加至其他的组,这样能继承多个组的权限。
linux的组按照使用的不同也可以分为,管理员组及普通用户组
3.3 组管理的相关命令
原文地址:http://velen38.blog.51cto.com/911313/1689050