20.Linux 账号管理与 ACL 权限设置

20.Linux 账号管理与 ACL 权限设置_第1张图片
这里写图片描述

Linux 登录大致过程:

 1. 先寻找 /etc/passwd 里面是否有你输入的账号,如果没有跳出;如果有的话将该账号对应的UID 
 和 GID(在 /etc/group 中)读出来,另外,该账号的主文件夹与 shell 设置也一并读出。
 2. 再来就是核对密码了。这时 Linux 会进入 /etc/shadow 里面找出对应的账号和 UID ,
 然后核对一下你刚刚输入的密码是否相符
 3. 如果一切 OK,就进入 shell 控管阶段了

/etc/passwd 文件结构
20.Linux 账号管理与 ACL 权限设置_第2张图片

每一行代表一个账号,里面有很多账号本来就是系统正常运行所必须的系统账号,
如 bin,daemon,adm,nobody等。不能随便删除。

一共 7 个字段:
1.账号名称 : 就是账号,用来对应 UID 的 。 root 的 UID 对应0(第3字段)
2.密码  x
3.UID : 用户标示
id 范围               特性
0(系统管理员)     当 UID 为0是系统账号,所以系统管理员不止root
1~499(系统账号)   保留给系统使用的 ID,其实除了0以外,其他UID权限与特性并没有不一样。
由于系统上启动的服务希望以最小的权限去运行,因此不希望使用root身份执行这些服务,
所以我们就要提供这些运行中程序的所有者账号才行。这些系统账号通常是不可登录的,所有才
有 /sbin/nologin 这个特殊的 shell 存在
1~99 : 由 distributions 自行创建的系统账号
100~499 : 若用户有系统账号需求,可使用的账号 UID


500~65535(可登陆账号) : 一般给用户用的。

4.GID : 这个与 /etc/group 有关。
5.用户信息说明列
6.主文件夹 : 如果想要该账号的主文件夹移动到其他硬盘去,修改这个。
7. Shell : 用户登录系统后会取得一个 shell 来与系统内核通信。默认的shell是否为bash ,
就是这个字段指定。/sbin/nologin 这个shell可以让账号无法取得 shell 环境的登录操作。

/etc/shadown 文件结构
20.Linux 账号管理与 ACL 权限设置_第3张图片

一共9个字段:
1.账号名称:必须与 /etc/passwd 相同
2.密码 : 编码后的密码
3.最近更改密码日期:从1970-01-01开始
4.密码不可被更动的天数:最近一次修改后需要经过几天才能修改。0表示都可以修改。
5.密码需要重新修改的天数:指定在最近一次更改密码后在多少天内需要再次更改密码
6.密码需要更改期限前的警告天数(与第5个字段比)
7.密码过期后的账号宽限时间(密码失效日)
8.密码失效日期
9.保留

/etc/group 文件结构
20.Linux 账号管理与 ACL 权限设置_第4张图片

1.用户组名称
2.用户组密码 : 通常不需要
3. GID :/etc/passwd 第四个字段对应的 GID
4.此用户组支持的账号名称:某个账号想加入此用户组,将该账号填入这个字段即可。

有效用户组 和 初始用户组

每个用户在他的 /etc/passwd 第四列中有 GID ,这个是他的初始用户组。
即用户登录时,就立即拥有这个组的权限。

groups : 有效与支持用户组查看
20.Linux 账号管理与 ACL 权限设置_第5张图片

newgrp : 有效用户组的切换


/etc/gshadow
20.Linux 账号管理与 ACL 权限设置_第6张图片
20.Linux 账号管理与 ACL 权限设置_第7张图片

1.用户组名 
2.密码列 : 如果是 ! ,表示不具有用户组管理员
3.用户组管理员账号
4.该用户组的所属账号

账号管理

添加账号:
useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明栏] [-d 主文件夹绝对路径] [-s  shell] 用户账号名

20.Linux 账号管理与 ACL 权限设置_第8张图片

useradd 参考文件:
20.Linux 账号管理与 ACL 权限设置_第9张图片

由 /etc/default/useradd 调用出来
20.Linux 账号管理与 ACL 权限设置_第10张图片

1.GROUP=100 : 新建账号的初始用户组使用GID为100
  私有用户组机制:一个账号一个用户组
  共有用户组机制:公用一个用户组

2.HOME=/home : 用户主文件夹的基准目录
3.INACTIVE=-1 : 密码过期后是否会失效的设置值,0表示立即失效,-1表示不会失效
4.EXPIRE=账号失效日期 
5.SHELL=/bin/bash : 默认使用的 shell 程序名字
6.SKEL=/etc/skel : 用户主文件夹参考基准目录
7.CREATE_MAIL_SPOOL=yes : 创建用户的 mailbox

useradd 这个程序在创建用户时,至少会参考:
/etc/default/useradd
/etc/login.defs  
/etc/skel/*

passwd
20.Linux 账号管理与 ACL 权限设置_第11张图片

创建用户后,没密码,/etc/passwd 是 ! 的。

passwd [--stdin]  // 所有人均可以修改自己的密码
passwd [-l] [-u] [--stdin] [-S] [-n] [-x] [-w] [-i] 账号 //root 功能

20.Linux 账号管理与 ACL 权限设置_第12张图片

usermod :修改账号

usermod [-cdegGlsuLU] username

userdel : 删除账号

userdel -r username
-r : 连同用户的主文件夹也一起删除

用户功能

finger [-s] username 

chfn [-foph] [账号名称]  //change finger

chsh [ls]  // change shell

id [username]

用户组

groupadd [-g gid] [-r] 用户组名

groupmod [-g gid] [-n group_name] 用户组名

groupdel [groupname]
gpasswd : 用户管理组员功能
gpasswd groupname

你可能感兴趣的:(Linux,shell,linux)