用户、组和权限
资源分派
Authentication 认证
Authorization 授权
Accouting|Audition 审计
认证:验证用户的身份,验证你是张三 还是李四
授权:确认了身份之后才考虑授权,给用户大的权限还是小的权限,允许你还是拒绝你。
权限分为很多种,比如说文件是否可读、可写。
审计:所谓审计就是监控,可以对系统的使用情况做日志。
认证
在linux中通常用用户名和口令来验证用户的身份。
用户user
令牌 token identity
Linux用户 username/UID
管理员 root 0
普通用户 1-65535
系统用户 1-499(CENTOS6) 1-999对守护进程获取资源进行权限分配
登录用户 500(CEENTOS6) + , 1000+ 交互式登录
在计算机中,如果你通过了验证,用户就拿到了令牌,系统就认为你是某个人,然后权限就有了,就可以去访问各种资源了。
令牌如何得到呢?需要用户在登录的时候输入正确的用户名和密码来实现的。
系统用户启动就会运行,不需要登录。
组 group
Linux组 groupname/GIO
管理员组 root 0
普通组: 500+ 1000+
系统组 1-499 1-999
在linux中允许组和用户同名,这跟windows中是有差别的。
Security context 安全上下文
运行中的程序:进程 process
以进程发起者的身份运行:
Root /bin/cat
Mage /bin/cat
进程所能访问的资源的权限取决于进程的运行者的身份
在linux中,当用户去运行程序的时候,用root登录,运行/bin/cat程序,那么该命令再去访问某些文件,但是该文件设置了访问权限。用户就会收到该文件的控制。当用户去访问该文件的时候,该文件的权限也是这个访问用户的权限。
谁去运行一个程序,那么得到的权限就是由这个人而决定的。而和进程本身无关。
用户通过进程来访问某个文件的时候,用户得到的权限是由进程运行者的身份来决定的。
Primary group 主组
用户的主要组(主组):
用户必须属于一个且只有一个主组。组名同用户名,且仅包含一个用户。
一个账号可以属于多个组,但是用户必须要属于一个组,那就是主组。事实上当用户在创建的时候会自动的指定一个组做主组,而且这个主组是必须有的。其中一个是主组,那么其他组自然也就成了辅助组。
Secondary group 附加组
一个用户可以属于零个或多个辅助组
辅助组是可以有也可以没有的。主组是必须要有的。并且有且只有一个。
主组可以理解成一个人的身份。
如何去查看一个用户属于什么组呢?
用“id”命令查看
在linux中默认主组的用户名和用户是同名的。换句话说就是创建一个张三,就会有一个张三组。
用户和组的配置文件
/etc/passwd 用户及其属性信息(名称 UID 主组ID)
Username :x: uid : gid :comment : home : shell
/etc/group 组及其属性信息
Groupname : x : gid :groupmember
/etc/shadow 用户密码及其相关属性
Groupname : password : password age : min :max :warn : inactive : usernameage :
/etc/gshadow 组密码及其相关属性
Groupname : password : groupadmin : groupmember
前两个是关于用户和组的配置文件
后两个是关于用户和组的口令文件
Passwd
我们现在讲的passwd是一个文本文件。而不是二进制可执行程序。只不过名字相同罢了。
是一个文本文件,里面描述了用户的登录账号和用户信息。对于所有人都有读的权限。但是对于其他用户是不能写的,只有超级管理员才能写。
用cat /etc/passwd 查看用户及属性信息
Pwunconv 显示用户口令,不过是加密的
Pwconv 隐藏用户口令
zzd:x :1000 :1000 :zzd :/home/zzd : /bin/bash
Zzd 用户名
X 口令
1000 UID
1000 所属主组的ID
zzd 描述,有没有无所谓。可以自己加。
/home/zzd 家目录
/bin/bash $SHELL类型 “chsh -s /bin/bash用户” 此命令可以修改$SHELL类型
Getent passwd想当于cat /etc/passwd查看用户类型
口令文件
cat /etc/shadow 只能root用户去查看,普通用户查看不了
$6表示sha512加密方式 在centos5中是$1表示md5(128位)加密方式
Cat/etc/group
Groups 用户名 查看用户属于哪个组
Root :x:0:
Root 组名
X 组口令
0 组ID
: 组成员 一般来讲是辅助组。
默认情况下,当一个用户创建文件的时候,这个文件的所有者就是这个用户,所属组就是这个用户的主组,而不是辅助组。
Newgrp 组名 可以切换主组辅助组,但是该命令是临时的,当重新登录时,又会回到原 来的组里。
切换所属组需要知道切换组的密码,但是系统默认是不设密码的,所以无法切换。
组的口令是放在 /etc/gshadow文件中的。可以用cat命令查看并做设置。
Bin 组名
: 组的口令
: bin组管理员的用户账号 默认情况下是空的,代表着只能root管理员能做设置。
Bin,daemon 组成员
gpasswd 组名 对组进行设口令
密码加密
加密 明文 密文
解密 密文 明文
单向加密 哈希算法 原文不同 密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应 初始条件的微小改变,引起结果的巨大改变
Md5 128bits
Sha1 1690bits
Sha224 224bits
Sha256 256bits
Sha384 384bits
Sha512 512bits
更改加密算法 authconfig –passalgo=sha256 –update
密码复杂性策略
使用数字 大写字母 小写字母及特殊字符中至少3种
足够长
使用密码
定期更换 不要使用最近使用过的密码
安全修改配置文件的命令
Vipw = vi /etc/passwd
vigr =vi /etc/group
pwck和grpck 检查修改完成后的配置文件语法是否错误。
Vipw和vigr都具有语法检查功能,当修改配置文件时出现错误,系统会自动报警。比nono修改要安全的多。
用户和组管理命令
用户管理命令 useradd usermod userdel
组账号维护命令 groupadd groupmod groupdel
Uesradd 创建新用户或更新新用户的信息
但是该用户默认是没有口令的
上图中“!!”表示禁止登陆。如果没有密码并且允许登录,“!!”位置是空的。可以用nano进行修改,删除“!!”。
可以用命令usermod -L 用户名 进行对“!!”的添加。 加锁
可以用命令usermod -U 用户名 进行对“!!”的删除。 解锁
-u 指定用户ID号
-o 配合-u使用,不提示ID的唯一性,也就是数一个ID号可以有两个用户,且两个用户权限一样。注意:配合使用时-o要写在-u前面,位置不能变,也就是-ou。
-g 可以给用户指定一个现成的主组,不用再新创建和自己同名的主组。
-G 可以给用户指定一个或几个现成的辅助组
下图中并没有为用户指定主组,所以用户主动创建了一个叫zhao的主组。
-N 不创建私有组作为主组,使用users作为主组。
– d 为用户指定家目录 但是指定的路径中的文件夹必须是不存在的,否则会报错
– s 指定用户$SHELL类型
如果账号是给系统用的,建议设置一个特殊的属性,叫系统属性。让该账号成为系统账号。使用选项“-r”,“-r”表示该账号是个系统账号,其将来的ID是1000以内的。
对于系统账号也是不会生成家目录的。
当我们创建用户的时候,大部分情况下会自动创建其家目录,而家目录里会自动的创建一些隐藏的文件,而这些文件一旦被破坏,用家目录中的用户登录会报错。
/etc/skel是新创建用户家目录的模板文件夹。该目录将来在新建用户时会自动复制相关的文件,作为用户家目录的模板。(用来恢复将来有可能被破坏的家目录)。
/etc/default/useradd目录定义了新创建用户的默认属性。也可以用useradd -D做修改。
原创文章,作者:zzd,如若转载,请注明出处:http://www.178linux.com/29123