别人的Linux私房菜(14)Linux账号管理和ACL权限设置

用户标识符UID、GID

用户的账号信息,主要是指UID对应。组和GID对应

检查系统中是否存在用户bin:id bin

登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号,存在则核对UID(/etc/passwd)、GID(/etc/group)。该账号的家目录和shell读出。核对密码。

系统账号如bin、daemon、adm、nobody做系统运行功能,等不应该删除。

/etc/passwd下的显示格式:账号名,密码,UID、GID、说明、家目录、使用的shell。

密码存在于/etc/shadow替代,UID为0表示系统管理员,为1-200为系统设置的系统账号,201-999为用户建立的系统账号,

系统账号通常不可登陆,用户自行设立的可登陆账号,在1000-60000等

GID和/etc/group有关,规范组名与GID的对应

/etc/shadow下的显示格式:账号名称、密码、最近的修改日期天数、密码不可修改的天数、密码需要重新修改的天数、

密码需要修改期限的警告天数、密码过期后账号的宽限时间、账号的失效日期(天)、保留

最近修改日期天数转换为实际日期:chage

最近修改日期与1970年1月1日相差的天数:echo $(( $(date --date="2019/4/20" +%s)/86400 ))

密码过期后账号的宽限时间天数内,登录系统提示修改密码才可使用,超过过期特性后,账号失效

账号失效期后,无法使用此账号

密码忘记的修改:root使用passwd命令修改一般用户的密码

root的密码忘记可以使用单人维护模式下给予root的bash接口通过passwd修改,也可使用Live CD修改/etc/shadow下的root密码设置为空。

查询shadow的加密机制:authconfig --test | grep hashing,例如SHA512。是SHA512,$6,盐c2uvwgf,但是怎么生成的结果不对啊啊啊啊

/etc/group文件结构:组名、用户组密码、GID、该用户组支持的账号

其中的密码在/etc/gshadow中。

新版的Linux已经不会将初始的用户组群(不一定和用户名相同)加入第四个字段了。

http://cn.linux.vbird.org/linux_basic/0410accountmanager_1.php

有效用户组

用户拥有有效用户组的总权限。有效用户组为用户在建立文件或目录的首选用户组。

初始用户组

用户登录后立即拥有的组和权限。通过/etc/passwd找到GID,就是初始化的用户组ID。

之后找到/etc/group下的组ID,对应的组ID名称,之后在/etc/gshadow中找到每个用户组下,拥有的用户。

输出用户组:groups。groups下输出的第一个用户组为有效用户组

 newgrp 有效用户组的切换,登录一个新组,以另一个shell提供的功能(用户的环境设置不会有影响)。

如:newgrp users ,之后建立的文件默认组为users。使用完后退出该新的shell。

 用户想要加入用户组的方式可以用root的usermod加入

也可以使用用户组管理员的gpasswd加入用户到用户组

 /etc/gshadow文件结构:组名、密码栏、用户组管理员账号、加入该用户组支持的所属账号(与/etc/group相同)。

密码栏上的!表示该用户组不具有用户组管理员

 useradd新增用户

-u后接UID,指定UID       -g指定初始用户组         -G该账号还可以加入的用户组     -M强制,不要建立使用者的家目录

-c用户的说明信息       -r建立系统账号        -s指定使用的shell -D默认值

如建立账户bai1:useradd bai1

建立指定UID1500的指定用户组users的用户bai2:useradd -u 1500 -g users bai2

通过grep bai2 /etc/passwd /ect/shadow /etc/group 查看建立情况

建立系统账号:useradd -r bai3#不会主动建立家目录

查看useradd的默认值:useradd -D。

显示的分别为:默认用户组、默认家目录、密码失效日、账号失效日、默认shell、参考目录、是否主动建立邮箱。

 CentOS使用私有的用户组机制,不会参考默认的用户组。公共用户组机制的发行版使用共享的用户组users(100)。

用户家目录参考基准目录一般为/etc/skel。该用户环境变量为其下的~/.bashrc。

为用户建立的mail在路径/var/spool/mail/username下

UID、GID密码参数参考在:/etc/login.defs

显示参数:cat /etc/login.defs | sed 's/#.*$//g' | sed '/^$/d'

文件内容为:mailbox所在目录、shadow(456字段 。密码不可修改的天数、密码需要重新修改的天数、密码需要修改期限的警告天数、

UID、GID指定的数值范围。每次新增查找存在的最大值,加1.

用户家目录的设置开关、建立家目录时的权限UMASK值

删除用户时的如果没有其他人隶属该用户组,是否删除该用户组的开关、使用的密码加密算法

使用useradd添加用户时,至少会参考/etc/default/useradd  /etc/login.defs  /etc/skel/*

 设置密码passwd

--stdin 前一个管道的数据作为输入,密码前加!锁定 -u解锁 -S列出密码相关参数

-n多少天不可修改密码 -x 天数内必须修改密码,-w过期前的警告天数 -i密码失效日期

密码检验使用PAM模块。管理机制写在/etc/pam.d/passwd中,

其中的pam.cracklib.so测试密码信息并替换掉./etc/login.defs内的PASS_MIN_LEN

 例如:passwd bai1设置密码  passwd修改自己的密码

如:echo "2" | passwd --stdin bai2修改密码并不用再次输入,适合批量设置。 

passwd -S bai2; passwd -x 60 -i 10 bai2设置参数日期

 passwd -l 失效 passwd -u生效

 chage显示密码参数并修改

 -l列出详细参数

-d修改最近修改日期,-E等自行man

如:显示密码详细参数bai2  chage -l bai2

设置用户第一次登陆强制修改密码:

useradd bai3 ;echo "bai3" | passwd --stdin bai3; chage -d 0 bai3; chage -l bai3 

 usermod账号数据的相关微调,在创建账号useradd之后。

-c设置账号的说明,-d设置家目录 -e设置失效日期

 例如:添加说明栏:usermod -c "it's my test" bai4

设置账号失效日期:usermod -e "2019-5-1" bai4

 userdel删除用户的相关数据

-r连同家目录一起删除

例如:userdel -r bai4

非必要情况可以将失效日期设置为0而不是删除。

删除为了完整删除(包括邮箱等),应查明系统中的相关文件:如find / -user bai4,之后再执行userdel -r bai4

id查看用户的UID、GID等,如id root

finger查看用户相关信息

猜你喜欢

转载自www.cnblogs.com/bai2018/p/10741511.html