unix的元年为1970年的1月1日
现行的各个版本的系统,无论是win还是linux大都遵循3A用户及权限管理机制即(Authencattion 身份认证机制、Authorzation 授权、Accounting 审计)
如图,当用户输入用户名密码后,系统通过查找passwd文件中相对应的UID,GID,以及所属组的信息,确认用户存在与否,如果存在,那么登陆账户,执行操作,如果没有,那么重新登陆。
[root@test1 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
以上内容为我passwd中相关root的信息,其从左至右依次为username,password,uid,gid,GECOS,homefile,shell。
username 不用多说,基本上都知道,根据角色,权限都会用不同的username
password 经过加密的密码文件信息,在Centos5.x及以下用到的加密方式为md5,但在Centos6及 以上好像用的加密方式是sha512,并保存在/etc/shadow文件下
UID 用户的ID号码,机器通过ID号码查找你的用户名及密码信息是否正确,个数为0-65535个
其中普通用户:1-60000
系统用户:
CentOS6: 1-499
CentOS7:1-999
登录用户:
CentOS6: 500+
CentOS7: 1000+
GID GroupName组ID,用于分配用户的权限及角色,它的主要配置文件为/etc/gshadow 和/etc/group,一些公司的邮件系统基本上都是使用的这个来区分职能,linux对于组的分 配:
管理员组:0
普通组:
Centos6.X:1-499
Centos7.X:1-999
登陆用户:
Centos6.X:500+
Centos7.X:1000+
GECOS 用户的一些详细信息
HOMEFILE 家目录,存放一些个人角色用户的文件
SHELL 用户默认shell
注:/etc/shadow文件管理的是用户的密码信息,为单向不可逆文件,如以下代码文件:
其格式为:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
他的数据分别以":"或者"$"间隔开来
用户和组管理的相关命令:
useradd、usermod、passwd、userdel
groupadd、groupmod、gpasswd、groupdel
chage, chsh, chfn
id, w, who, whoami
su
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: 不给用户创建家目录;
groupadd:创建组
groupadd [OPTIONS] GROUPNAME
-g GID: 指明组ID;
-r: 创建系统组;
[root@test1 ~]# groupadd database
[root@test1 ~]# groupadd sql
id:查看用户相关的id信息;
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: NAME
[root@test1 ~]# id -G Oracle
3000 501 502
su:switch user, 切换用户或以其它用户的身份执行命令;
切换方式:
su USERNAME: 非完全切换;非登录式切换
su - USERNAME或su -l USERNAME: 完全切换;登录式切换
仅以指定用户的身份执行指定的命令:
su - USERNAME -c 'COMMAND'
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
[root@test1 ~]# useradd nicai
[root@test1 ~]# usermod -l Oralce nicai
[root@test1 ~]# cat /etc/passwd
Oracle:x:3000:3000::/home/database:/bin/bash
Oralce:x:3001:3001::/home/nicai:/bin/bash
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
userdel:删除用户
userdel [-r] USERNAME
-r:删除用户的同时删除其家目录;
groupmod: 组属性修改
groupmod [OPTION] GROUPNAME
-n GROUP_NAME
-g GID
gpasswd:设定组密码
newgrp:切换基本组为指定的组
groupdel:删除组
chage:修改用户账号及密码的属性
chage [OPTION]... LOGIN
其它命令:chfn, chsh, finger, whoami, who
例如:
创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database;
[root@test1 ~]# useradd Oracle -G database,sql -u 3000 -d /home/database