五陵年少金市东,银鞍白马渡春风。这篇文章主要讲述linux 用户和用户组相关的知识,希望能为你提供帮助。
(一)用户信息文件:/etc/passwd
(1)passwd的使用介绍:
①man 5passwd
vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
(2)/etc/passwd字段介绍:
①第一字段:用户名称
②第二字段:密码标志{x表示,实际的密码文件存放于/etc/shadow,shadow的权限为000,如果将x标识去掉,但是不会造成“无密码登录”因为去掉“x”只能允许本地登录,不允许远程登录}
③第三字段:UID{用户ID}
0:超级用户{把普通用户的uid改为0也就为超级用户}
1-499:系统用户{伪用户-各种服务调用的用户,也不能登录]
500-65535:普通用户
④第四字段:GID(用户初始组ID)
1、初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
2、附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
⑤第五字段:用户说明
⑥第六字段:家目录
普通用户:/home/用户名/
超级用户:/root
⑦第七字段:登录之后的shell
(二)影子文件/etc/shadow:
(1)影子文件的使用:
vim/etc/shadow
sync:*:17834:0:99999:7:::
/etc/shadow//权限为0:0:0,所以除了root,其他任何用户都没有读的权限
(2)/etc/shadow字段介绍:
①第一字段:用户名
②第二字段:加密密码,采用SHA512,如果是“!!”和“*”,代表没有密码,不能登录
③第三字段:密码最后一次修改日期
④第四字段:两次密码的修改间隔,可以设置数值,在数值内不能修改密码
⑤第五字段:密码有效期
⑥密码到期警告时间:就是密码有效期到期多少天前开始提示要修改密码
⑦密码到期之后的宽限天数:
0:代表密码过期后立即失效
-1:代表密码用户不会失效
⑧账户失效时间,要用时间戳表示{时间戳是1970年开始},如果一到这个时间,不管前面的有效期是多少,只要到失效时间会立马失效权限比“-1”要大
把时间戳换算成日期:date-d \'1970-01-01 18899 days\'//“18899代表1970到目前是有多少天”
把日期换算成时间戳:echo $(($(date --date="2016/10/27" +%s)/86400 + 1))
⑨保留
(三)组信息文件/etc/group和组密码/etc/gshadow:
(1)组信息文件:/etc/group:
vim /etc/group
root:x:0:
(2)/etc/group字段介绍:
①第一字段:组名
②第二字段:组密码标志
③第三字段:GID
④第四字段:组中附加用户
(3)/etc/gshadow介绍{这个用的不多}:
vim /etc/gshadow
root:::
①第一字段:组名
②第二字段:组密码{用来管理组}
③第三字段:组管理员用户名
④第四字段:组中附加用户
(四)家目录:
(1)普通用户:/home/用户名/,会自动建立,所有者和所属组都是此用户,权限是700
vim /etc/passwd
sara:x:1000:1000:sara:/home/sara:/bin/bash//修改用户的第四个字段GID也就是第四个字段加入到root组也就是“0”,也不能把此用户变为root组,只能修改uid为0
(2)超级用户:/root/,所有者和所属组都是root用户,权限是550
(3)用户的邮箱:/var/spool/mail
(4)用户模板目录:/etc/skel/
假设在该目录下放一个警告信息,当每天加一个新的用户,就会在该用户的/home下出现一个这样的文件
(五)用户管理useradd:创建用户
(1)useradd[选项] 用户名
(2)选项:
①-u UID:手工指定用户的UID号
②-d 家目录:手工指定用户的家目录
③-c:用户说明:手工指定用户的说明
④-g:组名手工指定用户的初始组
⑤-G:指定用户的附加组
⑥-s shell:手工指定用户登录的shell。默认是/bin/bash
(3)演示1:useradd test :
执行此命令后,将会在/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/home/lamp,/var/spool/mail/lamp 目录下创建文件
(4)演示2:
useradd -u 555 -G root,bin -d /home/test1 -c "test user" -s /bin/bash test1//这里的bin也是一个组,这里是加入了多个组
(5)用户的默认useradd文件的设置:
①vim /etc/default/useradd//用户默认文件
GROUP=100//默认用户组
HOME=/home//默认家目录
INACTIVE=-1//密码过期宽限天数
EXPIRE=//密码失效时间
SHELL=/bin/bash//默认shell
SKEL=/etc/skel//默认模板
CREATE_MAIL_SPOOL=yes//是否建立邮箱
②vim /etc/login.defs
PASS_MAX_DAYS99999//密码有效期
PASS_MIN_DAYS0//密码修改间隔
PASS_MIN_LEN5//密码最为为5位{现在这个文件是不生效的是PAM生效的}
PASS_WARN_AGE7//密码到期警告
UID_MIN//最小和最大UID范围
GID_MAX
ENCRYPT_METHOD//加密模式
(六)用户管理passwd:
(1)passwd[选项]用户名
(2)选项:
①S:查询用户密码的密码状态,仅root用可用
②l:暂时锁定用户,仅root用户可用:“实现的方式是在shadow的文件上在该用户的密码前面加了2个!!”
③u:解锁用户,仅root用户可用
④--stdin:可以通过管道符输出的数据作为用户的密码
echo "123"|passwd--stdin test//就是修改密码的时候可以显示出来,修改的密码就是123
(七)修改用户信息:usermod
(1)usermod//只能修改一个已经存在的用户
(2)选项:
①-u UID:手工指定用户的UID号
②-c:用户说明:手工指定用户的说明
④-g:组名手工指定用户的初始组
⑤-L:临时锁定用户,这个“-L”和passwd的小“l”的区别是两个都可以锁定用户,但是usermod用的大L是在密码位前面加一个“!”而passwd用的小“l”锁定用户前面加的是2个“!!”
⑥-U:解锁用户锁定
(3)演示:usermod -c "test user" -G root -u 550 test
vim /etc/passwd
test1:x:555:1002:test user:/home/test1:/bin/bash
vim /etc/group//查看该用户是否加入到root组里
root:x:0:test1
(八)修改用户密码状态chage:
(1)chage [选项]用户名//修改用户密码状态
(2)选项:
①l:列出用户的详细密码状态
②d日期:修改密码最后一次更改日期(shadow3字段)
③m天数:两次密码修改间隔(4字段)
④M天数:密码有效期(5字段)
⑤W天数:密码过期前警告天数(6字段)
⑥I天数:密码过后宽限天数(7字段)
⑦E日期:账号失效时间(8字段)
(3)演示1:
chage-d 0 test//修改shad的第三个字段,用户一登录就要修改密码
【linux 用户和用户组】
推荐阅读
- linux 密码破解
- 15 路由配置
- 递归及相关习题
- vim编辑器
- shell脚本之if条件测试语句
- Linux 学习 16
- 通过挂载镜像来重置windows server 2016的系统管理员密码
- 如何在EasyDSS内调用的iframe地址设置自动播放()
- PostgreSQL一键安装入门教程