Linux账号管理与ACL权限设置

一、Linux账号与群组

1.1 使用者识别码UID与GID

  • ID与账号存储在/etc/passwd当中

1.2 使用者账号

1.2.1 输入账号密码的处理过程

stateDiagram 在/etc/passwd里寻找输入账号与密码 --> 结束: 没有 在/etc/passwd里寻找输入账号与密码 --> 读取UID,GID,主文件夹与Shell设置:有 读取UID,GID,主文件夹与Shell设置 --> 在/etc/shadow中核对密码表 在/etc/shadow中核对密码表 --> Shell管控: 正确 在/etc/shadow中核对密码表 --> 结束:错误

注意,备份时一定要备份/etc/passwd/etc/shadow文件

1.2.2 /etc/passwd文件结构

  1. 每一行代表一个账号
  • bin、daemon、adm、nobody等是系统账号
  1. 每一行的大字段
  • 账号

  • 密码

  • UID

  • GID

  • 使用者信息说明栏

  • 主文件夹

  • Shell

  1. 字段说明
ID范围 该ID使用者特性
0 系统管理员
1-999 系统账号
1000-60000 可登录账号

1.2.3 /etc/shadow文件结构

  1. 每一行的大字段
  • 账号

  • 密码

  • 最近密码更变日期

  • 密码不可重置的天数

  • 密码需要重置的天数

  • 密码需要重置前的警告

  • 密码失效日

    • 密码过期后的账号宽限时间
  • 账号失效日期

  • 保留

  1. 字段说明
  • 所有日期均以1970.1.1以来的天数表示

1.3 群组

1.3.1 /etc/group文件结构

  1. 每一行的四大字段
  • 群组名称

  • 群组密码

  • GID

  • 此群组支持的账号名称

  1. 字段说明
  • 群组密码通常是给群组管理员使用的,不需要设置

1.3.2 有效群组与初始群组

  1. 初始群组
  • etc/passwd里的GID
  1. 有效群组
  • 输入groups命令得到的第一个群组有效群组

  • newgrp GROUP_NAME切换有效群组

1.3.3 /etc/gshadow

  1. 个字段
  • 群组名称

  • 密码栏

  • 群组管理员账号

  • /etc/group的第四栏内容相同

二、账号管理

2.1 添加与移除使用者

  1. useradd添加使用者
  • 默认值(在/etc/default/useradd中查看)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# GID设置为1000
GROUP=1000 

# 默认的主文件夹所在目录
HOME=/home

# 密码失效日,-1表示永久不失效
INACTIVE=-1

# 账号失效日
EXPIRE=

# 默认使用的shell
SHELL=/bin/bash

# 使用者主文件夹参考基准目录
SKEL=/etc/skel

# 创建使用者的mailbox
CREATE_MAIL_SPOOL=yes

LOG_INIT=yes
  1. passwd 操作密码
参数 作用
无参数 修改密码
-d 删除密码
-f 强制下次登陆修改口令
-w 口令到期前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最常存活期
-g 修改群组密码
-i 多少天后停用账户
  1. change 账户名显示密码参数
-l 列出详细的密码参数
  1. usermod调整账号信息
-c 修改用户账号的备注文字
-d 登入目录
-e 修改账号的有效期限
-g 修改群组
  1. userdel删除账户
无参数 直接删除
-r 连同使用者的主文件夹一起删除

2.2 使用者功能

  1. id [username]查询用户的UID/GID等信息

  2. finger查询用户的相关信息

  • 比较危险,目前的版本里没有
  1. chfn [username](change finger)
-f 接完整的大名
-o 办公室房间号
-p 办公室电话号码
-h 家里电话
  1. chsh(change shell)
-l 列出系统中有的shell
-s 设置自己的shell

2.3 新增与移除群组

  1. groupadd -g GID -r [group_name]增添群组
-g GID
-r 创建系统群组
  1. groupmod
-g 修改GID
-n 修改既有群组名称
  1. groupdel删除群组

2.4 账号管理实例

三、ACL

3.1 ACL简介

  1. 定义

ACL,即 Access Control list,主要目的是提供传统的rwx以外的权限,包括

  • 使用者(user)

  • 群组(group)

  • 默认属性(mask)

3.2 ACL的设置技巧

  1. setfacl [-bkRd] [-m/x ACL参数] file_name(set file ACL)
-m 设置ACL参数,不可与-x混用
-x 删除后续ACL参数
-b 移除所有的ACL参数
-k 移除默认的ACL参数
-R 递归
-d 针对目录设置默认ACL参数
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy