Linux学习笔记-权限管理-09.02 - Go语言中文社区

Linux学习笔记-权限管理-09.02


Linux权限管理

UID:使用者ID(user ID)
GID:群组ID(Group ID)
/etc/passwd:记录UID
/etc/group:记录GID

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

1,先找到/etc/passwd里面是否有你输入的帐号,没有的话则跳出,有的话就将该帐号对应的UID,GID读出来,另外还有该帐号的家目录与shell设定也一并读出;
2,核对密码表,这时Linux会进入/etc/shadow里面找出对应的帐号与UID,然后核对一下你刚刚输入的密码
与里面的密码是否相符
3,如果一切OK的话,就进入Shell控管的阶段

/etc/passwd 文件结构

这里写图片描述
以:为分隔符
1 帐号名称 用来对应UID的
2 密码 会看到一个X 密码数据改放到/etc/shadow
3 UID 0表示root 1~ 499表示系统帐号 1~99 由distributions自行建立的系统帐号,100~499用户有系统帐号需求时,可以使用的帐号UID
4 GID 这个/etc/group的观念和/etc/passwd差不多,用来规范组名与GID对应而已
5用户信息栏说明,只是用来解释这个帐号的意义而已,不过,如果你提供使用finger的功能时,这个字段可以提供很多的讯息,chfn指令用于解释
6 家目录 root就是/root
7 Shell 当用户登录系统后会取得一个Shell来与系统的核心沟通,以进行用户的操作任务,一般取值为/sbin/bash, 如果用来替代成让帐号无法取得shell环境的登录动作,那就是/sbin/nologin这个东西

/etc/shadow 文件结构

这里写图片描述
1 帐号名称 用来必须要与/etc/passwd 相同才行
2 密码 经过编码的密码(加密)啦!这个档案只有root才可以读写就是了,不要不小心更动这个档案的权限,由于固定的编码系统产生的密码长度
必须一致,因此在此字段上加上!或*改变了密码字段的长度,就会让密码【暂时失效】了
3最近更动密码癿日期: 这个字段的值是以1970年1月1日而累加的日期,14126表示的就是2008-09-04那一天,想要了解该日期,可以使用chage
这个指令的帮忙
4 密码不可被改动的天数: 这个帐号最近一次被更改后需要多少时间才能再次被变更,如果是0的话,表示密码随时可以更动的意思
5 密码需要重新变更的天数:强制性的规定该密码在多少时间后需要重新的设定一下密码
6 密码需要变更期限前的警告天数:表示提示用户这个密码就要到期了,请尽快重新设定你的密码
7 密码过期后的帐号宽限时间,过了期限后依旧没有更新密码,那么密码就算过期了,虽然密码过期了,但是该帐号还是可以用来进行其他工作的
包括登录系统取得bash,不过如果密码过期了,登录系统时,系统会强制你必须要重新设定密码才能登录继续使用,如果密码过期几天后,还是没有登录更改密码,那么这个帐号密码就会【失效】,这个帐号再也无法使用该密码登录了,密码过期和密码失效并不相同
8 帐号失效日期: 表示此帐号在此日期之后,就无法再使用了,无论密码是否过期
9 保留字段,看以后是否有新功能加入

/etc/group 文件结构

这里写图片描述
1 组名
2 群组密码 密码已经移动到/etc/gshadow 中去了,这个字段只会存在一个【x】而已
3 GID群组ID,
4 此群组支持的帐号名称: 如果想让dmtsai加入root群组的话,那么在这行的最后面加上【,dmtsai】,注意不要空格【root:x:0:root,dmtsai】

账号管理

useradd

useradd 账号名:创建一个新账号(会默认创建家目录)
可选项:
-u:后面接UID,指定一个特定的UID给这个账号
-g:后面接组名,该群组的GID会被放置到/etc/passwd的第四个字段内
-G:后面接的组名则是这个账号还可以加入的群组
-r:创建一个系统账号,(不会默认创建家目录)
-s:后面接一个shell,若没有指定则默认是/bin/bash
-c:这个是/etc/passwd的第五栏的说明内容


创建用户时,默认会建立用户家目录,且目录的权限为700,同时还会帮我们处理几个项目
/etc/passwd 里面建立一行与数据有关的数据,包含UID和GID
/etc/shadow 里面将此账号的密码相关参数填入,但尚未有密码
/etc/group 里面加入一个账号名称一模一样的组名
/home 底下建立一个与账号同名的目录作为用户家目录,且权限为700
x权限加在目录上代表允许其他用户进入目录内

passwd

在默认的情况下,该账号是暂时被封锁的, 也就是说,该账号是无法登陆的,那该如何是好?直接给他配置新
口令就好了!配置口令就使用 passwd !

修改密码两种方式

1.root账户下,输入passwd 账号名,(创建/修改密码)
2.echo “密码” | passwd 账号名 –stdin,(创建/修改密码)

usermod

usermod:修改账号配置
我们可以直接在/etc/passwd 或 /etc/shadow 去修改相对应字段的数据, 也可以用usermod修改
usermod 选项 参数 账户名
选项:
-c:接账号说明
-G:后面接次要群组
-s:修改shell的实际文本

userdel

-r:连同家目录一起删除

id

id 账号名:查询某人或自己的相关UID/GID等
-g:查询GID
-u:查询UID

groupadd

groupadd:创建群组
-g:直接赋予某个特定的GID
-r:创建系统群组

groupdel

groupdel:删除群组

ACL的使用

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

setfacl

-m:配置后续的acl参数给文件使用,不可与-x合用;
-x:删除后续的acl参数,不可与-m合用
-b:移除所有的acl配置参数
-k:移除默认的acl参数
-R:递归配置acl
-d:配置默认的acl参数,只对目录有效,在该目录下新建的数据会引用此默认值

1. 针对特定使用者的方式:

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

2.针对特定群组的方式:

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

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

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

getfacl

查询acl的参数配置

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42866348/article/details/82355711
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-30 09:29:06
  • 阅读 ( 955 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢