本节内容:
linux的账号管理与ACL权限
1 Linux的账号与群组
1.1 UID和GID
UID:User ID;GID:Group ID;
一个文件的权限,靠UID,GID来识别,UID与账号之间的对应关系存储在/etc/passwd中
1.2 /etc/passwd结构
账号名称 密码(此字段为x,真正的密码放在/etc/shadow里了) UID
0:系统管理员
1~499:系统账号
500~65535:可登入账号
GID
用户信息说明 家目录 shell
1.3 /etc/shadow结构
1.4 /etc/group结构
1.5 群组的一些概念
初始群组:账号一登录就成为此群组成员,这个属性在/etc/passwd里的GID确定
非初始群组:除了初始群组外,一个账号还会属于其它群组,这就是由/etc/group里此组支持的账号确定
有效群组:账号所属群组中的一个,如果账号新建一个文件,这个文件的群组就由当前账号的有效群组确定
groups: 通过这个指令可以知道当前用户账号属于哪些群组,第一个群组就是有效群组
newgrp: 有效群组的切换
1.6 /etc/gshadow结构
2 账号管理
2.1 新建账号
2.2 修改密码
2.3 忘记密码
普通用户忘记密码:使用root账号登录,再用passwd命令处理
root用户忘记:Live CD开机,挂载根目录,修改/etc/passwd,将root密码字段清空,再开机后root无须密码 即可登录,再用passwd修改root密码。
2.4 修改账号数据
2.5 查阅账号信息
finger :查阅/etc/passwd里的信息
id :查阅UID,GID信息
2.6 群组管理
3 主机的细部权限规划:ACL的使用
3.1 什么是ACL
ACL是Access Control List的缩写,主要目的:
提供传统的owner,group,others的read,write,execute 权限之外的细部权限设定,ACL可以针对单一使用者,单一档案或者目录来进行r,w,x权限的设定,对于需要 有特殊权限的使用状况非常有帮助。
3.2 ACL的启用
查看ACL是否启用
括号里没有显示acl,说明acl没有启用
ACL的启用
# mount -o remount,acl /home
这样,再查看ACL是否启用时,就会得到
3.3 ACL的设定
为特定用户设置权限
可以看到,testacl的权限信息已经和以前不同了
4 使用者身份切换
4.1 为什么要身份切换
平时用普通账号,有特别需要再用root,可以避免对系统破坏
运行软件时,为此软件设置一个低权限账号,这样即使这个软件被攻破,也不至于影响整个系统
4.2 身份切换方法
su:任何身份切换
完整切换到新身份:
只用root执行一次命令:su –c "指令串"
由root切换到其它使用者时,无需密码
sudo
5 用户的特殊shell与PAM模块
5.1 特殊的shell,/sbin/nologin
nologin是一个特殊的shell,如果一个账号的shell是nologin,那么它是无法通过shell登录的,但是它可以使用 系统的资源,这样就限制了这个账号使用shell的权利。因为有些账号是不需要使用shell的,分给它们会让系统 陷入危险。
5.2 PAM
一部主机上可能很多地方都需要验证,他们有着不同的验证机制,有的时候这可能造成一些混乱,比如 一致性问题,PAM是一套应用程序编程接口,他提供了一系列验证机制,只要使用者将验证需要告诉PAM, PAM就能返回验证的结果。
5.3 passwd工作原理
用户使用passwd程序,输入密码
passwd调用PAM模块验证
PAM模块到/etc/pam.d/查找与passwd同名配置文件
根据配置文件的设定,引用PAM模块验证分析
将验证结果返回给passwd
passwd根据结果决定下面的动作
6 Linux主机上用户讯息传递
who :目录登录到系统的用户
lastlog:所有账户最后登录时间
使用者交谈:write,mesg,mail