Linux帐号管理与ACL权限

本文详细介绍了Linux系统中用户账户的管理,包括用户ID(UID)、初始和有效群组、账户密码的存储和管理,以及如何使用`/etc/passwd`、`/etc/shadow`、`/etc/group`等文件。同时,文章还探讨了ACL(Access Control List)权限,它提供了更精细的文件和目录访问控制。通过`setfacl`和`getfacl`命令,可以设置和查看ACL权限。此外,文章还涵盖了用户和群组管理的命令,如`useradd`、`usermod`、`userdel`以及`groupadd`、`groupmod`、`groupdel`。最后,文章提到了PAM(Pluggable Authentication Modules)及其在系统认证过程中的作用。
摘要由CSDN通过智能技术生成

每个登录的使用者都会至少取得两个ID,UID(User ID)和GID(Group ID)

输入帐号后,系统的工作:

1. 在/etc/passwd中寻找帐号,若存在则读出UID 与GID(在/etc/group中读出),同时读出家目录与使用的shell

2. 核对密码(/etc/shadow)


/etc/passwd档案结构:

每一行都代表一个帐号,有几行就代表系统有几个帐号。每行有7个字段,用":"隔开。字段具体内容:

1. 帐号名称(用来对应UID)

2. 密码(显示为"x",实际内容存储在/etc/shadow中)

3. UID:0:表示系统管理员(要让其他帐号也具有root权限时,将该帐号的UID改为0即可)

             1~499:默认500以下的数字留给系统作为保留帐号。这些系统帐号通常是不可登录的。通常系统帐号分为两类,1-99为由distribution自行建立的帐号;100-499为用户使用的UID

             500+:给一般使用者使用的帐号(可登录帐号)

(Ubuntu是1000以下的UID保留给系统使用)

4. GID(与/etc/group有关)

5. 用户信息说明栏(没有什么重要用途,只是说明帐号的意义)

6. 家目录

8. 用户使用的shell


/etc/shadow档案结构(有9个字段,用":"隔开):

1. 帐号名称

2. 密码

3. 上次改动密码的日期(数字是从1970-01-01开始累加到现在的天数)

4. 连续变更密码需要的天数:即这个帐号的密码在最后一次被更改后需要几天才可以再被更改(数字是建立在上次更改(第3个字段)的基础上)

5. 密码过期的天数:在上一次更改密码后多少天内需要再次更改密码(数字建立在上次改动密码的日期),若未及时更改密码会过期

6. 更新密码期限前的警告天数(建立在密码过期(第5字段)的基础上)

7. 密码失效天数:即密码过期后帐号的宽限时间(建立在密码过期日的基础上)

    密码过期:帐号可以继续进行其他工作,在登入系统时会被要求重新设定密码

    密码失效:该帐号无法使用密码登录

8. 帐号失效日期(也是从1970-01-01累加的天数)

9. 保留字段



/etc/group档案结构:(每行表示一个群组,每行4个字段)

1. 组名

2. 群组密码

3. GID

4. 此群组支持的帐号名称:若想将一个帐号加入该群组,在该行最后添加【,帐号名】即可,注意不要有空格


初始群组(initial group)和有效群组(effective group)

初始群组:用户一登入系统,就立刻拥有该群组的相关权限,即/etc/passwd中每个用户的GID(第4栏)

有效群组:建立新档案时使用的群组

在读取/修改档案时,只要执行者支持该档案所属的群组就可以,不需要将该群组设置为有效群组

groups:显示该用户所有支持的群组,其中第一个列出的即为有效群组

newgrp:变更该用户当前的有效群组(是以一个新的shell来提供这个功能,完成工作后注意使用exit回到原shell中)


/etc/gshadow档案结构:(4个字段,":"分隔)

1. 组名

2. 密码:若该栏为"!",表示该群组不具有群组管理员;若开头为"!",表示无合法密码,也无群组管理员

3. 群组的管理员帐号

4. 该群组所支持的帐号(与/etc/group内容相同)



useradd [-DugGMmcdrsef] 账户名

-D:列出useradd默认值

-u:后接UID,是数字,直接指定一个UID给该帐号

-g:后接initial group组名,该群组的GID会被放置到/etc/passwd的第4个字段内

-G:后接组名,表示该帐号支持的其他群组(这个选项会修改/etc/group中的内容)

-M:不建立用户家目录

-m:建立用户家目录

-c:即/etc/passwd第5栏的说明内容

-d:制定某个目录成为家目录而不使用默认值(一定要使用绝对路径!)

-r:建立系统帐号

-s:后接shell,指定该帐号使用的shell,预设是/bin/bash

-e:后接帐号失效日期,格式为【YYYY-MM-DD】,会写入/etc/shadow第8个字段

-f:指定密码过期后是否会失效,0为立刻失效,-1为永不失效(密码只会过期),会修改/etc/shadow的第7个字段


创建用户时系统进行的工作:

1. 在/etc/passwd中添加新的一行,建立新帐号的UID、GID、家目录等

2. 在/etc/shadow中添加此帐号密码的相关参数,但尚未有密码

3. 在/etc/group中添加一个与帐号名相同的群组(若群组已存在则不会再建立新群组)

(可能在/home下建立一个与帐号名相同的目录作为用户家目录,权限为取决于/etc/login.defs的UMASK参数)


useradd默认值内容:

GROUP=100:新建帐号的初始群组使用GID为100者。针对初始群组有两种不同的设置机制:

                        私有群组机制:系统会建立一个与帐号名相同的群组给使用者作为初始群组

                        公共群组机制:以GROUP=100这个设定值作为新建帐号的初始群组,故每个帐号都属于users群组

HOME=/home:用户家目录的基准目录

INACTIVE=-1:密码过期是是否会失效(-1永不失效,0立即失效,n表示n天后失效)

EXPIRE=:帐号失效日期

SHELL=/bin/bash:默认使用的shell程序文件名

SKEL=/etc/skel:建立用户家目录的参考基准目录,新建的用户家目录下的所有数据都是从/etc/skel复制过去的

CREATE_MAIL_SPOOL=no:建立使用者的mailbox


/etc/login.defs:新建帐号的其他设定

MAIL_DIR   /var/mail:用户默认邮件信箱放置目录

PASS_MAX_DAYS   99999:/etc/shadow的第5栏,密码过期的天数

PASS_MIN_DAYS   0:/etc/shadow的第4栏,连续变更密码需要的天数

PASS_WARN_AGE   7:/etc/shadow的第6栏,密码过期前的警告日期

UID_MIN   1000:使用者的最小UID小于1000为系统保留

UID_MAX   60000:使用者能够用的最大UID

GID_MIN   1000:使用者自定义组的最小GID,小于1000为系统保留

GID_MAX   60000:使用者自动一组的最大GID

UMASK   022:用户家目录建立的umask

USERGROUPS_ENA   yes:使用userdel删除时,是否会删除初始群组(若该帐号所属群组已经没有用户了,则会删除该群组)

ENCRYPT_METHOD   SHA512:密码加密方式

当系统给一个帐号UID时,(1)首先参考UID_MIN的,再(2)由/etc/passwd搜寻最大的UID,然后将(1)(2)对比,找出较大的那个再+1就是新帐号的UID


passwd [-luSnxwi] 帐号

-l:即lock,在/etc/shadow第2栏前加上"!"使密码失效(使用户无法通过密码登录)

-u:与-l相对,unlock

-S:列出密码相关参数,即/etc/shadow档案内的大部分信息

-n:后接天数,/etc/shadow的第4字段,连续修改密码的天数

-x:后接天数,/etc/shadow的第5字段,密码过期的天数

-w:后接天数,/etc/shadow的第6字段,密码过期前的警告天数

-i:后接日期,/etc/shadow的第7字段,密码失效日期

不接任何参数时表示设置所接帐号的密码


chage [-ldEImMW] 帐号名 (主要修改/etc/shadow的相关内容)

-l:列出该帐号详细密码参数

-d:后接日期,修改上次更改密码的日期(/etc/shadow第3字段),格式为【YYYY-M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值