Linux中的用户管理-创建删除修改
用户管理
一、用户分类
用户分为三类:
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
四、用户创建过程
- 使用命令创建用户 自动创建/home/oldboy1
- 会复制/etc/skel/目录下的隐藏文件 存放环境变量的文件 到/home/oldboy1
.bash_logout # 退出操作系统
.bash_profile # 用户的环境变量 供操作系统正常使用 正常运行
.bashrc # 别名的配置文件 - 系统自动修改拷贝过去的隐藏文件权限为普通用户
五、创建用户中可能遇到的问题
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中的用户管理-创建删除修改的更多相关文章
- linux上的用户管理
作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...
- 小白养成记——Linux中的用户和权限管理
1.用户组管理 每个用户都属于一个用户组,系统可以对一个用户组中的所有用户进行集中管理. 在创建用户时,如果未指定组,则系统会创建一个与用户名同名的组. 以下是关于用户组管理的一些基本命令: 新建用户 ...
- Linux中加入用户、删除用户时新手可能遇到的问题
Linux中加入用户.删除用户时新手可能遇到的问题 1.创建新用户后切换到新用户:No directory, logging in with HOME=/ 加入用户 #sudo us ...
- linux 中更改用户权限和用户组的命令chmod,chgrp实例
linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...
- Linux学习之用户管理命令与用户组管理命令(十五)
Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...
- [Linux] Linux系统(用户管理)
Linux中有三种用户 Root用户:超级管理员 系统用户:Linux运行某些程序所必需的用户,不建议修改 普通用户:一般修改这个 使用命令groupadd,添加用户组,参数:组名称 在文件/etc/ ...
- linux中的用户、群组和权限
linux中的用户.群组和权限 新建用户natasha,uid为1000,gid为555,备注信息为“master” groupadd -g 555 natasha useradd -u 1 ...
- 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)
VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...
- Linux中切换用户变成-bash4.1-$的解决方法【转】
转自 Linux中切换用户变成-bash4.1-$的解决方法 - xia_xia的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xia_xia0919/articl ...
- hive 学习系列二(数据库的创建删除修改) 拿走,不谢。
database 相当于一个目录或者命名空间,用来更好地进行表的管理 在hdfs 的目录位置大致如下: [root@iZbp12vtv76y9q3d633bh6Z /]# hadoop fs -ls ...
随机推荐
- SpringMVC:文件上传和下载
文件下载 ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 @RequestMapping(& ...
- 随机读取数组中n个元素
需求 随机不重复的显示一系列图片 分析 可使用Math.random(),其作用是返回介于 0(包含) ~ 1(不包含) 之间的一个随机数.先获取到图片路径,将图片路径放入数组中,再随机从数组中读取n ...
- Figma 学习笔记 – Border
Figma 画 Border 其实还挺难的 4 边框 可以用 build-in 的 Stroke 实现 注: border 是在内部的, 和 HTML 一直 Border Top, Right, Bo ...
- ASP.NET Core 单元测试
前言 单元测试是好, 但是也很花时间. 有些功能封装好了以后也不怎么会再打开, 所以通常就是徒手测试一下, 过了就过了. 但是往往就是那么神奇, 就是会有需求漏掉. 后来要加, 又由于不想潜水, 对自 ...
- PTA甲级—图
1.图的遍历 1013 Battle Over Cities (25 分) 一种方法使用dfs求连通块的个数 #include <cstdio> #include <cstring& ...
- 为了更好的 Flutter | 2021 第二季度开发者调研
自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...
- 无人值守的IDC机房动环综合运维方案
企业数字化转型以及5G.物联网.云计算.人工智能等新业态带动了数据中心的发展,在国家一体化大数据中心及"东数西算"节点布局的推动下,数据中心机房已成为各大企事业单位维持业务正常 ...
- 在 Exchange Server 中配置特定于客户端的消息大小限制
在 Exchange Server 中配置特定于客户端的消息大小限制 微软官方详细文档如下: https://learn.microsoft.com/zh-cn/exchange/architectu ...
- 报名开启|QKE 容器引擎托管版暨容器生态发布会!
当下,"云原生"技术红利正吞噬旧秩序,重塑新世界. 但您的企业是否依然困惑:缺少运维人员或运维团队,想要专注于业务的开发,又不得不兼顾集群的日常运维:在生产环境中,为了保证业务的高 ...
- 第147篇:微信小程序开发中Promise的使用(aysnc,await)
好家伙, 0.错误描述 今天在开发中犯了一个比较严重的错误 对于Promise的错误使用 场景: 微信小程序中展示搜索条件列表 // API请求工具函数 const apiRequest = (url ...