Linux用户类型:

1. 超管    UID:0  
2. 系统用户  UID:1-999
3. 普通用户  UID:1000+

用户组:

 GID  
    1. 主要组
    2. 附属组
root:x:0:0:root:/root:/bin/bash

用户名:密码占位符:UID:GID:描述信息:用户家目录

# 存放系统用户密码
cat /etc/shadow

可登录系统:
    /bin/bash
    /bin/sh

不可以登录系统:
    /sbin/nologin
    /bin/false
  • 生成随机密码
tr -dc '[:alnum:]' < /dev/urandom | head -c 10
No3hsH5O1v

openssl rand -base64 10
N82ydOrTX5y0uw==

网页版:
https://suijimimashengcheng.bmcx.com/
  • 编辑配置文件 vipw
vipw -p		编辑/etc/passwd文件
vipw -g	 	编辑/etc/group文件
vipw -s 	编辑/etc/shadow文件

# 验证
pwck -q	仅报告错误信息
pwck -s	以用户id排序文件
  • 直接查看配置文件
getent passwd		查看/etc/passwd文件
getent shadow		查看/etc/shadow文件
getent group 		查看/etc/grooup文件
getent gshadow		查看/etc/gshadow文件

getent可以直接过滤文件内容
[root@centos7 ~]# getent passwd root
root:x:0:0:root:/root:/bin/bash
  • 创建用户 useradd
useradd -u		#指定该用户的UID
useradd -o		#配合-u 选项,不检查UID的唯一性
useradd -d		#指定宿主目录,默认为 /home/用户名

useradd -g		#指定用户所属主组(必须已存在)
useradd -G		#指定用户所属的附加组(必须已存在)


useradd -N		#不单独创建私用组做主组,使用users组做主组
useradd -m		#用户目录如不存在则自动建立
useradd -M		#不为用户建立并初始化宿主目录,优先于/etc/login.defs文件的设定

useradd -r		#创建系统用户,但使用shell解释器是/bin/bash

useradd -s 【目录】【用户】		#指定用户的登录Shell
useradd -D		#查看创建用户的/etc/default/useradd的配置内容
  • 示例:
# 创建一个不能登录系统的用户,它的家目录在 /opt ,UID为789,主组是demo3,这是一个测试用户,用户名为 demo9

useradd -s /sbin/nologin -d /opt/demo9 -g demo3 -c "测试用户" -u 789 demo9
  • 注:
[root@centos7 /home/demo2]#su demo2
bash-4.2$ 

# 出现这种情况,将/etc/skel/下的三个隐藏文件拉取到用户家目录下

[root@centos7 /etc/skel]#ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc

  • 修改用户属性 usermod
格式:
usermod 【选项】 【修改对象】【修改名称】

-u	# 修改用户 UID
usermod -u 1010 demo

-g	# 修改用户主组
usermod -g dev demo

-G	# 将用户加入其他组
usermod -G pro demo

-s	# 修改用户登录的Shell
usermod -s /sbin/nologin demo

-c	# 修改用户的描述信息
usermod -c "演示用户" demo

-d	# 修改用户的新的家目录 
usermod -d /opt/demo1 demo1

-l	# 修改用户名
usermod -l demo demo1

锁定 -L 和解锁 -U 用户
usermod -L demo
usermod -U demo

  • 删除用户 userdel
-r	# 删除主目录和邮件池
-f	# 强制删除

  • 查看用户ID信息 id
-u	# 显示UID
-g	# 显示GID
-G	# 显示用户所属组的私有组ID
  • 切换用户 su
su user		# 不完全切换
su - user	# 完全切换

-c	#指定用户的shell终端传递命令, 返回执行结果给当前用户
su - root -c "getent shadow"
  • 设置用户密码 passwd
# 免交互式设置密码
echo 1 | passwd --stdin user

-d	# 删除指定用户密码
passwd -d user1

-l	# 锁定用户
passwd -l user

-u	# 解锁用户
passwd -u user

-e	# 强制用户修改密码
passwd -e user

https://myx.mynatapp.cc/archives/用户组和权限管理