首页 > 基础资料 博客日记

三、Linux 文件管理+用户管理

2026-05-31 14:00:02基础资料围观2

本篇文章分享三、Linux 文件管理+用户管理,对你有帮助的话记得收藏一下,看极客资料网收获更多编程知识

一、文件系统基础命令

1.1 相对路径 & 绝对路径

类型

定义

示例

绝对路径

以根 /

开头的路径,在任何位置都可使用

/etc/passwd

/root/name

相对路径

不以根开头,相对于当前所在目录

passwd(当前目录下的文件)

bash

[root@lab ~]# ls passwd        # 在当前目录下找 passwd,不存在则报错
ls: cannot access 'passwd': No such file or directory

[root@lab ~]# ls /etc/passwd   # 绝对路径,成功
/etc/passwd

1.2 文件命名规则

  1. 文件名区分大小写
  2. 同目录下不能存在同名文件
  3. 文件名长度≤255字符
  4. 尽量不用特殊字符:? $ % ^ & *

1.3 touch 命令

作用

  1. 创建空文件
  2. 更新已有文件时间戳

用法

touch 文件名          # 当前目录创建
touch /opt/xym       # 指定路径创建

文件3个时间戳

  • Access Time:最后访问时间
  • Modify Time:文件内容最后修改时间
  • Change Time:文件属性(权限、大小、名称)最后修改时间

查看时间戳

stat 文件路径

总结:文件不存在则创建,存在则更新时间戳。

1.4 mkdir 创建目录

mkdir 目录路径                # 创建单层目录
mkdir -p /opt/a/b/c/d/e/f/g  # -p 递归创建多级父目录
  • -p:父目录不存在自动创建,无报错

1.5 rm 删除文件/目录

rm 文件名            # 删除文件,交互式询问
rm -f 文件名         # -f 强制删除,不询问
rm -r 目录名         # -r 递归删除目录及内容
rm -rf 目录名        # 强制递归删除目录(常用)
  • rmrm -i 别名,默认删除会询问
  • rm -rf 谨慎使用,不可逆

1.6 rmdir 删除空目录

  • 仅能删除空目录,非空目录无法删除
rmdir 空目录名

1.7 ls 列出目录内容

常用参数

参数

作用

-l

显示详细属性信息

-a

显示隐藏文件(以 . 开头)

-h

人性化显示文件大小(配合 -l

-R

递归列出所有子目录内容

-t

按修改时间倒序排序

-r

排序取反

-d

只查看目录本身属性

--color=auto

按文件类型显示颜色

  • llls -l --color=auto 别名

alias 查看系统的命名别名

ls -l 字段详解

-rw-r--r--. 1 root root 2192 May 16 16:46 /etc/passwd

  1. 文件类型
    • -:普通文件
    • d:目录
    • b:块设备(硬盘/光驱)
    • c:字符设备(键盘/鼠标)
    • l:软链接(快捷方式)
    • s:套接字文件
  1. 权限:属主、属组、其他人 rwx(读写执行) 权限
  2. 末尾 . 表示文件受 SELinux 安全机制保护
  3. 硬链接数
  4. 属主、属组
  5. 文件大小(字节)
  6. 修改时间
  7. 文件名

Linux 后缀无系统识别意义,仅给人看。

1.8 cd 切换目录

cd           # 回到当前用户家目录
cd ~         # 回到家目录
cd ~用户名   # 进入指定用户家目录
cd ..        # 回到上一级目录
cd -         # 切换到上一次所在目录
cd 路径      # 切换到指定路径

1.9 pwd 命令

pwd  # 打印当前所在工作目录

1.10 file 命令

专门查看文件真实类型,不受后缀影响。

file 文件名

empty表示 空文件

1.11 cp 拷贝命令

语法cp 源路径 目标路径

  1. 拷贝文件
cp /etc/passwd /opt/          # 备份文件到目录
cp /etc/shadow /tmp/shadow-$(date +%F)  # 按时间命名备份
  1. 拷贝目录
cp -r /etc /tmp    # -r 递归拷贝目录
cp -a /etc /tmp    # -a 归档拷贝,保留权限、时间戳、软链接所有属性
  • -a 等同于 -dR --preserve=all

1.12 mv 移动/重命名

  1. 同目录:mv = 重命名
  2. 不同目录:mv = 移动文件/目录
mv 原文件名 新文件名       # 重命名
mv 文件/目录 目标路径      # 移动

二、用户与用户组管理

2.1 Linux 用户分类

用户类型

UID 范围

说明

超级管理员

UID=0

root,拥有系统最高权限

系统用户

0<UID<1000

运行系统服务,禁止登录

普通用户

UID≥1000

管理员创建,供日常登录使用

2.2 用户信息配置文件 /etc/passwd

每行格式:用户名:x:UID:GID:描述:家目录:登录Shell
字段说明:

  1. 用户名
  2. 密码占位符 x(真实密码存 /etc/shadow
  3. UID 用户ID
  4. GID 组ID
  5. 备注描述
  6. 用户家目录
  7. 登录Shell

常见的两类:

    • /bin/bash:可登录系统
    • /sbin/nologin:禁止登录

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

比较特殊的登录SHELL

/bin/sync其实就是sync命令,而sync命令就是将内存中的数据刷入到磁盘中(赶紧把缓存数据写到磁盘里面)

/sbin/shutdown 和 /sbin/halt 作用一样:关机

2.3 用户管理命令

命令

作用

useradd

创建用户

usermod

修改用户

userdel

删除用户

passwd

设置密码

id

查看用户信息

用户组的密码文件/etc/gshadow

useradd 创建用户

常用参数

参数

作用

-u

指定UID

-g

指定私有组GID

-G

指定附加组(会覆盖原有的附加组新增用-aG)

-c

添加描述信息

-d

指定家目录

-s

指定登录Shell

-M

不自动创建家目录

UID 分配原则:未手动指定时,系统分配 /etc/passwd 中最大 UID + 1。

默认行为

  • 家目录:/home/用户名
  • 邮箱文件:/var/spool/mail/用户名
  • 创建同名的私有组

 

示例

useradd mengxin                  # 创建普通用户
useradd -u 2026 -c "game user" memeda01
useradd -s /sbin/nologin mysqluser  # 不可登录用户

需求一:创建memeda01用户,要求UID是2026,要求描述信息是game user

useradd -u 2026 -c “game user” memeda01

需求二:创建mysqluser用户,描述信息database user,不可以登录系统

useradd -c “database user” -s /sbin/nologin mysqluser

需求三:创建caiwu用户,私有组就是caiwu,附加组是mysqluser

useradd -G mysqluser caiwu

需求四:创建diruser用户,用户的家目录在/tmp/diruser

useradd -d /tmp/diruser diruesr

不指定UID系统找最多的UID+1分配

创建用户会同时创建一个同名的邮箱和组

用户必须要有一个组

附加组:用户可以加入到其他组

passwd 设置用户密码

passwd 用户名

usermod 修改用户属性

选项

说明

-G 组名

修改附加组(会覆盖原有附加组)

-aG 组名

新增附加组(不覆盖)

-d 路径

修改家目录(只改配置文件,不创建目录)

-s SHELL

修改登录 SHELL

-L

锁定用户

-U

解锁用户

usermod -s /sbin/nologin 用户名   # 禁止登录
usermod -aG 组名 用户名           # 追加附加组(-aG 不覆盖原有组)

userdel 删除用户

userdel 用户名        # 只删用户,保留家目录、邮件
userdel -r 用户名     # -r 彻底删除:用户+家目录+邮件

首先你创建一个用户user110,系统分配的UID假设是1000

现在你通过userdel删除user110用户,但是家目录和邮件文件不会删除

家目录和邮件文件UID和GID就是1000

此时你通过useradd user111的用户--->UID 1000

user111用户继承了1000的UID

此时家目录和邮件文件UID和GID就是1000 就被user111可以访问了

这个时候,文件就没有私密可言了

老用户abcuser

家目录和邮件文件没有删除

再创建一个用户abcuser

此时删除abcuser用户,这些目录和邮件文件会删除

老用户abcuser

家目录和邮件文件没有删除

再创建一个用户123user

此时删除123user,老的目录和邮件文件不会删除

userdel 删除用户的时候,删除的是同名的目录和邮件

/home/123user 可以被删除

/home/abcuser

2.4 用户组配置文件 /etc/group

格式:组名:x:GID:组内成员

  • 记录组名、密码占位符、GID、组内附加成员
  • 私有组成员不会在此文件显示

字段

说明

第1列

组名

第2列

组的密码占位符

第3列

GID

第4列

组内成员(私有组的成员不显示)

2.5 用户组管理命令

命令

作用

groupadd

创建组

groupmod

修改组

groupdel

删除组

gpasswd

设置组密码、管理组成员

groupmems

列出/添加/删除组成员

groupadd -g 3333 itgroup   # 创建指定GID组
groupdel 组名              # 删除组(不能删用户私有组)
gpasswd 组名               # 设置组密码、管理组成员
newgrp 组名                # 登录组
groupmems                  # 查看/添加/移除组成员

groupadd – 创建组

bash

groupadd -g 3333 itgroup               # 指定 GID 创建组

groupmod – 修改组

bash

groupmod -n newname oldname            # 重命名组

groupdel – 删除组

bash

groupdel itgroup                       # 若某用户的私有组是该组,则无法删除

gpasswd – 管理组密码和成员

bash

gpasswd 组名                           # 设置组密码
gpasswd -a user 组名                   # 添加用户到组
gpasswd -d user 组名                   # 从组中删除用户
gpasswd -A user 组名                   # 设置组管理员

groupmems – 管理组成员

bash

groupmems -g 组名 -l                   # 列出组成员
groupmems -g 组名 -a user              # 添加用户
groupmems -g 组名 -d user              # 删除用户

也可用 usermod -aG 添加附加组。

记忆:

加用户到组:usermod

删除组的用户:gpasswd

列出组的成员:groupmens

2.6 密码影子文件 /etc/shadow

仅root可读取,存放加密用户密码及密码策略

mengxin:$6$pfNug4M3ru8qFDpN$0pNQj/37TvTCJzadBGXWXC4ljl6hAyBIwFevxLU.BQuAVzPiS6UuIzikk9.J7QCwF2gmbx5/6uYuEmsH96yn21:20596:0:99999:7:::

字段

说明

第1列

用户名

第2列

加密后的密码(!!/*/!* 表示无密码)

第3列

上次修改密码时间(距1970-01-01天数)

第4列

密码最短有效期(天数,0表示无限制)

第5列

密码最长有效期(天数,99999表示无期限)

第6列

告警天数(过期前多少天告警)

第7列

密码锁定日期

第8列

账户过期时间(距1970-01-01天数)

第9列

保留字段

加密算法标识

  • $6$ → SHA-512(默认)
  • $5$ → SHA-256
  • $1$ → MD5

用户组的密码文件/etc/gshadow

生成加密密码(不通过 passwd):


openssl passwd -6 123                  # 输出 SHA-512 加密的密文
# 然后手动替换 /etc/shadow 对应行

2.7 chage 密码策略管理

查看和修改用户密码策略:

chage -l 用户名          # 查看密码策略
chage -m 30 -M 90 -W 20 -E 2027-12-01 用户名  # 修改策略
chage -d 0 用户名        # 强制下次登录改密码

2.8 默认密码策略配置

/etc/login.defs 定义新建用户默认规则:

  • PASS_MAX_DAYS 密码最大有效期
  • PASS_MIN_DAYS 密码最小间隔天数
  • PASS_WARN_AGE 过期提前告警天数


文章来源:https://www.cnblogs.com/zhaomibubai/p/20239563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云