-1:则代表密码永久不会生效 第八字段:帐号失效时间 要用时间戳表示 第九字段:保留字段 2.时间戳换算
把时间戳换算为如期
date -d \ 把日期换算为时间戳
echo $(($(date --date=\ 3).组信息文件/etc/gtoup和组密码文件/etc/gshadow 1.组信息文件/etc/group 第一字段:组名
第二字段:组密码标志 第三字段:GID
第四字段:组中附加用户 2.组密码文件/etc/gshadow 第一字段:组名 第二字段:组密码
第三字段:组管理员用户名 第四字段:组中附加用户 2.用户管理相关文件 1).用户的家目录
普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700 超级用户:/root/,所有者和所属组都是root用户,权限是500 2).用户的邮箱
/var/spool/mail/用户名/ 3).用户模板目录 /etc/skel/ 3.用户管理命令
1).用户添加命令useradd ①.useradd命令格式
-u UID:手工指定用户的UID号 -d 家目录:手工指定用户的家目录 -c 用户说明:手工指定用户的说明 -g 组名:手工指定用户的初始组 -G 组名:指定用户的附加组
-s shell:手工指定用户的登录Shell,默认是/bin/bash 2).修改用户密码passwd ①.passwd命令格式
-S:查询用户密码的密码状态.仅root用户可用 -l:暂时锁定用户.仅root用户可用 -u:解锁用户.仅用户可用
--stdin:可以通过管道符输出的数据作为用户的密码 3).修改用户信息usermod,修改用户密码状态chage
①.修改用户信息usermod
-u UID:修改用户的UID号
-c 用户说明:修改用户的说明信息 -G 组名:修改用户的附加组 -L:临时锁定用户 -U:解锁用户锁定
②.修改用户密码状态chage
-l:列出用户的详细密码状态
-d 日期:修改密码最后一次更改日期(shadow3字段) -m 天数:两次密码修改间隔(4字段) -M 天数:密码有效期(5字段)
-W 天数:密码过期前警告天数(6字段) -I 天数:密码过后宽限天数(7字段) -E 日期:帐号失效时间(8字段) 4).删除用户userdel,用户切换命令su ①.删除用户userdel
-r:删除用户的同时删除用户家目录 ②.查看用户ID id 用户名
③.切换用户身份su(su - 用户名)
-:选项只使用\代表连带用户的环境变量一起切换,[\必须加上] -c 命令:仅执行一次命令,而不切换用户身份 4.用户组管理命令 1).添加用户组
groupadd 组名【-g GID:指定组ID】 2).修改用户组
groupmod 组名【-g GID:修改组ID,-n 新组名:修改组名】 3).删除用户组 groupdel 组名
4).把用户添加入组或从组中删除 gpasswd 选项 组名【-a 用户名:把用户加入组,-d 用户名:把用户从组中删除】 七、权限管理 1.ACL权限
1).ACL权限简介与开启 ①.
②.查看分区ACL权限是否开启
dumpe2fs -h /dev/sda3【dumpe2fs命令是查询指定分区详细文件系统信息的命令,-h:仅显示超级块中信息,而不显示磁盘块组的详细信息】 ③.临时开启分区ACL权限
mount -o remount,acl /【重新挂载根分区,并挂载加入acl权限】 ④.永久开启分区ACL权限 vim /etc/fstab【进入编辑模式,UUID=asdqq-qweqwe-qweqwe-qweqew-qweqwe2131123 / ext4 defaults,acl 1 1(加入acl)】
mount -o remount /【重新挂载文件系统,使修改生效】 2).查看与设定ACL权限 ①.查看ACl命令
getfacle 文件名【查看acl权限】
②.设定ACL权限的命令(setfacl 选项 文件名) -m:设定ACl权限(u:用户名:权限) -x:删除指定的ACl权限 -b:删除所有的ACl权限 -d:设定默认ACL权限 -k:删除默认ACL权限 -R:递归设定ACL权限 3).最大有效权限与删除ACL权限 ①.最大有效权限mask
mask是用来指定最大有效权限的.如果我给用户赋予了ACL权限,是需要和mask的权限\相与\才能得到用户的真正权限
setfacl -m m:rx 文件名【修改最大有效权限,设定mask权限为r-x.使用\权限\格式】
②.删除ACL权限
setfacl -x u:用户名 文件名【删除指定用户的ACl权限】 setfacl -x g:组名 文件名【删除指定用户组的ACl权限】 setfacl -b 文件名【会删除文件的所有的ACL权限】 4).默认ACL权限和递归ACL权限 ①.递归ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACl权限
setfacl -m u:用户名:权限 -R 文件名 ②.默认ACL权限
默认ACl权限的作用是如果给父目录设定了默认ACl权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限.
setfacl -m d:u:用户名:权限 文件名 2.文件特殊权限 1).SetUID
①.SetUID的功能
>只有可以执行的二进制程序才能设定SUID权限 >命令执行者要对该程序拥有x(执行)权限
>命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
>SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效.
>passwd命令拥有SetUID权限,所以普通可以修改自己的密码[ll /usr/bin/passwd]
>cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件[ll /bin/cat]
②.设定SetUID的方法
>4代表SUID[chmod 4755 文件名,chmod u+s 文件名] ③.取消SetUID的方法 >chmod 755 文件名 >chmod u-s 文件名 ④.危险的SetUID
>关键目录应严格控制写权限.比如\、\等 >用户的密码设置要严格遵守密码的三原则
>对系统中默认应该具有SetUID权限的文件做一列表,定时检查有没有这之外的文件被设置了SetUID权限. 2).SetGID
①.SetGID针对文件的作用
>只有可执行的二进制程序才能设置SGID权限 >命令执行者要对该程序拥有x(执行)权限
>命令执行在执行程序的时候,组身份升级为该程序文件的属组.
>SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效.
>/usr/bin/locate是可执行二进制程序,可以赋予SGID. >执行用户lamp对/usr/bin/locate命令拥有执行权限.
>执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令,查询mlocate.db数据库.
>命令结束,lamp用户的组身份返回为lamp组. ②.SetGID针对目录的作用
>普通用户必须对此目录拥有r和x权限,才能进入此目录. >普通用户在此目录中的有效组会变成此目录的属组.
>若普通用户对此目录拥有w权限时,新建的文件默认属组是这个目录的属组.
③.设定SetGID
>2代表SGID[chmod 2755 文件名,chmod g+s 文件名] ④.取消SetGID
>chmod 755 文件名 >chmod g-s 文件名 3).Sticky BIT
①.SBIT粘着位作用
>粘着位目录只针对目录有效
>普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限.
>如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件.一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件. ②.设置与取消粘着位 >设置粘着位
chmod 1775 目录名 chmod o+t 目录名
>取消粘着位
chmod 777 目录名 chmod o-t 目录名 3.文件系统属性chattr权限 1).chattr命令格式
chattr [+-=][选项] 文件或目录名【+:增加权限,-:删除权限,=:等于某权限】 选项:>i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件.
>a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除.
2).查看文件系统属性
lsattr 选项 文件名【-a:显示所有文件和目录,-d:若目标是目录,仅列出目录本身的属性,而不是子文件的】 4.系统命令sudo权限 1).sudo权限
>root把本来只能超级用户执行的命令赋予普通用户执行. >sudo的操作对象是系统命令. 2).sudo使用
>visudo【实际修改的是/etc/sudoers文件】 root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) %whell ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) 3).授权sc用户可以重启服务器 >visudo【进入vim编辑模式】
sc ALL=/sbin/shutdown -r now【例】
4).普通用户执行sudo赋予的命令(不建议给普通用户授权vim这样的工具权限) sudo -l【查看可用的sudo命令】
sudo /sbin/shutdown -r now【普通用户执行sudo赋予的命令】
八、文件系统管理
1.回顾分区和文件系统 1).分区类型
>主分区:总共最多只能分四个
>扩展分区:只能有一个,也算做主分区的一种,也就是说主分区加扩展分区最多有四个.但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用.
>逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区. 2).文件系统
>ext2:是ext文件系统的升级版本,RedHatLinux7.2版本以前的系统默认都是ext2文件系统.1993年发布,最大支持16TB的分区和最大2TB的文件.
>ext3:ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能,