Linux资料库
常用命令分类索引
常用命令分类整理(不包含详情)
用户及用户组管理
top命令的基本使用
命令大全示例
书籍学习笔记
菜鸟教程学习笔记
10个实用的shell脚本
linux服务器优化
监控应用服务端口并发量
记录正在执行的SQL
本文档使用 MrDoc 发布
-
+
首页
用户及用户组管理
## 1.1 用户类型 **超级用户(root):**用户在系统上有完全权限:可以修改和删除任何文件;可以运行任何命令;可以取消任何进程。根用户负责增加和保留其他用户、配置硬件、添加系统软件。虽然根用户可以在系统上的任何地方创建文件,通常使用/root作为主目录 **普通用户:**普通用户是使用系统的真实用户人群。普通用户通常把/bin/bash作为登录Shell和/home的子目录作为主目录。一般情况下,普通用户只在自己的主目录和系统范围内的临时目录里(如/tmp和/var/tmp)创建文件 **系统用户:**系统用户不代表人,而代表系统的组成部分,是用于服务,进程运行使用的用户。例如,处理电子邮件的进程经常以用户名mail来运行;运行Apache网络服务器的进程经常作为用户apache来运行。系统用户通常没有登录Shell,因为它们不代表实际登录的用户。同样,系统用户的主目录很少在/home中,而通常在属于相关应用的系统目录中 ## 1.2 用户UID Linux中的用户是通过UID(uesr ID)进行标记的,UID类似于身份证号,与用户名一一对应,能唯一标识系统上的一个用户,三种用户类型的UID分别为 - 超级用户:UID = 0 - 普通用户:UID ≥ 1000 - 系统用户:UID < 1000 ```bash #查看当前登录用户的ID id -u #修改用户的UID有两种方式 usermod -u 请在root权限下修改 #方法一: usermod -u 【权限大小】 【用户名】 usermod -u 1050 mytemp #方法二: grep lighthouse /etc/passwd #查询 vim /etc/passwd #修改 ``` ## 1.3 配置文件 对于用户管理来说,会涉及到两个配置文件: - /etc/passwd文件用于存储用户信息 - /etc/shadow用于存储密码信息 ### 1.3.1 /etc/passwd ```bash #进入 vim /etc/passwd ##示例如下 ##temp:x:1050:1002::/home/temp:/bin/bash ``` | 序号 | 代表内容 | 备注 | | --- | --- | --- | | 1 | 用户名 | | | 2 | 密码 | 很多Linux系统会在这里用x表示,而将真正的密码保存到/etc/shadow中 | | 3 | UID | 1050表示UID | | 4 | GID | 1002表示GID 对应/etc/group配置文件中的一条记录(用户组的唯一标识) | | 5 | 描述信息 |解释该用户是做什么用的,即图中的蓝色部分,一般普通用户这个部分默认为空 | | 6 | 当前用户的主目录 | root用户,其家目录就是/root;普通用户,其家目录就是/home/$username | | 7 | 登录之后执行的shell | 这里的/bin/bash就是运行bash控制台 | ### 1.3.2 /etc/shadow 默认情况下只有根用户才有读取的权限 ```bash # 执行此命令 vim /etc/shadow ## 示例如下 ##lighthouse:!!:19753:0:99999:7::: ``` | 序号 | 代表内容 | 备注 | | --- | --- | --- | | 1 | 用户名 | | | 2 | 密码 | 如果该列为“!!”或“*”,表示未设置密码,无法进行登录 | | 3 | 最近修改的天数 | 使用时间戳进行表示,也就是距离时间原点(1970年1月1日)的天数,这里为空表示最近为进行过修改 | | 4 | 两次修改的时间间隔 | 此处为0表示随时可以修改 | | 5 | 密码的有效天数 |默认为99999,也就是273年,可认为是永久有效 | | 6 | 失效前多少天进行告警 | 一般默认为7 | | 7 | 密码失效后能够宽限的天数 | 如果值为0,表示立即失效,如果是-1则表示永远不会失效;如果为10,则表示过期后10天依然能够登录系统 | | 8 | 账号失效的日期 | 账号失效时,即使密码有效,也无法登录系统 | | 9 | 保留字段 | 暂未开始使用| ## 1.4 新增用户 ```bash useradd 用户名 -选项 #-u 指定用户uid #-d 指定用户登入时的主目录,替换系统默认值/home/<用户名> #-s 指定用户登入后所使用的shell 解释器,默认/bin/bash,如果不想让其登录,则可以设置为/sbin/nologin #-g 指定用户所属的用户组 #-m 指定不创建家目录 #****示例*** useradd tt #添加一般用户 useradd -g root tt #为添加的用户指定相应的用户组 useradd -r tt #创建一个系统用户 useradd -d /home/myd tt #为新添加的用户指定home目录 useradd tt -u 544 #建立用户且制定ID ``` 输入useradd <用户名>之后,不带选项时系统会默认帮我们做如下动作: | 序号 | 操作文件 | 操作内容 | | --- | ---------- | --- | | 1 | /etc/passwd |创建一行关于用户的数据 | | 2 | /etc/shadow |创建一行关于用户密码的数据 | | 3 | /etc/group | 创建一行与用户名相同的组 | | 4 | /etc/gshadow |创建一行与新增群组相关的密码信息,一般没有密码 | | 5 | /home | 自动创建用户的家目录 | | 6 | /home/用户| 将/etc/skel下的文件拷贝到主目录下 | ## 1.5 设置密码 ```bash passwd 用户名 -选项 #-l 锁定密码,用户不能更改密码 #-u 密码解锁 #-d 删除密码 ``` ## 1.6 删除用户 ```bash userdel 用户名 -选项 #-r 删除用户及家目录,如果不带-r,用户家目录不会被删除 ``` ## 1.7 切换用户 ```bash su 用户名 -选项 #-l 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量 #-m -p 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量 #-s 指定要执行的shell ``` ## 1.8 添加sudo用户 一个没有经过配置的普通用户是无法使用 sudo命令来提升自己的权限的 ```bash #用root用户 vim /etc/sudoers #在Allow root to run any commands anywhere处添加 用户名 ALL=(ALL) ALL ```  # 2. 用户组管理 ## 2.1 用户组类型 **基本组 ( 私有组 ) :**建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组 **附加组 ( 公有组 ) :**可以容纳多个用户,组中的用户都具有组所拥有的权利 备注:一个组不能属于另一个组,即Linux里不允许嵌套组的存在 ## 2.2 添加到用户组 ```bash #查询组 id ## 显示如下 ### uid=1000(lighthouse) gid=1000(lighthouse) groups=1000(lighthouse) #修改用户的GID可以用如下命令 groupmod -g 新的组ID 用户名 #将已经存在的用户添加到已经存在的组,一个用户多个组 usermod -a -G 要添加的组 用户名 ``` ## 2.3 配置文件 ```bash vim /etc/group vim /etc/gshadow ``` | 序号 | 含义 | 备注 | | --- | --- | --- | | 1 | 用户组名 | | | 2 | 密码 | 与/etc/passwd类似,用x进行占位 | | 3 | 用户组的唯一标识GID | | | 4 | 组成员 | | ## 2.4 新增用户组 ```bash groupadd 新增用户组名 ``` ## 2.5 删除用户组 ```bash groupdel 删除的用户组名 ```
孙端己
2024年2月4日 23:01
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码