Linux的帐号管理与ACL权限设定

本文详细解析了用户在Linux系统中通过login接口登录的过程,包括账号验证、密码比对及Shell启动等步骤,并介绍了与登录相关的配置文件如/etc/passwd和/etc/shadow的作用。此外,还探讨了Linux系统的群组管理和ACL权限设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户在终端界面通过login接口,输入帐号密码后,linux系统做了什么?

  1. 先找寻 /etc/passwd 里面是否有你输入的账号?如果没有则跳出,如果有的话则将该账号对应的 UID 与GID (在 /etc/group 中) 读出来,另外,该账号的家目录与 shell 设定也一并读出;
  2. Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下你刚刚输入的密码与里头的密码是否相符;
  3. 如果一切都 OK 的话,就进入 Shell 控管的阶段啰

/etc/passwd文件结构

文件每一行代表一个帐号
e.g.

root:x:0:0:root:/root:/bin/bash
  1. 帐号名称
  2. 密码(以x代替,实际密码加密存储在/etc/shadow中)
  3. UID (user id)(0代表root,1~999为系统帐号,1000~给一般使用者用的)
  4. GID (group id)(与/etc/group有关)
  5. 用户信息说明栏
  6. 家目录
  7. Shell (用哪个帐号登录时获取的shell)

/etc/group文件结构

文件每一行代表一个群组
e.g.

root:x:0:
  1. 组名
  2. 群组密码(以x代替,实际密码存储在/etc/gshadow中)
  3. GID
  4. 在此群组中的帐号(我们知道一个账号可以加入多个群组,那某个账号想要加入此群组时,将该账号填入这个字段即可。 举例来说,如果我想要让 a与 b 也加入 root 这个群组,注意不要有空格, 使成为root:x:0:a,b )(其中初始群组(initial group)的用户已默认加入,因此不会在显式写出,比如在这个root群组中root这个帐号已经默认加入,因此第四段为空)

问题:当用户加入多个群组时,在工作时,是以哪个群组为准的呢?

答:针对已经存在的文件和目录,只要是加入的群组的功能均可使用;新建文件或目录时,文件和目录的群组应为这个用户的有效群组

通过groups指令可以获取当前用户加入的所有群组,显示出的第一个群组即为有效群组
在root环境中可以使用usermod指令给用户添加群组
添加用户以及用户密码的指令
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名
passwd [账号名称]
删除用户的指令
userdel [-r] 帐号名称 //-r表示家目录删除掉

什么是ACL?

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

那 ACL 主要可以针对哪些方面来控制权限呢?他主要可以针对几个项目:
1. 使用者 (user):可以针对使用者来设定权限;
2. 群组 (group):针对群组来设定其权限;
3. 默认属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值