用户管理

一、用户分类

用户分为三类:

1.管理员 root

root UID:0 #拥有最高权限 默认系统中就一个

UID即user ID 类似于身份号码,唯一的,不可重复

2.虚拟用户

作用:在运行程序的时候必须要有一个用户来启动它,但这个用户不需要登录,只用来运行程序

centos6.x中 虚拟用户的UID是 1-499

centos7.x中 虚拟用户的UID是 1-999

虚拟用户的特点是:仅用于运行程序,不可登录系统,没有家目录

3.普通用户

UID:

centos6.x 500+ #默认没有普通用户,需要手动创建用户,普通用户可以登录系统,正常运行命令,有家目录

centos7.x 1000+ #默认没有普通用户,需要手动创建用户,可以登录系统,正常运行命令,有家目录

二、用户相关目录

/etc/passwd 用户的信息

/etc/shadow 用户的密码信息

/etc/group 组信息

/etc/gshadow 组的密码信息文件

/etc/passwd 用户信息文件详解

以冒号分割 看每一列的含义
root:x:0:0:root:/root:/bin/bash
第一列
root: 用户名
第二列:
x: 用户密码 x必须存在如果删除 表示清空密码 可以使用su的方式进行免密码切换用户 第三列:
0: UID
第四列:
0: GID
第五列:
root: 用户的描述信息 可有可无
第六列:
/root: 家目录
第七列:
/bin/bash 解释器 当前用户登录系统后默认的使用什么解释器运行命令 普通用户和管理员用户
/sbin/nologin 不运行当前的用户登录操作系统 傀儡用户 虚拟用户

group: 默认创建后的用户属于自身命名的组

三、用户相关命令

useradd #创建普通用户

语法格式: useradd 参数选项 用户名称

      参数选项:
-s 指定解释器
-u 指定UID
-g 指定GID
-G 指定属于多个组 附属组
-M 不创建家目录 # 普通用户会在/home下自动创建一个家目录
-c 描述 [root@oldboyedu ~]# # 创建一个虚拟用户 UID999 不允许登录 不创建家目录
[root@oldboyedu ~]# #oldboy2
[root@oldboyedu ~]# useradd -u899 -M -s /sbin/nologin oldboy2

usermod #修改已经创建的用户信息

选项:

-c, --comment 注释 GECOS 字段的新值

-d, --home HOME_DIR 用户的新主目录

-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE

-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态

-g, --gid GROUP 强制使用 GROUP 为新主组

-G, --groups GROUPS 新的附加组列表 GROUPS

-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户

-h, --help 显示此帮助信息并推出

-l, --login LOGIN 新的登录名称

-L, --lock 锁定用户帐号

-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)

-o, --non-unique 允许使用重复的(非唯一的) UID

-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码

-R, --root CHROOT_DIR chroot 到的目录

-s, --shell SHELL 该用户帐号的新登录 shell

-u, --uid UID 用户帐号的新 UID

-U, --unlock 解锁用户帐号

-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

例:

[root@oldboyedu ~]# usermod -s /bin/bash -Goldboy1,root -c hehe oldboy2

-s 指定oldboy2用户新的登录环境为/bin/bash

-G 为oldboy2用户添加附加组 oldboy1、root、

-c 写入注释信息 hehe

清空附加组

[root@oldboyedu ~]# id oldboy2 #id 命令查看用户信息

uid=899(oldboy2) gid=1003(oldboy2) groups=1003(oldboy2),0(root),1002(oldboy1)

[root@oldboyedu ~]# usermod -G '' oldboy2 #清空oldboy2用户的附加组

[root@oldboyedu ~]# id oldboy2

uid=899(oldboy2) gid=1003(oldboy2) groups=1003(oldboy2)

userdel #删除用户

userdel zhangsan

仅删除用户张三,不删除张三的家目录

userdel -r zhangsan

删除用户张三所有用户信息,以及张三的家目录

passwd # 给用户设置密码

1.passwd zhangsan

给用户张三设置密码

2.非交互式,直接用命令修改用户密码

非交互式方式

[root@oldboyedu ~]# echo 1|passwd --stdin oldboy1 #设置用户密码为 1(把echo输出到屏幕的内容 --stdin作为oldboy1的密码)

Changing password for user oldboy1.

passwd: all authentication tokens updated successfully.

chown # 修改文件的属主属组

-R 同时修改目录及目录以下所有的文件的属主属组

chown oldboy.oldboy file # 同时修改文件的属主属组

chown oldboy file # 只修改文件的属主

chown .oldboy file # 只修改文件的属组

[root@oldboyedu ~]# chown -R oldboy.oldboy dir #同时修改dir目录的属主属组

[root@oldboyedu ~]# ll dir/

total 0

-rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 1.txt

-rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 2.txt

-rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 3.txt

last

查看用户登录信息

[root@oldboy-lnb ~]# last

lisi pts/1 10.0.0.1 Tue Nov 10 22:46 still logged in

root pts/0 10.0.0.1 Tue Nov 10 14:34 still logged in

reboot system boot 3.10.0-957.el7.x Tue Nov 10 14:33 - 22:46 (08:12)

root pts/0 10.0.0.1 Tue Nov 10 08:27 - crash (06:06)

reboot system boot 3.10.0-957.el7.x Tue Nov 10 08:26 - 22:46 (14:20)

root pts/0 10.0.0.1 Mon Nov 9 08:30 - down (12:28)

reboot system boot 3.10.0-957.el7.x Mon Nov 9 08:29 - 20:59 (12:30)

root pts/0 10.0.0.1 Fri Nov 6 08:32 - down (03:41)

如何查看当前公司的公网IP地址 排除安全隐患

1.查看登录IP是否是公司和家庭的公网IP

2.看时间点

3.查看Linux服务器的公网IP地址

	[root@oldboyedu ~]# curl ifconfig.me
123.112.22.134[root@oldboyedu ~]# curl cip.cc
IP : 123.112.22.134
地址 : 中国 北京
运营商 : 联通 数据二 : 北京市 | 联通 数据三 :

id 查看用户信息

id zhangsan

查看用户张三的uid等信息

如何判断用户是否存在

	1. id 用户名
2. cat /etc/passwd
3. 使用grep 过滤文件内容
[root@oldboyedu ~]# grep 'oldboy1' /etc/passwd
oldboy1:x:1002:1002::/home/oldboy1:/bin/bash
4.[root@oldboyedu ~]# useradd oldboy1
useradd: user 'oldboy1' already exists # oldboy1 用户已存在

lastlog

查看所有用户最后的登录系统的时间

[root@oldboy-lnb ~]# lastlog

用户名 端口 来自 最后登陆时间

root pts/0 二 11月 10 21:45:49 +0800 2020

bin 从未登录过

sshd 从未登录过

postfix 从未登录过

apache 从未登录过

ntp 从未登录过

lisi pts/1 10.0.0.1 二 11月 10 22:46:29 +0800 2020

qwe pts/0 二 11月 10 21:44:25 +0800 2020

whoami

查看当前登录系统用户

[root@oldboy-lnb ~]# whoami

root

四、用户创建过程

  1. 使用命令创建用户 自动创建/home/oldboy1
  2. 会复制/etc/skel/目录下的隐藏文件 存放环境变量的文件 到/home/oldboy1

    .bash_logout # 退出操作系统

    .bash_profile # 用户的环境变量 供操作系统正常使用 正常运行

    .bashrc # 别名的配置文件
  3. 系统自动修改拷贝过去的隐藏文件权限为普通用户

五、创建用户中可能遇到的问题

1.为什么出现以下错误

	[root@oldboyedu ~]# useradd oldboy1
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists 在创建用户时提示无法为用户创建家目录,所以无法创建此用户。可能是由于之前删除同名用户时没有删除他的家目录,那么后面再创建同名用户时,新用户无法使用上一个同名用户的家目录。

如何解决?

分别删除用户oldboy1的家目录、邮件目录,删除oldboy1用户的用户组信息

rm -rf /home/oldboy1

rm -rf /var/sprool/mail/oldboy1

vim /etc/group 进去编辑删除oldboy1的用户组信息,保存退出

至此用户oldboy1彻底删除 然后就可以再创建一个同名的用户了!

2.出现以下错误的解决方式

​ 创建完的用户登录后如下,用户误删家目录,导致的家目录变量丢失,或者是创建用户时出现异常导致。

​ -bash-4.2$

怎么解决?

1. 先拷贝隐藏文件到当前家目录
-bash-4.2$ cp /etc/skel/.* .
2. 退出重新登录到当前用户
方法1: 使用su的方式
方法2: ssh远程连接的方式登录
或者:
source 和 . 重新执行.bash_profile 如: -bash-4.2$ source .bash_profile
[oldboy1@oldboyedu ~]$

Linux中的用户管理-创建删除修改的更多相关文章

  1. linux上的用户管理

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...

  2. 小白养成记——Linux中的用户和权限管理

    1.用户组管理 每个用户都属于一个用户组,系统可以对一个用户组中的所有用户进行集中管理. 在创建用户时,如果未指定组,则系统会创建一个与用户名同名的组. 以下是关于用户组管理的一些基本命令: 新建用户 ...

  3. Linux中加入用户、删除用户时新手可能遇到的问题

    Linux中加入用户.删除用户时新手可能遇到的问题  1.创建新用户后切换到新用户:No directory, logging in with HOME=/     加入用户     #sudo us ...

  4. linux 中更改用户权限和用户组的命令chmod,chgrp实例

    linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...

  5. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  6. [Linux] Linux系统(用户管理)

    Linux中有三种用户 Root用户:超级管理员 系统用户:Linux运行某些程序所必需的用户,不建议修改 普通用户:一般修改这个 使用命令groupadd,添加用户组,参数:组名称 在文件/etc/ ...

  7. linux中的用户、群组和权限

     linux中的用户.群组和权限   新建用户natasha,uid为1000,gid为555,备注信息为“master”   groupadd -g 555 natasha useradd -u 1 ...

  8. 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)

    VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...

  9. Linux中切换用户变成-bash4.1-$的解决方法【转】

    转自 Linux中切换用户变成-bash4.1-$的解决方法 - xia_xia的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xia_xia0919/articl ...

  10. hive 学习系列二(数据库的创建删除修改) 拿走,不谢。

    database 相当于一个目录或者命名空间,用来更好地进行表的管理 在hdfs 的目录位置大致如下: [root@iZbp12vtv76y9q3d633bh6Z /]# hadoop fs -ls ...

随机推荐

  1. SpringMVC:文件上传和下载

    文件下载 ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 @RequestMapping(& ...

  2. 随机读取数组中n个元素

    需求 随机不重复的显示一系列图片 分析 可使用Math.random(),其作用是返回介于 0(包含) ~ 1(不包含) 之间的一个随机数.先获取到图片路径,将图片路径放入数组中,再随机从数组中读取n ...

  3. Figma 学习笔记 – Border

    Figma 画 Border 其实还挺难的 4 边框 可以用 build-in 的 Stroke 实现 注: border 是在内部的, 和 HTML 一直 Border Top, Right, Bo ...

  4. ASP.NET Core 单元测试

    前言 单元测试是好, 但是也很花时间. 有些功能封装好了以后也不怎么会再打开, 所以通常就是徒手测试一下, 过了就过了. 但是往往就是那么神奇, 就是会有需求漏掉. 后来要加, 又由于不想潜水, 对自 ...

  5. PTA甲级—图

    1.图的遍历 1013 Battle Over Cities (25 分) 一种方法使用dfs求连通块的个数 #include <cstdio> #include <cstring& ...

  6. 为了更好的 Flutter | 2021 第二季度开发者调研

    自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...

  7. 无人值守的IDC机房动环综合运维方案

    ​ 企业数字化转型以及5G.物联网.云计算.人工智能等新业态带动了数据中心的发展,在国家一体化大数据中心及"东数西算"节点布局的推动下,数据中心机房已成为各大企事业单位维持业务正常 ...

  8. 在 Exchange Server 中配置特定于客户端的消息大小限制

    在 Exchange Server 中配置特定于客户端的消息大小限制 微软官方详细文档如下: https://learn.microsoft.com/zh-cn/exchange/architectu ...

  9. 报名开启|QKE 容器引擎托管版暨容器生态发布会!

    当下,"云原生"技术红利正吞噬旧秩序,重塑新世界. 但您的企业是否依然困惑:缺少运维人员或运维团队,想要专注于业务的开发,又不得不兼顾集群的日常运维:在生产环境中,为了保证业务的高 ...

  10. 第147篇:微信小程序开发中Promise的使用(aysnc,await)

    好家伙, 0.错误描述 今天在开发中犯了一个比较严重的错误 对于Promise的错误使用 场景: 微信小程序中展示搜索条件列表 // API请求工具函数 const apiRequest = (url ...