当前位置: 首页 > ai >正文

【Linux】用户管理

文章目录

  • 1. 单个用户管理
    • 1.1 记录用户信息的文件
    • 1.2 查看用户
    • 1.3 创建用户
    • 1.4 删除用户
    • 1.5 修改用户
    • 1.6 切换用户
    • 1.7 用户密码修改
  • 2. 用户组管理
    • 2.1 Intro
      • 2.1.2 主用户组和附加用户组
      • 2.1.2 用户组的配置文件
    • 2.2 用户组管理
  • 参考

1. 单个用户管理

1.1 记录用户信息的文件

# /etc/passwd:用户基本信息,一行一个账户
username:password:UID:GID:GECOS:home_directory:shell# /etc/shadow:用户密码和加密密码信息,root才能访问
username:encrypted_password:last_change:min_days:max_days:warning_days:inactive_days:expiration_date:reserved# /etc/group:用户组信息,用户组信息,一行一个用户组
group_name:password:GID:users# /etc/gshadow:用户组的加密密码和组管理信息,只有 root 用户可以访问
group_name:encrypted_password:admin_list:member_list

1.2 查看用户

# 查看当前用户
whoami
id
lslogins -u
echo $USER# 查看系统所有用户
cut -d: -f1 /etc/passwd  # -d指定分隔符,-f指定提取第几个字段(-f1表示提取分割后的第一个字段)
getent passwd | cut -d: -f1
lslogins | awk '{print $2}'# 查看系统所有当前登录用户
who | awk '{print $1}'
w | awk 'NR>2 {print $1}'  # NR是awk内置变量表示行号(NR>2:当前行号大于2)
users

1.3 创建用户

用户被创建后,在系统文件/etc/passwd, /etc/shadow, /etc/group,/etc/gshadow中新增与该用户相关的记录,会在主目录中新增文件(.bashrc,.bash_profile,.profile)。

<< C
useradd [op] username-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-m 创建用户主目录,系统不会自动创建
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
C# case1:创建用户sam
useradd –d /home/sam -m sam# case2:创建用户gem,它同时属于adm组和root组,因而它有这两个组的权限
useradd -s /bin/sh -g group –G adm,root gem

1.4 删除用户

<< C
userdel [op] username-r: -r:删除用户主目录
C
# case1:删除用户sam
userdel -r sam

1.5 修改用户

<<C
usermod [op] usernameop和useradd中的相同
C# case1: 用户sam登录shell改为/bin/ksh,主目录改为/home/z,用户组改为developer
usermod -s /bin/ksh -d /home/z –g developer sam

1.6 切换用户

# 切换到root,需要输入root密码
su -  # -:模拟一个完全登录的会话,即会加载目标用户的环境变量等配置信息
su - root# 切换到普通用户,需要输入sam密码
su - sam# 使用sudo来切换用户,只需要输入当前用户密码,而不需要输入目标用户密码,要求当前用户要有sudo权限
sudo -i  # 切换到root,-i使用交互式shell
sudo -i -u sam # 切换到sam,-u指定用户名# 查询用户是否具备sudo权限

1.7 用户密码修改

<<C
passwd [op] username-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
C# case1: 当前登录用户为sam,修改sam的密码
passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******# case2: root修改其他用户密码
passwd sam# case3:锁定用户sam,让系统不允许sam登录
passwd -l sam# case4: 移除sam的密码,让用户登录sam时无需密码
passwd -d sam

2. 用户组管理

2.1 Intro

2.1.2 主用户组和附加用户组

用户的主用户组:创建用户时所指定的用户组,如果创建用户时没有显示指定用户组,则默认创建和用户名同名的用户组(gid和uid通常相同),并将其作为主用户组。

附加用户组:用户所属的除了主用户主之外的用户组。

2.1.2 用户组的配置文件

/etc/group

groupname:x:gid:member1,member2,...groupname:用户组名
x:密码占位符(实际密码存储在 /etc/gshadow 中)
gid:用户组 ID
member1,member2,...:属于该用户组的用户列表(仅显示通过 gpasswd 命令添加的附加用户组成员,主用户组成员不会显示在这里)

/etc/gshadow,用户组密码使用较少

groupname:password:admin1,admin2:member1,member2,...groupname:用户组名
password:用户组密码(如果有的话)
admin1,admin2:用户组管理员列表
member1,member2:用户组成员列表

2.2 用户组管理

# 查看所有用户组和gid
getent group | cut -d: -f1,3
cat /etc/group | cut -d: -f1,3groups  # 查看当前用户所属的用户组
groups username  # 查看指定用户所属的用户组
id  # 查看当前用户UID、GID 以及所属的附加用户组
id username  # 查看指定用户UID、GID 以及所属的附加用户组groupadd -g 1001 group0  # 添加用户组
# -g 101: 指定gid=101
# group0: group名
groupdel group0  # 删除用户组groupmod -n group1 group0  # 将用户组group0改名为group1
groupmod -g 1002 group0  # 更改用户组的gidgpasswd -a user0 group0  # 将用户user0添加到用户组group0
gpasswd -d user0 group0  # 将用户user0从用户组group0中删除usermod -aG group0 user0  # 将用户user0添加到gruop0附加用户组newgrp root  # 变更用户的主用户组为root组,前提是root组是当前用户的主用户组或者附加用户组

参考

ref:https://www.runoob.com/linux/linux-user-manage.html

http://www.xdnf.cn/news/5118.html

相关文章:

  • 【Docker系列】docker inspect查看容器部署位置
  • C++GO语言微服务之用户信息处理
  • Python爬虫实战:获取woodo网各类免费图片,积累设计素材
  • 计网学习笔记———网络
  • 【bibtex4word】在Word中高效转换bib参考文献,Texlive环境安装bibtex4word插件
  • LangGraph(三)——添加记忆
  • uniapp开发HarmonyOS NEXT应用之项目结构详细解读
  • 初识Linux · 传输层协议TCP · 下
  • 从文本到语义:BERT、Faiss 与 Elasticsearch 的协同实践
  • 【Java项目脚手架系列】第五篇:Spring Boot + MyBatis项目脚手架
  • 从爬虫到网络---<基石9> 在VPS上没搞好Docker项目,把他卸载干净
  • 数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围
  • 通信原理绪论
  • Gartner《Container发布与生命周期管理最佳实践》学习心得
  • 搜索与图论
  • 使用ShardingSphere5.5.1实现读写分离与相关异常问题处理
  • vmware环境ORACLE RAC环境数据库节点1无法启动问题分析处理
  • BeanPostProcessor和AOP
  • 使用FastAPI和Apache Flink构建跨环境数据管道
  • AUTOSAR图解==>AUTOSAR_SWS_PlatformTypes
  • TXT编码转换工具iconv
  • WPF 性能 UI 虚拟化 软件开发人员的思考
  • 阿里云OSS+CDN自动添加文章图片水印配置指南
  • 第五天 车载系统安全(入侵检测、OTA安全) 数据加密(TLS/SSL、国密算法)
  • Kubernetes生产实战(十四):Secret高级使用模式与安全实践指南
  • 解决mybatisplus主键无法自增的问题
  • uniapp-商城-50-后台 商家信息
  • 如何用AWS Lambda构建无服务器解决方案:实战经验与场景解析
  • 第十八节:图像梯度与边缘检测-Scharr 算子
  • OpenLayers 精确经过三个点的曲线绘制