当前位置:首页 > 技术文章 > 正文内容

Linux 用户、用户组、文件权限、文件查找

douba31个月前 (08-01)技术文章15

3 - linux 用户、用户组、文件权限、文件查找

概述

在 Linux 操作系统中,用户与权限管理是系统安全和稳定运行的核心环节。Linux 是典型的多用户操作系统,每个使用系统的人都需要拥有独立的用户账户,系统通过用户 ID(UID)来唯一标识不同用户。

用户分类

  • 超级用户(root) :UID 固定为 0,拥有系统的最高权限,可执行任何操作,包括修改系统核心配置、删除关键文件等。在日常操作中应尽量避免使用 root 账户,以降低误操作风险。
  • 系统用户 :通常 UID 范围在 1-999(不同 Linux 发行版可能略有差异),这类用户并非为实际操作人员创建,而是用于运行系统服务(如 Apache、MySQL 等)。系统用户一般没有登录权限,其存在是为了保证服务运行的独立性和安全性。
  • 普通用户 :UID 从 1000 开始,由管理员创建 #技术分享 #掘金,用于日常工作。普通用户的权限受到严格限制,仅能在授权范围内操作文件和执行命令。

用户

1. 创建普通用户

创建普通用户使用 useradd 命令,默认会分配 1000 及以上的 UID,同时创建对应的家目录和默认 shell。

  • -m:自动创建用户的家目录(/home/stark),如果不添加此参数,家目录不会自动创建。
  • -s /bin/bash:指定用户的默认 shell 为 bash,允许用户登录系统后使用 bash 交互环境。
useradd [选项] 用户名

useradd -m newuser

useradd -m -d /data/user1 -s /bin/bash user1

useradd -m -g developers -G sudo,adm user2

cut -d: -f1 /etc/passwd

2、创建系统用户

系统用户主要用于运行服务,通常不需要登录权限,因此创建时会指定较小的 UID 范围,并设置不可登录的 shell。

示例:创建一个用于运行 nginx 服务的系统用户

useradd -r -s /sbin/nologin -M nginx
  • -r:表示创建系统用户,UID 会自动分配在 1-999 范围内。
  • -s /sbin/nologin:指定默认 shell 为 nologin,禁止该用户登录系统,增强安全性。
  • -M:不自动创建家目录,因为系统用户一般不需要家目录来存储个人文件。

系统用户创建后无需设置密码(也可以设置,但通常没必要),其主要作用是在运行 “nginx” 服务时作为进程的所有者,限制服务进程的权限范围,避免服务被攻击后获得过高权限影响系统安全。

3. 设置用户密码

passwd 用户名

passwd newuser

4. 删除用户

userdel [选项] 用户名

userdel olduser

userdel -r olduser

用户组

4.创建用户组

groupadd [选项] 组名

groupadd devops

groupadd -r systemd

5. 删除用户组

groupdel 组名

groupdel temp

6. 修改用户所属组

usermod -aG 组名 用户名

usermod -aG docker user1

usermod -aG sudo,wheel user2

7. 切换用户

su - 用户名

su - root

sudo -u user1 ls /data

文件权限

1、Linux 是多用户多任务操作系统,为了区分不同用户对文件的操作权限,采用了 用户 - 组 - 其他 (User-Group-Others)的三元权限模型。

  • 所有者(User) :文件的创建者,拥有最高管理权限
  • 所属组(Group) :包含多个用户的集合,便于团队协作授权
  • 其他用户(Others) :系统中除所有者和所属组成员外的所有用户

2、每种身份可拥有三种基本权限,分别是:

  • 读权限(r) :允许查看文件内容或列出目录内容
  • 写权限(w) :允许修改文件内容或在目录中创建 / 删除文件
  • 执行权限(x) :允许运行可执行文件或进入目录

3、数字表示法用三位八进制数表示权限组合,每个权限对应固定数值:

  • 读权限(r):4
  • 写权限(w):2
  • 执行权限(x):1
  • 无权限:0
chmod 755 app.py

chmod 644 README.md

chmod 700 ~/private/

chmod 777 /tmp/shared/

4、chmod 和 chown

权限赋值的核心命令:chmod

chmod [选项] 权限 文件/目录

chmod 755 app.py

chmod 644 README.md

chmod 700 ~/private/

chmod 777 /tmp/shared/

修改文件的所有者和群组,这里有个 chown 万能的命令,-R 参数非常有用,R 是 recursive 的缩写,表示递归,用来设置子目录和子文件。

chown -R stark:stark file.txt

文件查找

1. find 命令(全能搜索)

  • -name :按文件名查找(支持通配符 *? )。
  • -type :按文件类型查找( f = 普通文件, d = 目录, l = 符号链接)。
  • -size :按文件大小查找( +10M = 大于 10MB, -50k = 小于 50KB)。
  • -mtime :按修改时间查找( -2 =2 天内, +7 =7 天前)。
  • -user / -group :按所有者 / 组查找。
find . -name "example.txt"

find /etc -iname "*.conf"

find /home -size +100M -mtime -7

find /tmp -type f -mtime +30 -delete

find / -type f -executable -name "nginx" 2>/dev/null

2. locate 命令(快速索引搜索)

  • 基于系统预建的文件索引(由 updatedb 命令更新),速度极快。
  • 适合查找已知文件名的文件,但可能不显示最新创建的文件。
locate nginx

locate /usr/bin/python3

相关文章

如何在Ubuntu中安装RustDesk远程桌面软件

用Rust编写的RustDesk是远程桌面查看和管理的理想软件,因为它的开箱即用性能不需要任何配置。RustDesk特性使用RustDesk作为您的远程桌面软件保证您以下主要功能:安全性-您不必担心未...

向日葵对比ToDesk,谁才是解决远程开关机问题的NO.1?

很多办公人士都会有这样的烦恼,那就是打算下班回家工作,才发现有一份重要的资料没有上传,真的是让人很头大!想要回去拿,又很麻烦,不回去吧,又无法完成工作,所以这时候一款远程控制电脑开关机的产品就很重要。...

Linux 的这几种搜索方式,你都会了吗?

1.find 命令find 命令是用来在给定的目录下查找符合给定条件的文件语法格式:find [查找起始路径] [查找条件] [处理动作](1)根据名称查找:find [查找起始路径] -name 文...

linux系统日志查看命令(linux系统查看日志的详细信息)

cattail -f日 志 文 件 说 明/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信...

为解决卡顿,Linux禁用所有AMD处理器fTPM上的随机数生成器

IT之家 8 月 8 日消息,最近,AMD 的 fTPM 随机数生成器(RNG)出现了一个卡顿问题,最初影响了 Windows 用户,但后来也影响到了 Linux。Linux 之父 Linus Tor...

Ftp、 Samba、NFS服务器的区别(ftp smb nfs哪个快)

Ftp、Samba、NFS服务器的对比情况根据使用的方式来看可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。1:ftp的客户可以是任意平台2:samb...