? 用户指的是能够正常登陆linux或windows系统,例登陆QQ的用户、登陆荣耀的用户等
a.系统上的每一个进程(运行的程序),都需要一个特定的用户运行,如同windows上任务管理器里用户选项下各种不同的用户
b.通常在公司是使用普通用户管理服务器,因为root曲线过大,容易造成故障
a.系统对用户有一个约定
b.用户都有特定的UID
0代表超级管理员,有最高权限,有极强的破坏能力 rm -rf /*(删除根下的所有文件,会造成系统奔溃)
1~200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行用户安装的程序;所以此类用户无需登录系统
1000+ 普通用户,正常可以登录的用户,权限比较小,能执行的任务有限
a.使用id命令查询当前登录用户的信息
[root@node: ~]#id #查询当前登录用户的信息
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
id name
[root@node: ~]#id xu #查看其他用户的信息
uid=1001(xu) gid=1001(xu) groups=1001(xu)
当我们创建一个新的用户,系统会将用户的信息存放在/etc/passwd中,而密码单独存储在/etc/shadow中也就是说这两个文件非常的重要,不要轻易删除与修改
a./etc/passwd 配置文件解释如下,或者使用命令 man 5 passwd 获取帮助
[root@node: ~]#head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash 以:作为分隔符,总共七列
第一列 root 用户名称
第二列 x 密码占位符
第三列 0 用户UID
第四列 0 组GID
第五列 root 注释信息
第六列 /root 用户家目录
第七列 /bin/bash 登录shell的类型
/etc/shadow 配置文件解释如下,或者使用命令 man 5 shadow获取帮助
[root@node: ~]#tail -2 /etc/shadow | grep "jake"
jake:!!:18817:0:99999:7::: 以:为分隔符,共九列
第一列:jake 用户名称
第二列:!! 密码为一长串字符,(*|!!)则表示无密码
第三列:18817,最近一次变更密码,从1970年到现在,过了多少天,大概多少年计算(18817/365+1970)
第四列:0 密码最少使用天数,0=无限制
第五列:99999密码最长使用天数,默认99999不过期
第六列:7 系统会在密码到期前7天提醒变更密码
第七列:0 密码到期后,密码过期后强制提示变更用户密码
第八列 : 账户失效时间,从1970年起,账户在这个日期前可以使用,到期失效(没有代表没设置)
useradd + name #即可创建用户
若需要添加linux
系统普通用户,可使用useradd命令,只有root组用户可以添加系统普通用户
选项:
-u 指定要创建用户的UID,不允许冲突
-g 指定要创建用户基本组
-G 指定要创建用户附加组,逗号隔开可以添加多个附加组
-d 指定要创建用户家目录
-s 指定要创建用户的bash shell
-c 指定要创建用户注释信息
-M 给创建的用户不创建家目录
-r 创建系统账户,默认家目录
?
? groupadd
?
?
指定GID:-g
语法格式:groupadd group_name -g GID
? groupmod + 组名称
?
?
?
groupdel Group_name
?
?
? 需求:a 用户id为6969
? b 基本组为ops,附加组dev
? c 注释信息 2000 new student,登录
? shell : /bin/bash
[root@node: ~]#groupadd ops #添加用户组ops
[root@node: ~]#groupadd dev #添加用户组dev
[root@node: ~]#useradd -u 6969 -g ops -G dev -c "2000 new student" -s /bin/bash kafka
useradd -u 6969 #指定UID 6969
-g ops #指定基本组为ops
-G dev #附加组dev
-c "2000 new student" #添加注释 2000 new student,
-s /bin/bash #指定登录的bash shell
kafka #用户名称
[root@node: ~]#su kafka #登录kafke用户
[kafka@node root]$ su #切换到管理员
Password: #输入root密码
[root@node: ~]#id kafka #查看kafka用户信息
uid=6969(kafka) gid=1002(ops) groups=1002(ops),1003(dev)
[root@node: ~]#tail -1 /etc/passwd #查看/etc/passwd下最后一行信息
kafka:x:6969:1002:2000 new student:/home/kafka:/bin/bash
最后输出详情看1.5.1 passwd文件
需求:创建一个mysql系统用户[201~999]
? 该用户不需要家目录
? 该用户不需要登录系统
[root@node: ~]#useradd -r mysql -M -s /sbin/nologin
[root@node: ~]tail -1 /etc/passwdn
mysql:x:998:996::/home/mysql:/sbin/nologin
若想修改linux系统普通用户,可使用usermod命令,使用root登录后可以修改系统普通用户了
选项
修改xu用户
? UID为5008
? 基本组为network,附加组为ops,dev,sa
? 注释信息为student,登录名称为oldxu
[root@node: ~]#usermod xu -u 5008 -g network -G ops,dev,sa -c "student" -l oldxu[root@node: ~]#tail -1 /etc/passwdoldxu:x:5008:1004:student:/home/xu:/bin/bash
如果运行 usermod xu -u 5008 -g network -G ops,dev,sa -c "student" -l oldxu
报错:
usermod: user xu is currently used by process 1572 #这是因为有进程在占用着用户,导致无法删除,解决办法就是找出占用的进程,kill掉之后在执行删除命令。具体如下使用命令 ps -u +用户名 的命令查看占用的进程以及进程的pid,如下[root@node: ~]#ps -u xu PID TTY TIME CMD 1572 ? 00:00:00 sshd 1573 pts/2 00:00:00 bash看到第一行的pid,使用kill命令杀掉进程即可[root@node: ~]#kill 1572[root@node: ~]#ps -u xu PID TTY TIME CMD
修改oldxu用户
? 为oldxu配置密码
? 锁定改用户,然后测试远程连接登录
? 解锁该用户后再次测试远程连接登录
[root@node: ~]# echo "123" | passwd --stdin oldxu #为oldxu设定密码为123 [root@node: ~]#usermod -L oldxu #锁定oldxu [root@node: ~]#usermod -U oldxu #给oldxu解锁
若想删除系统普通用户,可以使用userdel命令,使用root用户登录之后就可以删除系统普通用户了
例如 删除过户oldxu 用户,连同家目录一起删除
[root@node: ~]#userdel -r oldxu
例2 批量删除系统中此前创建过得所有无用的用户
? 使用awk提取无用的用户名称
? 使用sed凭借删除用户的命令
? 调用userdel命令,连同家目录一起全部删除
[root@node: ~]#awk -F ‘:‘ ‘$3>1000{print $1}‘ /etc/passwd | sed -r ‘s#(.*)#userdel \1#g‘| bash
? 创建用户后,如需要使用该用户进行远程登录系统则需要为普通用户设定密码,设定密码使用passwd
? 1.普通用户不可以变更系统的状态;(权限不够)
? 2.如果将【软件|系统】的权限分配给该普通用户,普通用户才可以变更相应配置信息
通过交互式为用户设定密码
[root@node: ~]#passwd #给当前用户修改密码[root@node: ~]#passwd root #给root用户修改密码[root@node: ~]#passwd oldxu #给oldxu用户修改密码,普通用户只能修改自己的密码,管理员可以修改所有用户的密码
[root@node: ~]#echo "12345" | passwd --stdin oldxu
非交互式设定随机密码
yum install -y expect[root@node: ~]#echo $(mkpasswd -l 10 -d 2 -c 2 -c 2 -s 4) | tee pass.txt \> | passwd --stdin oldxu
创建用户流程:
系统在创建用户时参考以下两个配置文件: /etc/login.defs 定义了创建用户时 `UID` 划分规则,密码加密类型,是否创建家目录等 /etc/default/useradd 家目录的位置、环境变量从哪里复制;是否创建邮箱; 默认的创建用户的规则和选项: 默认创建用户: 1.分配UID; 1.添加passwd 记录; 2.在/home目录下创建一个与名称相同的家目录; 3.拷贝/etc/skel/ 环境变量文件; 4.创建邮箱;
?
注意: 使用useradd 的选项优先级要比默认的配置高;
原文:https://www.cnblogs.com/smallxu/p/15004083.html