Linux 基础篇(03)用户管理&磁盘文件系统进阶

Linux 账号管理与 ACL 权限控制

一、Linux 的账号与群组

1、UID | GID

  • ll 命令根据用户和群组 id 从 /etc/passwd/etc/group进行匹配才能显示组名和用户名
  • 已经建好的用户不要修改ID号,不然后果很严重

2、用户

/etc/passwd文件
  • 里面存的是系统的用户信息,有管理员用户、系统用户和一般用户
  • root 的UID和GID都是0,普通用户的UID centos7里面是从 1000 开始的
/etc/shadow文件
  • dmtsai:$1$vyUuj.eX$omt6lKJvMcIZHx4H7RI1V.:14299:5:60:7:5:14419:
  • 上面的内容从左到右依次是:用户名、密码、密码最近变动日期、密码不可更改的天数、需要重新更改密码的天数、密码需要更改期限前的警告天数、密码过期后的宽限时间、账号失效日期、保留字段

3、群组

/etc/group | /etc/gshadow
  • group文件:root:x:0:root 从左到右依次是:群组名、密码、GID、群组下的用户
  • gshadow文件:bin: : :root,bin,daemon 左到右依次是:群组、密码、群组管理员、组员
  • 一个用户可以有多个群组,一个群组也可以有多个用户
初始群组
  • 新建一个用户会自动得到一个和用户名同名群组,这个群组就是该账号的初始群组
  • 在 /etc/group 文件中初始群组最后一个字段是空的,不会有同名用户的名字
有效群组
  • groups 命令可以看到当前用户属于的群组,第一个就是有效群组,新建文件就是属于有效群组
  • newgrp 组名 就可以更改当前的有效群组,这个命令实际上是新开了一个shell,重新加载相关的群组权限,可以用exit退出

 

二、账号管理

1、用户新增、修改、删除

useradd使用
  • 创建普通用户:一般情况会自动更新 passwd、group、shadow、gshadow等文件并且创建家目录
useradd vbird1
useradd -u 700 -g users vbird2
  • 创建系统用户:不会自动创建家目录
useradd -r vbird3
useradd参考文件
  • useradd -D 可以查看文件 /etc/default/useradd的内容,useradd 的一些配置项
GROUP=100		<==默认的群组,基本是无效的,默认的群组是用户同名的
HOME=/home		<==默认的家目录所在目录
INACTIVE=-1		<==口令失效日,在 shadow 内的第 7 栏
EXPIRE=			<==账号失效日,在 shadow 内的第 8 栏
SHELL=/bin/bash		<==默认的 shell
SKEL=/etc/skel		<==用户家目录的内容数据参考目录
CREATE_MAIL_SPOOL=yes   <==是否主动帮使用者创建邮件信箱(mailbox)
  • 其他关于用户和群组的配置项在 /etc/login.defs文件中,一些项目如下
MAIL_DIR        /var/spool/mail	<==用户默认邮件信箱放置目录

PASS_MAX_DAYS   99999	<==/etc/shadow 内的第 5 栏,多久需变更口令日数
PASS_MIN_DAYS   0	<==/etc/shadow 内的第 4 栏,多久不可重新配置口令日数
PASS_MIN_LEN    5	<==口令最短的字符长度,已被 pam 模块取代,失去效用!
PASS_WARN_AGE   7	<==/etc/shadow 内的第 6 栏,过期前会警告的日数

UID_MIN         1000	<==使用者最小的 UID,意即小于 1000 的 UID 为系统保留
UID_MAX       60000	<==使用者能够用的最大 UID
GID_MIN         1000	<==使用者自定义组的最小 GID,小于 1000 为系统保留
GID_MAX       60000	<==使用者自定义组的最大 GID

CREATE_HOME     yes	<==在不加 -M 及 -m 时,是否主动创建用户家目录?
UMASK           077     <==用户家目录创建的 umask ,因此权限会是 700
USERGROUPS_ENAB yes     <==使用 userdel 删除时,是否会删除初始群组
MD5_CRYPT_ENAB yes      <==口令是否经过 MD5 的加密机制处理
密码修改passwd, chage
  • passwd:默认修改自己的密码,要帮其他账号创建或修改密码需要使用 passwd 账号
  • chage:用于更改用户密码过期信息
    • chage -l stan 查看用户账号的状态
    • chage -d 0 stan 强制登录后修改密码
用户修改删除usermod, userdel
  • usermodusermod -aG stan usertest这是给usertest用户添加一个群组 stan
  • userdeluserdel -r vbird2 连同家目录一起删除
手动创建家目录
cp -a /etc/skel /home/vbird3
chown -R vbird3:vbird3 /home/vbird3
chmod 700 /home/vbird3

2、用户相关功能

  • finger 查看用户的相关信息
  • chfn 改变用户的指纹(finger)信息
  • chsh 更改用户登录默认取得的shell
  • id 查询用户UID、GID等信息

3、群组新增、删除、修改

groupadd, groupmod, groupdel
  • groupmod 通过 g 和 n 选项分别可以修改组ID 和组名,但是最好不要随意修改GID
  • groupdel 删除群组,但是最好确认这个群组不是用户的初始群组再进行删除
群组管理gpasswd
  • 不加任何选项就是修改群组的密码
  • A 选项是用来指定群组的管理员的
  • a 选项是管理员用来添加组员的
  • d 选项是管理员用来删除组员的

 

三、权限的细粒度控制:ACL 的使用

1、什么是 ACL

  • ACL(Access Control List)的主要作用就是提供传统的 ugo 的 rwx 之外的细部权限管理
  • ACL 可以针对单一用户、单一文件或目录来进行 rwx 的权限配置
ACL 主要可以针对以下几个方面来控制权限
  • 用户(u):可以针对使用者来配置权限;
  • 群组 (g):针对群组为对象来配置其权限;
  • 默认属性 (d):还可以针对在该目录下在创建新文件/目录时,规范其默认权限;

2、如何启动 ACL

  • centos7 默认是启动 ACL 的
磁盘和文件系统相关命令回顾
  • fdisk:可以进行分区等操作
  • df:查看文件系统的占用情况
  • du:查看文件或者目录的空间占用
  • mount:查看当前系统设备的挂载情况
  • dumpe2fs:查看 ext 格式的文件系统信息
  • xfs_growfs:可以查看 xfs 文件系统的相关信息

3、ACL 配置

  • setfacl的主要选项
-m :配置后续的 acl 参数给文件使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-d :配置默认 acl 参数的意思!只对目录有效,在该目录新建的数据会引用此默认值
=> 给指定的用户设置相应的权限
setfacl -m u:vbird1:rx acl_test1

=> 默认是文件的所有者
setfacl -m u::rwx acl_test1
  
=> 权限后面有 + 的话,就是配置了ACL参数
ll acl_test1 
  • setfacl可以识别的规则格式
[d[efault]:] [u[ser]:]uid [:perms]  指定用户的权限,文件所有者的权限(如果uid没有指定)。
[d[efault]:] g[roup]:gid [:perms]   指定群组的权限,文件所有群组的权限(如果gid未指定)
[d[efault]:] m[ask][:] [:perms]     有效权限掩码
[d[efault]:] o[ther] [:perms]       其他的权限
  • getfacl得到的输出如下
# file: acl00
# owner: root
# group: root
user::rwx
user:stan:rwx        #针对特殊用户的权限设置
group::r-x
mask::rwx             # 最大的权限范围
other::r-x
default:user::rwx   # 设置针对所有者的默认的权限,可继承的
default:user:stan:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
=> 设置最大的权限范围
setfacl -m m:rwx acl00   

=> 设置可继承的默认权限       
setfacl -m d:u:stan:rwx acl00   

在这里插入图片描述

 

四、用户切换

1、用户切换su

  • 若要完整的切换到新使用者的环境,必须要使用su - usernamesu -l username, 才会连同 PATH/USER/MAIL 等变
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值