Linux管理用户和组
时间:2020-05-17
本文章向大家介绍Linux管理用户和组,主要包括Linux管理用户和组使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本篇主要讲述:
1 用户、用户组基本概念
2 用户管理以及操作
3 组管理以及操作
1、用户、用户组基本概念
1.1 基本概念
用户账户的作用:登陆操作系统、访问控制(不同的用户具备不同的权限)
组帐号:方便对用户的管理
唯一标识: UID GID
管理员的UID:0
普通用户UID:RHEL7从1000开始
组的分类: 附加组(从属组、公共组) 基本组(私有组)
2、用户管理及操作
2.1 添加用户
用户基本信息存放在 /etc/passwd 文件
[root@server0 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:GID:用户的描述信息:家目录:解释器程序
使用 useradd 命令
useradd [选项]... 用户名
useradd +用户名
• 常用命令选项
-u 指定用户ID 从1000开始(普通用户)
-d 指定用户家目录
-s 和/sbin/nologin 使用禁止某个用户登录
useradd -s /sbin/nologin nsd08
-g 指定组
groupadd study
useradd -g study nsd 10
结果:
uid=1204(nsd10) gid=1204(study) 组=1204(study)
-G 附加组
useradd -G study nsd11
结果:
uid=1205(nsd11) gid=1205(nsd11) 组=1205(nsd11),1204(study)
– -u 用户id、-d 家目录路径、-s 登录Shell
– -g 基本组、-G 附加组
[root@server0 ~]# useradd nsd01 [root@server0 ~]# id nsd01 #查看用户基本信息 uid=1001(nsd01) gid=1001(nsd01) 组=1001(nsd01) [root@server0 ~]# grep 'nsd01' /etc/passwd [root@server0 ~]# useradd -u 1200 nsd02 [root@server0 ~]# grep 'nsd02' /etc/passwd [root@server0 ~]# id nsd02 [root@server0 ~]# useradd -d /opt/abc nsd07 #指定家目录 [root@server0 ~]# grep 'nsd07' /etc/passwd [root@server0 ~]# useradd -s /sbin/nologin nsd09 #/sbin/nologin:阻止用户登陆系统 [root@server0 ~]# grep 'nsd09' /etc/passwd [root@server0 ~]# groupadd study [root@server0 ~]# useradd -g study nsd10 #指定基本组 [root@server0 ~]# id nsd10 [root@server0 ~]# useradd -G study nsd11 #指定附加组 [root@server0 ~]# id nsd11
小知识:
管道操作:将前面命令的输出结果,传输给后面命令,作为后面命令的参数
显示/etc/passwd/文件8-12行内容?
[root@server0 ~]# head -12 /etc/passwd | tail -5 [root@server0 ~]# cat -n /etc/passwd | head -12 | tail -5 [root@server0 ~]# ifconfig | head -2 [root@server0 ~]# ifconfig | less [root@server0 ~]# echo 1+1 | bc [root@server0 ~]# echo 3*2 | bc
2.2 使用 passwd 命令
交互式设置密码
[root@server0 ~]# passwd nsd01
非交互式设置密码
[root@server0 ~]# echo 123 | passwd --stdin nsd01 [root@server0 ~]# echo redhat | passwd --stdin nsd02
用户密码信息存放在 /etc/shadow 文件
2.3 使用 usermod 命令
usermod [选项]... 用户名
• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录Shell
– -g 基本组、
– -G 附加组
[root@server0 ~]# useradd nsd12 [root@server0 ~]# grep 'nsd12' /etc/passwd [root@server0 ~]# usermod -u 1600 -d /opt/test -G study -s /sbin/nologin nsd12 #改变用户的ID,家目录,附加组以及是否能登录 [root@server0 ~]# grep 'nsd12' /etc/passwd [root@server0 ~]# id nsd12
2.4 删除用户
使用 userdel 命令
userdel [-r] 用户名
[root@server0 ~]# userdel nsd01 [root@server0 ~]# id nsd01 [root@server0 ~]# userdel -r nsd02 #递归删除 [root@server0 ~]# id nsd02
3、组管理及操作
3.1 添加组
组基本信息存放在 /etc/group 文件
[root@server0 ~]# grep 'stugrp' /etc/group stugrp:x:1605:
组名:组的密码占位符:GID:组成员列表
• 使用 groupadd 命令
groupadd [-g 组ID] 组名
• 使用 gpasswd 命令 #管理组成员
gpasswd -a 用户名 组名 #添加成员到哪个组
gpasswd -d 用户名 组名 #从哪个组中删除成员
[root@server0 ~]# grep 'stugrp' /etc/group [root@server0 ~]# gpasswd -a natasha stugrp [root@server0 ~]# grep 'stugrp' /etc/group [root@server0 ~]# gpasswd -a kenji stugrp [root@server0 ~]# grep 'stugrp' /etc/group [root@server0 ~]# gpasswd -d kenji stugrp [root@server0 ~]# grep 'stugrp' /etc/group
3.2 使用groupmod命令 #修改组属性
groupmod -g 1100 组名 #修改gid号
3.3 删除组
• 使用 groupdel 命令
groupdel 组名
原文地址:https://www.cnblogs.com/cp-linux/p/12880077.html
- 基于 Spring Cloud 完整的微服务架构实战
- maven build时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
- 用Raspberry Pi Zero打造「即插即用」的Web服务器
- Spring Cloud(七)服务网关 Zuul Filter 使用
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- Spring Cloud(六)服务网关 zuul 快速入门
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
- Docker Image 解决镜像无法删除的问题
- Docker Hub 仓库使用,及搭建 Docker Registry
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android通过原生请求直接获取网页内容
- matplotlib | Python强大的作图工具,让你从此驾驭图表(二)
- 设计模式 | Catalog设计模式,抵御业务方需求变动
- 【Flutter 专题】99 初识 EventBus
- LeetCode 102 | 将二叉树中同层的元素归并在一起
- Git | Git入门,成为项目管理大师(二)
- 学习|Unity3D使用协程实现减速停车效果
- R语言实现文献的批处理
- django-haystack ImportError: cannot import name 'six' from 'django.utils' in django 3.x
- Thanos 与 VictoriaMetrics,谁才是打造大型 Prometheus 监控系统的王者?
- 阅读大型开源软件的四个技巧
- Tomcat NIO(7)-Poller
- python 求解线性规划问题
- Netty高性能之道
- 关于im-live-sells自定义群组字段的使用