Linux账号管理与ACL权限管理

本文详细介绍了Linux系统中用户账号与群组的管理方法,包括UID与GID的概念,/etc/passwd、/etc/shadow及/etc/group文件的结构与内容,以及如何使用useradd、passwd、usermod、userdel、groupadd、groupdel等命令进行用户与群组的添加、修改、删除。同时,还讲解了ACL的配置方法,以及如何使用setfacl和getfacl命令进行权限管理。

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

Linux的账号与群组
使用者标识符:UID 与GID
每一个文件都具有『拥有人与拥有群组』的属性,每个登陆的使用者至少都会取得两个 ID ,一个是使用者 ID (User ID ,简称 UID)、一个是群组 ID (Group ID ,简称 GID)。
UID保存于/etc/passwd;GID保存于/etc/group;口令保存于/etc/shadow。

/etc/passwd 文件结构
账号名称
就是登录账号,用来对应 UID 的,例如 root 的 UID 对应就是 0 (第三字段),系统用户是1-499,普通用户是500+;
口令:
早期 Unix 系统的口令就是放在这字段上!但是因为这个文件的特性是所有的程序都能够读取,这样一来很容易造成口令数据被窃取, 因此后来就将这个字段的口令数据给他改放到/etc/shadow 中了。所以这里你会看到一个x;
UID:
这个就是使用者标识符;
GID:
与 /etc/group 有关,用来规范组名与 GID 的对应;
用户信息说明栏:
用来解释这个账号的意义;
家目录:
这是用户的家目录,root 的家目录在 /root ,所以当 root 登陆之后,就会立刻跑到 /root 目录里头啦!默认的用户家目录在 /home/yourIDname;
Shell:
当用户登陆系统后就会取得一个 Shell 来与系统的核心沟通以进行用户的操作任务,默认为/bin/bash,用户合法但不能登录为/bin/nologin;
/etc/shadow 文件结构
账号名称:
由于口令也需要与账号对应,因此,这个文件的第一栏就是账号,必须要与 /etc/passwd 相同;
口令:
这个字段内的数据才是真正的口令,而且是经过编码的口令 (加密);
最近更动口令的日期
这个字段记录了更动口令那一天的日期,时间是以 1970 年 1 月 1 日作为 1 而累加的日期;
口令不可被更动的天数:
这个账号的口令在最近一次被更改后需要经过几天才可以再被变更!如果是 0 的话, 表示口令随时可以更动;
口令需要重新变更的天数:
为了强制要求用户变更口令,这个字段可以指定在最近一次更改口令后, 在多少天数内需要再次的变更口令才行;
口令需要变更期限前的警告天数:
当账号的口令有效期限快要到的时候 (第 5 字段),系统会依据这个字段的配置,发出警告言论给这个账号;
口令过期后的账号宽限时间(口令失效日)
这个字段记录了更动口令那一天的日期,时间是以 1970 年 1 月 1 日作为 1 而累加的日期;
账号失效日期:
这个账号在此字段规定的日期之后,将无法再使用。
/etc/group 文件结构
组名:
群组口令:
很少用了,口令已经移动到 /etc/gshadow 去,因此这个字段只会存在一个x;
GID:
就是群组的 ID ,我们 /etc/passwd 第四个字段使用的 GID 对应的群组名。
此群组支持的账号名称:
我们知道一个账号可以加入多个群组,那某个账号想要加入此群组时,将该账号填入这个字段即可。例,让 dmtsai 也加入 root 这个群组,那么在第一行的最后面加上[,dmtsai],注意不要有空格, 例如root❌0:root,dmtsai。
账号管理
useradd
功能:添加用户
格式
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 用户名
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个组名就是我们上面提到的 initial group , 该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的组名则是这个账号还可以加入的群组。
-M :强制不要创建用户家目录(系统账号默认值)
-m :强制要创建用户家目录(一般账号默认值)
-c :用户信息注释
-d :指定家目录,使用绝对路径
-r :创建一个系统的账号,这个账号的 UID 会有限制
-s :后面接一个 shell ,默认是 /bin/bash (用户合法但不可用:/bin/nologin)
-e :后面接一个日期,格式为YYYY-MM-DD,账号失效日期;
-f :后面接 shadow 的第七字段项目,指定口令是否会失效。0为立刻失效,
-1 :口令永远不失效。
若使用默认值创建用户即:useradd username时
在 /etc/passwd 里面创建一行与账号相关的数据,包括创建 UID/GID/家目录等;
在 /etc/shadow 里面将此账号的口令相关参数填入,但是尚未有口令;
在 /etc/group 里面加入一个与账号名称一模一样的组名;
在 /home 底下创建一个与账号同名的目录作为用户家目录,且权限为700。
passwd
功能:修改密码
格式:
passwd [-l] [-u] [–stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 用户名

–stdin :可以透过来自前一个管线的数据,作为口令输入,例如 echo “password” | passwd --stdin 用户名
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使口令失效;
-u :与 -l 相对,是 Unlock ;
-S :列出口令相关参数,亦即 shadow 文件内的大部分信息;
-n :后面接天数,shadow 的第 4 字段,多久不可修改口令天数;
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动口令;
-w :后面接天数,shadow 的第 6 字段,口令过期前的警告天数;
-i :后面接 日期,shadow 的第 7 字段,口令失效日期。
usermod
功能:修改用户信息
格式:
usermod [选项] [用户名]

-c :后面接账号的说明;
-d :后面接账号的家目录;
-e :后面接日期,格式是 YYYY-MM-DD;
-f :后面接天数;
-g :后面接初始群组;
-G :后面接次要群组;
-a :与 -G 合用,添加次要群组的支持;
-l :后面接账号名称;
-s :后面接 Shell 的实际文件;
-u :后面接 UID;
-L :暂时将用户的口令冻结,无法登录;
-U :解冻用户的口令,可以登录。
userdel
功能:删除用户
格式:
userdel [选项][用户名]

-r:连同用户得我家目录一起删除
id
功能:查询用户相关的UID/GID等信息
格式:id 用户名

groupadd
功能:添加组
格式:
groupadd [选项] [组名]

-g :后面接某个特定的 GID ,用来直接给予某个 GID;
-r :创建系统群组。
groupdel
功能:删除组
格式:
groupdel 组名

ACL
ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范。

使用者 (user):可以针对使用者来配置权限;
群组 (group):针对群组为对象来配置其权限;
默认属性 (mask):还可以针对在该目录下在创建新文件/目录时,规范新数据的默认权限。
setfacl
功能:配置某个目录/文件的 ACL 规范
格式:
setfacl [-bkRd] [{-m|-x} acl参数] 文件名

-m :配置后续的 acl 参数给文件使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-k :移除默认的 ACL 参数;
-R :递归配置 acl ,亦即包括次目录都会被配置起来;
-d :配置默认 acl 参数,只对目录有效,在该目录新建的数据会引用此默认值;
–set:设置文件或者目录的acl(覆盖以前的文件参数)
–restore:恢复
针对特定使用者的方式:
u:[使用者账号列表]:[rwx]

针对特定群组的方式:
g:[群组列表]:[rwx]

针对有效权限 mask 的配置方式:
m:[rwx]

getfacl
功能:取得某个文件/目录的 ACL 配置项目
格式:
getfacl 文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值