字段含义: 例子:
test1:x:500:500:beinan sun:/home/beinan:/bin/bash test2:x:501:502::/home/linuxsir:/bin/bash第一字段:用户名 第二字段:密码标志(x表示有密码) 第三字段:UID(用户ID)
0:超级用户 1-499:系统用户(伪用户) 500-65535:普通用户
第四字段:GID(用户初始组ID)
初始组:用户一登录就用拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是这个用户的用户名相同的组名作为这个用户的初始组 附加组:用户可以加入多个其他的用户组,并拥有这个组的权限,附加组可以有多个
第五字段:用户说明 第六字段:家目录
普通用户/home/用户名/ 超级用户/root/
第七字段:登录之后的shell
shell:Linux的命令解释器,改变shell的名称可能会导致用户无法登录(千万不要尝试改变root的这个shell,可以用普通用户尝试一下) 在/etc/passwd当中除了标准的Shell是/bin/bash之外还可以写如/sbin/nologin
笔记:ll = ls -l 是一个简写
字段含义: 例子:
test1:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7::: test2:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:第一字段:用户名 第二字段:加密密码
加密算法升级为SHA512散列加密算法 如果密码是"!!"或者“*”表示没有密码,不能登录
第三字段:密码最后一次修改时间
使用1970年1月1日作为标准时间,每过1天时间戳加1
第四字段:两次修改密码的时间间隔(与第三字段相比) 第五字段:密码的有效时间 第六字段:密码修改到期前的警告天数(与第五字段相比) 第七字段:密码过期之后的宽限天数(与第五字段相比)
1:代表密码永远不会失效 0:表示密码过期后立即失效
第八字段:账号失效时间
要用时间戳表示 把时间戳换算为日期:date -d "1970-01-01 16066 days" 把日期换算为时间戳:echo $(($(date --date="2020/10/01" +%s)/86400+1))
第九字段:保留
第一字段:组名 第二字段:组密码标志,x表示有密码 第三字段:GID 第四字段:组中附加用户
1) useradd [选项] 用户名 选项:
-u UID 手工指定用户的UID号 -d 家目录 手工指定用户的家目录 -c 用户说明:手工指定用户的说明 -g 组名:指定用户的初始组 -G 组名:指定用户的附加组 -s shell :指定用户登录的shell,默认是/bin/bash
2) 添加默认用户 useradd sc
grep sc /etc/passwd grep sc /etc/shadow grep sc /etc/group grep sc /etc/gshadow ll -d /home/lamp/ ll /var/spool/mail/lamp
3) 指定添加用户
4) 用户默认值文件
/etc/default/useraddGROUP=100 # 用户默认组 HOME=/home # 用户家目录 INACTIVE=-1 # 密码过期宽限天数(shadow文件中的第七字段) EXPIRE = #密码失效时间(8) SHELL=/bin/bash # 默认shell SKEL=/etc/skel #模板目录 CREATE_MAIL_SPOOL=yse # 是否建立邮箱
/etc/login.defsPASS_MAX_DAYS 99999 # 密码有效期 PASS_MIN_DAYS 0 # 密码修改间隔 PASS_MIN_LEN 5 # 密码最小位数 PASS_WARN_AGE 7 # 密码到期警告 UID_MIN 1000 # 用户最小UID范围 UID_MAX 60000 # 用户最大UID范围 SYS_UID_MIN 201 # 系统用户最小UID SYS_UID_MAX 999 # 系统用户最大UID
1)passwd [选项] 用户名
2)查看密码状态 passwd -S 用户名
lamp PS 2013-01-06 0 99999 7 -1 用户名设定时间2013-01-06 密码修改间隔时间 0 ;密码有效期(7) 密码不失效(-1)
3)锁定和解锁用户
passwd -l 用户名 #锁上用户 passwd -u 用户名 #解锁用户
4)使用字符串作为用户的密码(方便shell编程)
echo"123"|passwd -stdin 用户名
1)修改用户信息usermod [选项] 用户名
-u UID 修改用户的UID号 -c 用户说明:修改用户的说明 -g 组名:修改用户的初始组 -G 组名:修改用户的附加组 -L: 临时锁定用户 -U:解锁锁定用户
2)chage [选项] 用户名
-l 列出用户的详细密码状态 -d 日期:修改密码最后一次的更改日期(shadow的第三字段) -m 天数:两次密码修改间隔(第四) -M 天数:密码有效期(第五字段) -W 天数:密码过期前警告天数(6) -I 天数:密码过期后宽限天数(7) -E 日期:账号失效时间(8)
例子:chage -d 0 用户名 这个命令将密码修改日期归零(shadow第三段),如此用户一登录就需要修改密码
1)userdel [-r] 用户名 (通常需要加入-r选项) 选项:
-r 删除用户的同时删除用户家目录
2)查看用户ID id 用户名
3)su 用户身份切换 env——查看当前的环境变量 su [选项] 用户名
-: 选项只使用’-'代表连带用户的环境变量仪器切换 -c :仅执行一次命令,不切换用户身份
例子:su - root -c “useradd user3” 不切换成root 执行useradd命令
选项:
-g GID 指定组ID
选项:
-g GID -n 新组名
例子:groupmod -n testgrp group1
如果组中有初始用户,该组不能删除 如果组中只有附加用户,该组可以删
useradd -g tg lamp useradd -G tg lamp1 生成两个用户的同时,一个以-g指定初始组为tg,就不会再产生一个名为lamp的初始组了。而另一个以-G指定附加组,会新建一个名为lamp1的初始组和一个tg的附加组
userdel -r lamp groupdel tg 如果需要删掉tg这个组,需要先删去其初始用户,附加用户不影响组的删除
gpasswd [选项] 组名
-a 用户名 把用户加入组 -d 用户名 把用户从组中删除