天天看点

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

Linux的账号与群组

使用者标识符:UID 与 GID

每一个文件都具有『拥有人与拥有群组』的属性,每个登陆的使用者至少都会取得两个ID ,一个是使用者 ID (User ID ,简称 UID)、一个是群组 ID (Group ID ,简称 GID)。

为什么会有UID和GID?

我们登陆 Linux 主机的时候,输入的是我们的账号,但是其实Linux 主机并不会直接认识你的『账号名称』的,他仅认识ID(ID 就是一组号码啦)。计算机仅认识 0 与1.

当我们有要显示文件属性的需求时,系统会依据 /etc/passwd 与 /etc/group 的内容, 找到UID / GID对应的账号与组名再显示出来

Linux 系统上面的用户如果需要登陆主机以取得 shell 的环境来工作时, 系统都做了什么工作?

1、先找寻 /etc/passwd 里面是否有你输入的账号?如果没有则跳出,如果有的话则将该账号对应的UID与GID(在 /etc/group 中) 读出来,另外,该账号的家目录与 shell 配置也一并读出;

2、再来则是核对口令表!这时 Linux 会进入 /etc/shadow 里面找出对应的账号与UID,然后核对一下你刚刚输入的口令与里头的口令是否相符?

3、如果一切都OK的话,就进入Shell控管的阶段!

/etc/passwd 文件结构 

每一行都代表一个账号,有几行就代表有几个账号在你的系统中! 

账号名称:口令:UID:GID:用户信息说明栏:家目录:shell

/etc/shadow 文件结构 

账号名称:口令:最近更改口令的日期:口令不可被变动的天数:口令需要重新变更的天数:口令需要变更期限前的警告天数:口令过期后的账号宽限时间(口令失效日) :账号失效日期

 /etc/group 文件结构

组名:群组口令:GID:此群组支持的账号名称

账号管理

新增与移除使用者: useradd

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

passwd 为用户配置口令

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

--stdin 用法

echo '111111'  | passwd --stdio zhangsan

为张三用户修改密码为111111,--stdin 用来接收管道传来的数据

usermod

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

userdel 删除用户

userdel [-r] username

-r 连同用户家目录一起删除

id 命令

id 这个命令则可以查询某人或自己的相关 UID/GID 等等的信息,使用 id 就 全部都列出 

id username

groupadd 添加群组

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

groupdel 删除 群组

groupdel groupname

ACL权限管理

ACL简述

ACL 是Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的 read,write,execute 权限之外的细部权限配置。ACL 可以针对单一使用者,单一文件或目录来进行r,w,x 的权限规范,对于需要 特殊权限的使用状况非常有帮助。

使用者 (user):可以针对使用者来配置权限;

群组 (group):针对群组为对象来配置其权限;

默认属性 (mask):还可以针对在该目录下在创建新文件/目录时,规范 新数据的默认权限;

ACL的使用

setfacl:配置某个目录/文件的ACL 规范

Linux账号管理与ACL权限管理Linux的账号与群组账号管理ACL权限管理

针对特定使用者的方式

配置规范:『 u:[使用者账号列表]:[rwx] 』

例如针对 user1 的权限规范 rx:  setfacl -m u:user1:rx acl_test

若无使用者则默认为文件所有者

针对特定群组的方式

配置规范:『 g:[群组列表]:[rwx] 』

例如针对 mygroup1 的权限规范 rx:setfacl -m g:mygroup1:rx acl_test1

针对有效权限 mask 的配置方式

配置规范:『 m:[rwx] 』

例如针对刚刚的文件规范为仅有 r: setfacl -m m:r  acl_test1

getfacl:取得某个文件/目录的ACL 配置项目

getfacl acl_test

继续阅读