linux用户密码以及用户组管理

用户

用户相关的配置文件

  1. /etc/passwd 用户的主配置文件,用户的各种属性
  2. /etc/shadow 用户密码文件,存放密码及密码的属性
  3. /etc/gshadow 用户组的密码文件(废弃)

添加用户

# 默认创建
useradd test1

# 指定uuid添加用户
useradd -u 5000 test2

# 指定用户的登录shell
# nolobin是不可以登陆的
useradd -s /sbin/nolobin test3    

# 指定用户家目录,默认是在/home下
useradd -d /opt/test4 test4

# 创建用户时不创建家目录
useradd test5 -M

# 添加用户指定属于其他用户组
useradd test5 -g root

# 添加用户设置过期时间
useradd -e "2030/05/30"  test6

查看用户信息

# 查看uid和加入的组
id test1

# 查看用户的过期时间
chage -l 用户名

修改用户信息

usermod
# -d: 修改用户家目录
# -e: 修改用户过期时间
# -g: 修改用户所属组
# -s: 修改登录时使用的shell
# -u: 修改uid

删除用户

userdel test
# -r: 当删除用户时,一并删除该用户的家目录。如果不加-r选项,则会直接删除用户,但保留其家目录

su切换用户角色

# 携带用户变量切换
su - 用户名  

# 表示用其他的用户去执行这个命令
su 用户名 -c 命令  

提升普通用户权限

# sudo的配置文件是/etc/sudoers
# 这在个配置文件的第100行:
root    ALL=(ALL)     ALL

# 设置db用户在所有主机上,可以切换到所有角色,执行所有命令,且执行sudo时不用输入密码。
db    ALL=(ALL)    NOPASSWD: ALL

密码

passwd给用户设置密码

# 用户自己给自己设置
passwd

# root给其他用户设置密码
passwd +需要设置密码的用户名

# --stdin 从标准输入读取密码字符串
echo 123456|passwd --stdin root

chpasswd批量设置密码

# 把用户和密码用冒号分隔
cat user.list
test1:01
test2:02
test3:03
test4:04

cat user.list | chpasswd
# 此时test1-test5都设置了

chage查看/更改密码属性

chage -l root
最近一次密码修改时间                    :从不
密码过期时间                    :从不
密码失效时间                    :从不
帐户过期时间                        :从不
两次改变密码之间相距的最小天数        :0
两次改变密码之间相距的最大天数        :99999
在密码过期之前警告的天数    :7

# -l 查看用户的密码属性
# -E 设定账户过期时间 等价于useradd -e 设定过期时间

用户组

添加组

groupadd test
# -g 设置gid,如果不加-g选项,则按照系统默认的gid创建组,跟uid一样,gid也是从1000开始的

删除组

groupdel  test
# 没有特殊的选项,但是要把组下面的用户先删除才可以删除这个组
posted @ 2025-08-12 23:43  阿峰博客站  阅读(21)  评论(0)    收藏  举报