Linux自娱—5.用户管理

配置文件

1、用户信息文件 /etc/passwd

[root@wg ~]# man 5 passwd          // 查看帮助

[root@wg ~]# cat /etc/passwd

- 文件说明:每一行代表一个用户 7个字段各自含义,用冒号分割
| 1.用户名称 
| 2.密码标志 密码文件其实是shadow passwd中x表示用户有密码
| 3.用户ID就是UID root 0  普通用户500        500以内系统用户
| 4.用户初始组ID GID
  - 初始组就是用户一登录就立刻拥有这个用户组的相关权限 
  - 每个用户的初始组只能有1个 一般是和这个用户的用户名相同的组名作为这个用户的初始组
  - 附加组是指用户可以加入多个其他的用户组 并拥有这些组的权限 附加组可以有多个
| 5.用户说明
| 6.家目录
| 7.登陆以后的shell 就是命令解释器 在passwd中,除了标准shell是/bin/bash之外,还可以写如/sbin/nologin
  - root用户和普通用户是标准shell
  - 伪用户的解释器 /sbin/nologin
  - 理论上shell可以有多个 可以更改
  - 简单说所有用户都必须写成/bin/bash 写到nologin下用户就失效

2、影子文件 /etc/shadow

- shadow文件权限是000;它有9个字段
| 1.用户名
| 2.经过加密后的真正密码 
  - sha512散列加密  
  - !!或者*表示没有密码 不能登陆
  - 密码前边加一个感叹号 可以临时禁用密码 
| 3.密码最后一次修改日期 事件戳表示
| 4.两次密码修改间隔  如果写10 表示10天后才能改密码
| 5.密码有效期 
| 6.密码修改到期前的警告天数
| 7.密码过期后的宽限天数
  - 0   代表密码过期后立即失效
  - -1  代表密码永远不会失效
| 8.账号失效时间 要用时间戳表示
  - 把日期换算成时间戳  echo $(($(date --date="2020/01/01" +%s)/86400+1))
  - 把事件戳换算成日期  date -d "2020-01-01 15600 days"
| 9.保留字段

3、组信息文件 /etc/group

- 1.组名       默认情况下每个用户都有一个跟自己名字相同的组
- 2.组密码标志
- 3.GID           groupid  靠组ID识别用户
- 4.组中附加用户

4、组密码文件 /etc/gshadow

- 1.组名
- 2.组密码
- 3.组管理员用户名
- 4.组中附加用户

5、用户家目录

- 普通用户 /home/用户名/ 所有者和所属组都是此用户 权限700
- 超级用户 /root/ 所有者和所属组都是root用户 权限是550
- 更改权限的话 是把用户权限改成对应的用户权限 就是修改的UID  用户家目录不会变

6、系统会给用户在 /var/spool/mail/下创建同名邮箱文件
7、用户模板目录

- /etc/skel/
- 进入 /home/用户名 文件夹下  ls -a  有隐藏文件   是从模板里导入到这里的
- 如果在/etc/skel/下创建文件 会在/home/用户名 下出现这个文件

 

用户管理命令

1、实际功效

- 处理用户的两个文件;
- 组的两个文件;
- 家目录里的用户模板以及邮箱

2、添加用户 useradd

-常用选项
| -u 手工指定用户的UID
| -d 家目录
| -c 用户说明
| -g 组名    手工指定用户的初始组
| -G 组名    指定用户的附加组
| -s shell   手工指定用户的登陆shell   默认是/bin/bash

usradd -u 555 -G root,bin -c "test user" -d /smitty -s /bin/bash smitty

# 1.不要用g加组,尤其是root组,不会创建相应目录 会很麻烦
  - 我日,我这个脑子,我的实际操作好像都用了g
# 2.可以直接放在根目录下
# 3.如果指定shell 不要写错了

3、用户默认值文件

- /etc/default/useradd

- GROUP=100  用户默认组
- HOME=/home 用户家目录
- INACTIVE=-1 密码过期宽限天数(shadow文件第7字段)
- EXPIRE=    密码失效时间(8)
- SHELL=/bin/bash      默认shell
- SKEL=/etc/skel       模板目录
- CREATE_MAIL_SPOOL=yes 是否建立邮箱

4、在/etc/login.defs下有其他东西
5、密码命令

passwd -S 用户名       // 查看用户密码信息
passwd -l 用户名       //锁定用户   -u解锁用户
echo "mima" | passwd --stdin 用户名    // 手工设置用户密码  主要是用来shell编程的时候使用

6、修改用户信息

- usermod和useradd选项是一样的,这个是给已存在用户操作的
- usermod是用L和U锁定和解锁用户的

- chage 【选项】 用户名
| -l 列出用户的详细密码状态
| -d 修改密码最后一次更改日期
| -m 两次密码修改间隔
| -M 密码有效期
| -W 密码过期前警告天数
| -I 密码过后宽限天数
| -E 账号失效时间

- chage 最经常用就是 chage -d 0 用户名  意思就是让用户登陆先修改密码

7、删除用户userdel

- -r 删除用户的同时删除用户家目录
- 删除用户相当于执行了下边6个操作
| /etc/passwd
| /etc/shadow
| /etc/group
| /etc/gshadow
| rm -rf /var/spool/mail/用户名
| rm -rf /home/用户名

8、id 用户名 查看用户id
9、sudo切root

- 环境变量不会换;必须用 su - root ;用env查看

- su - root -c useradd user3    // 用管理员身份执行一条命令

 

用户管理命令

- useradd -d 路径 username 创建指定用户家目录用户
- userdel -r username 删除用户及文件夹 彻底删除
- usermod -s /sbin/nologin username 让一个用户不登录 属性其实可以写任意东西

- -g 是设置用户的基本组 -G 是设置用户的附加组
- /etc/passwd 可以查看的是用户的基本组
- /etc/group 可以查看用户的附加组

- usermod -a -G GroupName UserName 添加附加组
| -G修改当前次要组
| -G -a是增加新的次要组

 

用户组管理命令

1、groupadd

- groupadd 【选项】 组名
| -g GID 指定组ID
| -n 新组名 老组名  改名

2、groupdel

- groupdel  组名

- 如果有初始用户 删不了组
- 如果没有初始用户 可以删组

3、已有用户添加到组或删除

- 是作为附加用户添加的

- gpasswd -a 用户名  用户      // 把用户加入组  
- gpasswd -d 用户名  用户      // 把用户从组删除
posted @   梵高de画笔  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示