Linux学习笔记—day5(3.16草稿,3.19补充稿)--------UID与GID,群组管理,ACL

写在前面:3.16草稿,未发布。3.19补充部分内容,发布。

正文:

每一个文件都有拥有人与拥有群组的属性,每个登陆的使用者至少都会取得两个ID,一个是使用者ID(User ID,UID),

一个是群组ID(Group ID ,GID)。

当我们登陆Linux主机时,输入帐号,提出有显示文件属性的需求时,系统会依据/etc/passwd和/etc/group的内容,找到UID和GID对应的帐号与组名再显示出来。

那么,我们登陆主机取得shell环境时,系统都做了什么工作?

1,先查找/etc/passwd下是否有你输入的帐号。如果没有,就跳出,如果有,就将该帐号对应的UID和GID(位置上述)读取出来。还有该帐号的家目录以及shell配置。

2,核对口令表。Linux进入/etc/shadow上找相对应的帐号和UID,核实。

3,进入shell管控。


/etc/passwd文件结构

实例:(root账户)

root:x:0:0:root:/root:/bin/bash      这是一个帐号。

root  账户     x   口令     0   UID   0   GID    root 用户信息说明栏   /root  家目录  /bin/bash :Shell

注意(这里之所以显示为x,是因为口令数据容易被窃取,放到了/etc/shadow中了)

/etc/shadow文件结构

实例:

root:$6$SqKt7MI2rBevNX9Y$qMt99CQMQWcdyEmbN9iH0fzXZd/A1f0bmI9blfXRWMuYsamKI3Dri4Zr.lDkTWDnjqQ2z/p2bglynWL80vDYM0:17606:0:99999:7:::

$SqKt7MI2rBevNX9Y$   :   这个是杂质(盐),就是为了放置密码被破解而采用的一种加密。无序排列,且更改密码,引起雪崩效应。

账户管理

useradd

-u:后面接的是UID,是一组数字。直接给一个特定的UID给这个帐号

-g:后面接的那个组名。

-G:后面接的是这个帐号还可以加入的群组

-M:强制不创建用户家目录

-m: 强制创建用户家目录

-r  : 创建一个系统的帐号,这个帐号的UID会有限制

-s  :后面接的是shell

栗子:

完全使用默认值创建一个用户


默认会创建用户家目录,且权限是700


我们使用的默认值创建,其实centos会帮我们处理几个项目:

在/etc/passwd里面创建一行与账号相关的数据,包括创建UID/GID/家目录等;
在/etc/shadow 里面将此账号的口令相关参数填入,但是尚未有口令;
在/etc/group 里面加入一个与账号名称一模一样的组名;

在/home 底下创建一个与账号同名的目录作为用户家目录,且权限为700

栗子::假设我已知道我的系统当中有个组名为users ,且UID 700 并不存在,请用users 为初始群组,以及uid为700 来创建一个名为user2 的账号

-u:后面接的是UID,是一组数字。直接给一个特定的UID给这个帐号

-g:后面接的那个组名。

栗子: 创建一个系统账号,user3


可以看到,user3并不存在home目录。

passwd

刚刚使用useradd创建了账号之后,在默认的情况下,该账号是暂时被封锁的。直接给他配置新口令。

-stdin :  透过来自前一个管道的数据,作为口令输入。      

-l  :lock的意思。将/etc/shadow第二栏最前面加上,使口令失效

-u:unlock

-S : 列出口令相关参数,就是说shadow文件的大部分信息

-n:后面接天数。shadow 的第4字段  多久不可修改口令天数

-X :后面接天数。shadow的第5字段,多久必须更动口令

-W : 后面接天数,shadow的第6字段,口令过期前的警告天数

-i :后面接日期,shadow的第7字段,口令失效日期

栗子:root给User2加上口令


提示密码太简单,但是还是修改成功了,这就是root账号修改的强大之处

  补充(3.19):echo '111111' |  passwd -stdin  user1


usermod(一般直接在配置文件中修改)

userdel  删除

userdel  -r  user2

连家目录一块删除。

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


只显示UID呢?


不显示user1,只显示UID


groupadd 

-g  :  后面接某个特定的GID

-r : 创建系统群组


ACL

使用场景:

myuser1 是projecta这个项目的助理,他需要这个项目的内容,但是他『不可以修改』项目目录内的任何数据!那该如何是好?你或许可以这样做:

将myuser1 加入projecta这个群组的支持,但是这样会让myuser1 具有完整的/srv/projecta的权限,myuser1 是可以删除该目录下的任何数据的!这样是有问题的;
将/srv/projecta的权限改为775 ,让myuser1 可以进入查阅数据。但此时会发生所有其他人均可进入该目录查阅的困扰!这也不是我们要的环境。


提供传统的owner,group,others的read,write,exectute权限之外的细部权限配置。

getfacl  :  取得某个文件、目录的acl配置项目

setfacl  :  配置某个目录、文件的acl规范

setfacl命令用法

-m :  配置后续的acl参数给文件使用

-k  :删除后续的acl参数

-b  :   移除所有的acl配置参数

-k   :  移除默认的acl参数

-R  :  递归配置acl,就是包括次目录都会被配置起来

-d  :   配置默认acl参数的意思。只对目录有效,在该目录新建的数据会引用此默认值。


1,针对特定使用者的方式

规范:u:使用者帐号列表:rwx

栗子:对User1的权限规范为rx

前提:touch acl_test1  user1创建

setfacl -m u:user1:rx  acl_test1


无使用者列表,代表配置该文件拥有者。


上述为最简单的ACL 配置,利用『u:使用者:权限』的方式来配置的啦!配置前请加上-m 这个选项。如果一个文件配置了ACL 参数后,他的权限部分就会多出一个+ 号了!但是此时你看到的权限与实际权限可能就会有点误差!

这需要透过getfacl。

getfacl 命令用法


通过图片可以清晰的看出:显示了User:User1:r-x。

针对特定群组的方式:

配置规范:『g:[群组列表]:[rwx] 』,例如针对mygroup1 的权限规范rx


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

配置规范:『m:[rwx] 』,例如针对刚刚的文件规范为仅有r


user:user1   和  mask  按位与

group:users 和mask   按位与

最后得到真正的权限:r--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值