Linux用户管理

Posted yufenchi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux用户管理相关的知识,希望对你有一定的参考价值。

第1章 用户的基本概述

1.1 什么是用户

用户指的是能够正常登录linux或者windows系统

1.2 为什么要创建用户

1. 系统上的每一个进程(运行的程序),都需要一个特定的用户运行
2. 通常在公司使用普通用户管理服务器,因为root用户的权限太大,容易造成故障

1.3 如何查看系统中所存在的用户

1. 查看当前登录的用户信息
[root@shiyan ~]# id
uid=0(root) gid=0(root) groups=0(root)
2. 查看其它用户的信息(id+用户名)
[root@shiyan ~]# id yfc 
uid=1000(yfc) gid=1000(yfc) groups=1000(yfc)

1.4 用户存在哪里

linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息!但是没有密码信息,密码存放在/etc/shadow中.也就是说,这2个文件非常重要,不要轻易删除!

1.4.1 /etc/passwd配置文件解释如下图

技术图片

1.4.2 /etc/shadow配置文件解释如下图

技术图片

使用change修改密码过期时间示例
https://www.cnblogs.com/xuliangwei/p/10679004.html

1.5 系统的约定

技术图片

第2章 用户的相关命令

1.1 使用useradd新增用户

-u 指定要创建用户的UID,不允许冲突
-g 指定要创建用户默认组
-G 指定要创建用户附加组,逗号隔开可添加多个附加组
-d 指定要创建用户家目录
-s 指定要创建用户的bash shell
-c 指定要创建用户注释信息
-M 给创建的用户不创建家目录
-r 创建系统账户,默认无家目录
1.创建bgx用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
groupadd sa
groupadd students
useradd -u 5001 -g students -G sa -c "2019 new student" -s /bin/bash bgx
2.创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
useradd mysql -M -s /sbin/nologin
useradd -r dba -s /sbin/nologin

1.2 如何使用usermod命令修改用户信息

-u 指定要修改用户的UID
-g 指定要修改用户基本组
-G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
-d 指定要修改用户家目录
-s 指定要修改用户的bash shell
-c 指定要修改用户注释信息
-l 指定要修改用户的登陆名
-L 指定要锁定的用户
-U 指定要解锁的用户
1.检查此前创建的用户信息
[root@bgx ~]#grep "bgx" /etc/passwd
2.修改bgx用户uid、gid,附加组
[root@bgx ~]# groupadd -g 5008 network_sa
[root@bgx ~]# groupadd -g 5009 devops
[root@bgx ~]# usermod -u 6001 -g5008 -a -G 5009 bgx
3. 修改bgx用户的注释信息, 用户家目录, 登录shell, 登录名
[root@bgx ~]# usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
4. 检查是否修改成功
[root@bgx ~]# grep "bgx" /etc/passwd
bgx_xuliangwei:x:6001:5008:2019 new student:/bgx:/bin/sh
[root@bgx ~]# id change_bgx
uid=6001(change_bgx) gid=5008(network_sa) groups=5008(network_sa),503(sa),5009(devops)
[root@bgx ~]# ll -d /bgx
drwx------. 2 bgx_xuliangwei network_sa 4096 2014-09-23 00:13 /bgx
5.锁定用户
[root@bgx ~]# echo "123" |passwd --stdin change_bgx
[root@bgx ~]# usermod -L change_bgx  #锁定后会无法登陆系统
6.解锁用户
[root@bgx ~]# usermod -U change_bgx
PS: 当然还有很多命令可以查看用户的信息,以下简单列举一些,但都是我们常用,所以了解即可
1) 使用finger命名查询用户信息以及登录信息,示例: finger UserName
2) 使用chfn命令修改用户信息,示例: chfn UserName
3) 使用chsh命令修改用户登录Bash Shell,示例: chsh UserName
4) 使用who、whoami、w检查用户登陆情况

1.3 使用userdel命令删除账户

3.使用userdel命令删除账户
#选项 -r 删除用户同时删除它的家目录
#1.删除user1用户,但不删除用户家目录和 mail spool
[root@bgx ~]<span class="hljs-comment"># userdel user1
#2.-r参数可以连同用户家目录一起删除(慎用)
[root@bgx ~]# userdel -r user1

1.4 如何为新用户设定密码,又如何变更用户密码

创建用户后,如需要使用该用户登陆系统则需要为用户设定密码,设定密码使用passwd命令。建议密码复杂度高一些、长度大于10、出现各种特殊字符、无任何规律(不要出现名字,电话,生日等)
PS: 注意事项
1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符
2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。
#1.使用passwd命令修改用户密码
# passwd        #给当前用户修改密码
# passwd root   #给root用户修改密码
# passwd oldboy #给oldboy用户修改密码,普通用户只能自己修改自己
#2.验证如下几项指标
# passwd                #root管理员用户登陆,修改root用户密码
# passwd yfc            #root用户登陆,修改其他用户的密码
$ passwd root           #普通用户修改root管理员密码
# echo "123" | passwd --stdin yfc    #非交互式修改密码
#3. 系统内置变量生成随机字符串
root@bgx ~]# echo $RANDOM|md5sum|cut -c 1-10
d09fe9b1xs
[root@bgx ~]# echo $(echo $RANDOM|md5sum |cut -c 5-14) |tee pass.txt| passwd --stdin yfc
#4.mkpasswd生成随机字符串, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
[root@bgx ~]# yum install -y expect   //需要安装扩展包
[root@bgx ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4
|K&amp;13bR)i/

第3章 用户组的管理

1.1 什么是用户组

其实就是一种逻辑层面的定义,逻辑上将多个用户归纳至一个组,当我们对组操作,其实就相当于对组中的所有用户操作。
对于用户来说,组有几种类别?
基本组,用户只能有一个基本组,创建时可通过-g指定,如未指定则创建一个默认的组(与用户同名)
附加组,基本组不能满足授权要求,创建附加组,将用户加入该组,用户可以属于多个附加组

技术图片

1.2 那组的信息保存在哪呢

组账户信息保存在/etc/group和/etc/gshadow两个文件中。重点关注group

1./etc/group 配置文件解释如下图
技术图片
2./etc/gshadow 配置文件解释如下图
技术图片

以上是关于Linux用户管理的主要内容,如果未能解决你的问题,请参考以下文章

在每个用户的Rails中使用片段缓存

SnippetsLab for Mac 1.9 中文共享版 – 强大的代码收藏管理工具

片段 XXX 未与片段管理器关联

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?