千家信息网

user和group

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,一、用户命令:useradd、userdel、usermod、getent、figner、passwd newusers chpasswd id关联的文件:/etc/passwd 、/etc/shad
千家信息网最后更新 2025年01月20日user和group

一、用户

命令:useradd、userdel、usermod、getent、figner、passwd newusers chpasswd id

关联的文件:/etc/passwd 、/etc/shadow 、/etc/skel 、/etc/login.defs

用户分为三类且是根据用户id来划分:

id为0:管理员

id为1-500:系统用户(centos5,6)

1-1000:系统用户(centos7)

id 大于500:普通用户(centos5,6)

大于1000:普通用户(centos7)

ps:系统用户不需要登陆,系统上面的某些进程运行时,需要以一个身份来运行,通常是系统用户,且系统用户的shell类型为/sbin/nologin


命令详解:

useradd:添加用户

-u:指明用户uid

-g:指明用户的组

-G:指明用户的附加组

-d:指明用户的家目录

指明家目录的父目录必须有,子目录必须没有

-s:指明用户的shell类型

-c:指明用户的注释信息

-r:创建系统用户,可配合-s /sbin/nologin使用

创建系统用户时,不会自动生成家目录和邮箱目录,cd /home/user 提示不存在,这时登陆时会提示:

su: 警告:无法更改到 /home/new2 目录: 没有那个文件或目录

-bash-4.2$

原因:没有家目录导致,重新创建家目录,并将

cp -r /etc/skel/.[^.]* /home/new2

-N:不创建与属主同名的组,默认设置为id为100的users组

-o:允许使用重复的uid创建用户,不校验

-m:创建用户的家目录

-M:不创建用户的家目录

-U:创建与用户名同名的组

-D:显示或更改默认设置

[root@localhost ~]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel (.bash_logout .bash_profile .bashrc .mozilla)

CREATE_MAIL_SPOOL=yes


userdel:删除用户

-r:删除用户同时删除家目录和邮箱目录


usermod:修改用户的相关属性

-u:修改用户的uid

-g:修改用户的主组

-G:修改用户的附加组,默认是覆盖,如需添加需要配合-a使用

usermod -G "" wang 删除wang 用户的附加组

-d:修改用户的家目录,要移动家目录中数据配合-m使用

-c:修改用户的注释信息

chfn user 给user用户添加注释信息

-b:修改用户的shell

chsh -s /bin/csh user 改变shell类型

-l:修改用户名

-f:设置账号密码过期多少天后失效

-e:设置密码过期时间

-L:锁定账号

-U:解锁账号


passwd:修改用户密码

-l:锁定账户的密码

-u:解锁账户的密码

-d:删除已有的密码

-e:用户登陆后会强制用户修改密码

-x:密码的最长有效时限(只有根用户才能进行此操作)

-n:密码的最短有效时限(只有根用户才能进行此操作)

-w:在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)

-i:当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操


id:显示用户和组的信息

-u:显示用户uid,配合-n显示用户名

-g:显示用户gid,配合-n显示用户组

getent:查看用户的账户和密码信息

getent passwd/shadow username

finger:查看用户的信息

finger username

newusers:批量创建用户

首先编辑一个文档,在文档中按照/etc/passwd的格式编辑N个用户

newusers useradd.txt 即可添加多个用户

chpasswd:批量给用户添加密码

首先编辑一个文档,在文档中编辑,username:passwd即可,

cat passwd.txt |chpasswd 接口给多个用户添加文档


文件详解:

/etc/passwed:保存用户的相关信息

root:x:0:0:root:/root:/bin/bash

1.用户名 2.密码占位符 3.数主 4.数组 5.注释信息 6.家目录 7.shell

/etc/shadow:保存用户的密码信息

root:$6$bsudKYD7$6fhHWBe.pd78cnSdKk0m0Z6FpTrlcC.F.uGAhZxTKX1szFrgKq/YqQMHCluS8adDsJ2lHmgEui8EZx3IJEudo.:17010:0:99999:7:::

1.用户名

2.密码信息,$1:md5加密方式,加密长度128位,$6:sha6加密方式,加密长度512位

3.从1970年1月1日到最后修改密码的的时间

4.密码最短使用时间:小于N天不能修改密码 chage -m 2 -M 4 user

5.密码使用最长期限:如果M 比 m小则用户不能修改密码

6.提前多少天提醒更换密码

7.密码失效多少天后账户被锁定

8.账户有效期,从1970年1月1日,多少天后账号失效

ps:md5 和 sha512 属于哈希单向加密算法,不可逆,且md5已被破解。

openssl rand -base64 20:创建一个20位的随机密码

authconfig --passalgo=sha512 --update:将加密机制改成sha512,下次更新密码后会自动更新,之前创建的密码不会更改。

/etc/login.defs:定义passwd和shadow中的信息


二、组

命令:groupadd 、groupdel 、groups、groupmems、gpasswd、newgrp

关联文件:/etc/group、/etc/gshadow

命令详解:

groupadd:添加组

-o:创建一个组id重复的组

-g:指明组id

-r:指明系统用户

groupdel:删除组

groupmems

-l -g tom:查看tom组里面有哪些成员

-p -g tom:删除tom的组成员

-d harry -g tom:删除tom组里面的harry成员

-a harry -g tom:将harry用户添加到tom组里面

groups tom:指明tom用户所在的组

gpasswd:

-a:将user1用户添加到root组中

gpasswd -a user1 root

groupmems -l -g root 查看root组中有哪些成员

-d:将user1用户从root中删除

gpasswd -d user1 root

groupmems -l -g root

-r:移除组密码

-M:设置组的成员列表

gpasswd -M user1,user2,user3 root

groupmems -l -g root

newgrp:临时指定主组,exit就恢复为当前登陆用户了

在newgrp user之后,创建的文件默认的属组都是user。

关联文件

/etc/group

admins:x:1004:natasha,harry

1.组名称 2.密码占位符 3.组id 4.组列表

/etc/gshadow

admins:!::natasha,harry

1.组名称 2.密码 3.组管理员列表 4.组列表



0