Linux账号管理与ACL权限设定(一)

Linux的账号与群组

Linux系统中,关于账号和群组,实际记录的是UID和GID的数字;

关于账号有两个非常重要的文件:/etc/passwd/etc/shadow

/etc/passwd 文件结构:

账号名称:密码:UID:GID:用户信息说明栏:家目录:shell环境

每一行代表一个账号,有几行就有几个账号;

bin,daemon,adm,nobody等是系统账号;

UID范围设定:0=系统管理员,1~200=系统进程使用 ,201~999=系统用户用来运行服务,不需要登录系统 ,1000+ = 一般用户;

密码为x,真正的密码存放于/etc/shadow;

/etc/nologin可使账号无法登录;

Linux账号管理与ACL权限设定(一)_第1张图片

/etc/shadow 文件结构:

账号名称:密码:密码最近变动日期:密码变动最小间隔天数:密码在此天数内需要变动:密码过期前提前警告的天数:密码过期后账号宽限时间:账号失效日期:保留

Linux账号管理与ACL权限设定(一)_第2张图片

/etc/group 文件结构:

组名:群组密码:GID:此群组支持的账号名称

群组密码为x,真正密码存放于 /etc/gshadow;

Linux账号管理与ACL权限设定(一)_第3张图片

关于群组:有效群组、初始群组 

初始群组

/etc/passwd 第四个字段GID即初始群组,当此用户登入系统,就立刻拥有此群组相关权限;

有效群组

groups 查看当前用户的有效与支持群组;

[root@wenzi ~]#useradd zhangsan
[root@wenzi ~]#useradd lisi -G zhangsan
#切换为用户lisi
[lisi@wenzi ~]$groups
lisi zhangsan

第一个群组 lisi 即为有效群组;zhangsan为支持的群组

newgrp 有效群组的切换,如需退出切换后的有效群组,exit

[lisi@web1 ~]$groups
lisi zhangsan
[lisi@web1 ~]$newgrp zhangsan
[lisi@web1 ~]$id
uid=1001(lisi) gid=1000(zhangsan) groups=1000(zhangsan),1001(lisi)
[lisi@web1 ~]$groups
zhangsan lisi
[lisi@web1 ~]$exit
exit

/etc/gshadow 文件结构:

组名:密码:群组管理员账号:加入该群组支持的所属账号

Linux账号管理与ACL权限设定(一)_第4张图片

账号管理

useradd:新增账号

useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 新账号名

Linux账号管理与ACL权限设定(一)_第5张图片

使用默认值建立一个普通用户 xiaoming

Linux账号管理与ACL权限设定(一)_第6张图片

系统会按照默认值自动处理一些操作:

  • 在 /etc/passwd 里面建立一行与账号相关的数据,包括建立UID/GID/家目录;
  • 在 /etc/shadow 里面将此账号的密码相关参数填入,但尚未有密码;
  • 在 /etc/group 里面加入一个与账号名称一致的组名;
  • 在 /home 下建立一个与账号名称同名的目录作为用户家目录,且权限为700

Linux账号管理与ACL权限设定(一)_第7张图片

Linux账号管理与ACL权限设定(一)_第8张图片

useradd 默认属性见 /etc/default/useradd

centos中预设的群组为和账号同名的群组,并非100;

Linux账号管理与ACL权限设定(一)_第9张图片

 UID/GID、密码参数等默认属性见 /etc/login.defs

Linux账号管理与ACL权限设定(一)_第10张图片

综述,当useradd在建立账号时,至少会参考 /etc/default/useradd 、/etc/login.defs 、/etc/skel*; 

passwd:设定密码

Linux账号管理与ACL权限设定(一)_第11张图片

Linux账号管理与ACL权限设定(一)_第12张图片

修改普通用户密码:passwd 用户名  或  echo "密码" | passwd --stdin 用户名

修改自己密码:passwd

密码规则:

  1. 密码不能与账号相同
  2. 密码尽量不要选系统关键词
  3. 密码超过8个字符
  4. 密码不要使用个人信息,比如手机号、身份证号等
  5. 密码不要用简单关系式,比如1+1=2
  6. 密码尽量大小写、数字、特殊符号组合

chage:密码参数详细显示

Linux账号管理与ACL权限设定(一)_第13张图片

Linux账号管理与ACL权限设定(一)_第14张图片

建立一个名为agetest的账号,该账号第一次登录系统使用默认密码,但必须要更改密码后用新密码才能登录系统使用bash终端

Linux账号管理与ACL权限设定(一)_第15张图片

usermod:修改账号信息

Linux账号管理与ACL权限设定(一)_第16张图片

-U:将/etc/shadow中密码栏的叹号!取消,解冻 

Linux账号管理与ACL权限设定(一)_第17张图片

Linux账号管理与ACL权限设定(一)_第18张图片

userdel:删除用户数据

用户数据有:

账号/密码相关:/etc/passwd、/etc/shadow

用户群组相关:/etc/group、/etc/gshadow

用户个人文件数据:/home/账号名、/var/spool/mail/用户名

Linux账号管理与ACL权限设定(一)_第19张图片

若想完全删除用户数据,可先用 find / -user 用户名 来查询系统内属于该用户的文件,再加以删除。

id:查询某用户的UID/GID

查询自己UID/GID相关信息:id

某用户UDI/GID相关信息:id 【用户名

groupadd:新增群组

Linux账号管理与ACL权限设定(一)_第20张图片

groupmod:修改群组

groupmod 【-g 新GID】 【-n 新组名】 群组名

-g:修改已有的GID数字

-n:修改已有组名

Linux账号管理与ACL权限设定(一)_第21张图片

groupdel:删除群组

groupdel 【群组名】

gpasswd:群组管理员

让一个群组有一个管理员,可以管理哪些账号加入、移除群组。

gpasswd 组名

没有任何参数时,表示给予该组一个密码(/etc/gshadow)

gpasswd 【-A 用户名1,…】 【-M 用户2,…】 组名

-A:将该组的控制权交给用户1,即用户1为该群组群管理员;用户1可以不是该组成员。

-M:将用户2加入该群组

gpasswd 【-rR】 组名

-r:将该群组密码移除

-R:将该群组密码栏失效

gpasswd 【-ad】 用户1 群名

-a:将用户1加入该群

-d:将用户1移除该群

案例:

完成以下任务

Linux账号管理与ACL权限设定(一)_第22张图片

Linux账号管理与ACL权限设定(一)_第23张图片

ACL

ACL在传统 ower / group / other 的权限 r / w / x 之外提供为单一使用者,单一文件或目录来进行 r / w / x 的权限规范。

getfacl:取得某个文件或目录的ACL设定项目 getfacl 目标文件名

Linux账号管理与ACL权限设定(一)_第24张图片

setfacl:设定某个文件或目录的ACL规范  setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名

Linux账号管理与ACL权限设定(一)_第25张图片

针对特定使用者:

设定规范:setfacl -m u:用户列表:权限 文件或目录

Linux账号管理与ACL权限设定(一)_第26张图片

Linux账号管理与ACL权限设定(一)_第27张图片

Linux账号管理与ACL权限设定(一)_第28张图片

Linux账号管理与ACL权限设定(一)_第29张图片

针对特定群组:

设定规范:setfacl -m g:群组列表:权限 文件或目录

Linux账号管理与ACL权限设定(一)_第30张图片

Linux账号管理与ACL权限设定(一)_第31张图片

针对有效权限:

使用者、群组设定的权限必须要在mask的权限设定范围内才会生效,超出的权限不生效

设定规范:setfacl -m m:权限 文件或目录

使用默认权限设定目录内的文件继承ACL权限:

设定规范:setfacl -m d:[ u / g ]:[用户/群组]:权限 文件或目录

设定一个有用户 / 群组没有任何权限的ACL语法中,权限字段不可留白,应用一个减号[-]。 

你可能感兴趣的:(Linux基础,linux,运维)