我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

    • Linux
    • ssh
    • rsync上传本地文件到服务器
    • windows上使用multipass挂载本地文件
    • curl命令使用
    • 查询系统版本及硬件信息的
    • 操作linux上用户
      • 1. 用户
        • 常用命令
      • 2. 用户组
        • 常用命令
      • 3. 创建用户
        • 创建用户的基本命令
        • 设置用户密码
      • 4. 添加 root 用户
        • 创建用户并添加至 sudo 组
      • 5. 修改用户
        • 示例命令
      • 6. 删除用户
        • 删除用户的基本命令
      • 7. 用户权限
        • 权限类型
        • 查看文件权限
        • 修改文件权限
        • 修改文件所有者
      • 8. 相关命令及其参数详细说明
        • 8.1 useradd
        • 8.2 usermod
        • 8.3 userdel
        • 8.4 passwd
        • 8.5 groups
        • 示例
      • 用户权限在 Linux 系统中的管理至关重要,因为它们直接关系到系统的安全性和用户的操作能力。
      • 1. 权限类型
        • 1.1 读(r)
        • 1.2 写(w)
        • 1.3 执行(x)
      • 2. 权限的表示方法
        • 示例
      • 3. 权限管理命令
        • 3.1 查看权限
        • 3.2 修改权限
        • 3.3 修改所有者和用户组
        • 3.4 管理用户组
      • 4. 特殊权限
        • 4.1 SUID(Set User ID)
        • 4.2 SGID(Set Group ID)
        • 4.3 Sticky Bit
      • 5. 示例
        • 设置文件权限
        • 更改所有者和用户组
      • 总结
    • crontab使用
    • systemctl使用
    • journalctl使用
    • ls查看文件及排序
    • 查询命令行日志记录
    • less详细使用
    • Vim使用案例
    • top的基本使用
  • nginx

  • docker

  • vpn

  • frp

  • 脚本

  • 硬件

  • 运维
  • linux
窝窝侠
2024-11-18

操作linux上用户

# Linux 用户和用户组管理

Linux 是一个多用户操作系统,用户和用户组的管理是确保系统安全和高效的重要组成部分。本文将介绍 Linux 的用户、用户组、创建用户、用户权限,以及相关命令和参数的详细说明。

# 1. 用户

在 Linux 中,用户是指可以登录系统并执行命令的个体。每个用户都有一个唯一的用户名和用户 ID(UID)。

# 常用命令

  • 查看当前用户:

    whoami
    
    1
  • 查看所有用户:

    cat /etc/passwd
    
    1

# 2. 用户组

用户组是在 Linux 中将多个用户组织在一起的方式,目的是简化权限管理。每个用户可以属于一个或多个用户组。

# 常用命令

  • 查看当前用户所在的组:

    groups username
    
    1
  • 查看所有组:

    cat /etc/group
    
    1

# 3. 创建用户

可以使用 useradd 命令来创建新用户,通常需要超级用户(root)权限。

# 创建用户的基本命令

sudo useradd -m username
1
  • -m 选项会创建用户的主目录。

# 设置用户密码

创建用户后,需要为用户设置密码:

sudo passwd username
1

# 4. 添加 root 用户

在某些情况下,您可能需要创建具有 root 权限的新用户。可以通过以下步骤实现:

# 创建用户并添加至 sudo 组

  1. 创建用户(例如 newadmin)并设置密码:

    sudo useradd -m newadmin
    sudo passwd newadmin
    
    1
    2
  2. 将用户添加到 sudo 组,以赋予其管理权限:

    sudo usermod -aG sudo newadmin
    
    1

现在,newadmin 用户可以通过 sudo 命令执行需要 root 权限的操作。

# 5. 修改用户

使用 usermod 命令可以修改现有用户的属性,例如更改用户组或用户信息。

# 示例命令

  • 将用户添加到新组:

    sudo usermod -aG groupname username
    
    1
  • 更改用户的主组:

    sudo usermod -g newgroup username
    
    
    #移除root组
    sudo gpasswd -d newadmin root
    
    1
    2
    3
    4
    5

# 6. 删除用户

要删除用户,可以使用 userdel 命令。

# 删除用户的基本命令

sudo userdel username
1
  • 使用 -r 选项可以同时删除用户的主目录和邮件池。
sudo userdel -r username
1

# 7. 用户权限

在 Linux 中,权限管理是确保系统安全的重要部分。每个文件和目录都有相关的用户和组权限。

# 权限类型

  • 读(r): 允许读取文件或目录。
  • 写(w): 允许修改文件或创建/删除目录中的文件。
  • 执行(x): 允许执行文件或访问目录。

# 查看文件权限

使用 ls -l 命令查看文件的权限和所有者。

ls -l filename
1

# 修改文件权限

使用 chmod 命令修改文件或目录的权限。

chmod u+x filename  # 给文件所有者添加执行权限
chmod g-w filename  # 移除文件所属组的写权限
1
2

# 修改文件所有者

使用 chown 命令更改文件或目录的所有者。

sudo chown newowner filename
1

# 8. 相关命令及其参数详细说明

# 8.1 useradd

用于创建新用户。

参数 全名 说明
-m create home directory 创建用户的主目录(默认在 /home/username)。
-d home directory 指定用户的主目录,默认情况下为 /home/username。
-s shell 指定用户的登录 shell(例如 /bin/bash)。
-G groups 指定用户所属的附加组,可以同时指定多个组,用逗号分隔。
-p password 指定用户的加密密码。如果不使用,该用户将没有密码。
-u user ID 指定用户的 UID,默认情况下自动分配。

# 8.2 usermod

用于修改现有用户的属性。

参数 全名 说明
-a append 将用户添加到附加组而不移除其原有组。
-G groups 指定用户所属的新附加组,可以同时指定多个组。
-g primary group 指定用户的新主组。
-s shell 更改用户的登录 shell。
-u user ID 更改用户的 UID。
-l login name 更改用户的用户名。

# 8.3 userdel

用于删除用户。

参数 全名 说明
-r remove 删除用户的主目录及其邮件池。

# 8.4 passwd

用于更改用户密码。

参数 全名 说明
-e expire 强制用户在下次登录时更改密码。
-l lock 锁定用户账户,禁止其登录。
-u unlock 解锁用户账户,允许其登录。

# 8.5 groups

用于显示用户所属的组。

参数 全名 说明
username target user 指定要查看的用户,默认查看当前用户。

# 示例

查看指定用户的组:

groups newuser
1

# 用户权限在 Linux 系统中的管理至关重要,因为它们直接关系到系统的安全性和用户的操作能力。

# 1. 权限类型

在 Linux 中,文件和目录权限主要包括三种类型:

# 1.1 读(r)

  • 文件: 允许用户查看文件内容。
  • 目录: 允许用户列出目录中的文件和子目录。

# 1.2 写(w)

  • 文件: 允许用户修改文件内容。
  • 目录: 允许用户在目录中创建、删除或重命名文件和子目录。

# 1.3 执行(x)

  • 文件: 允许用户执行该文件(如果是可执行文件,如脚本或程序)。
  • 目录: 允许用户进入该目录(即使用 cd 命令)。

# 2. 权限的表示方法

在 Linux 中,文件和目录权限通常使用以下方式表示:

-rwxr-xr--
1

每一位的含义如下:

  • 第一个字符表示文件类型(- 表示文件,d 表示目录)。
  • 接下来的三个字符表示文件所有者的权限(如 rwx 表示读、写和执行权限)。
  • 接下来的三个字符表示用户组的权限(如 r-x 表示读和执行权限)。
  • 最后三个字符表示其他用户的权限(如 r-- 表示只有读权限)。

# 示例

  • -rwxr-xr--:
    • 文件类型: 普通文件
    • 所有者权限: 读、写、执行
    • 用户组权限: 读、执行
    • 其他用户权限: 仅读

# 3. 权限管理命令

# 3.1 查看权限

使用 ls -l 命令查看文件或目录的权限。

ls -l filename
1

# 3.2 修改权限

使用 chmod 命令更改文件或目录权限。

# 3.2.1 使用符号方式

chmod u+x filename  # 为文件所有者添加执行权限
chmod g-w filename  # 移除文件所属组的写权限
chmod o+r filename  # 为其他用户添加读权限
1
2
3

# 3.2.2 使用八进制方式

权限也可以使用数字的方式表示:

  • 读(r)= 4
  • 写(w)= 2
  • 执行(x)= 1

例如,设置文件权限为所有者可读写,用户组可读,其他人无权限:

chmod 640 filename  # 设置为 rw-r----- (即 6 4 0)
1

# 3.3 修改所有者和用户组

使用 chown 命令更改文件或目录的所有者及用户组。

sudo chown newowner:newgroup filename
1

# 3.4 管理用户组

使用 groupadd、groupdel 和 gpasswd 命令管理用户组。

  • 创建新组:

    sudo groupadd groupname
    
    1
  • 删除组:

    sudo groupdel groupname
    
    1
  • 将用户添加到组:

    sudo gpasswd -a username groupname
    
    1

# 4. 特殊权限

除了基本的读、写和执行权限外,Linux 还有一些特殊的权限设置:

# 4.1 SUID(Set User ID)

  • 当可执行文件设置了 SUID 位时,运行该文件的用户将临时获得文件所有者的权限。
  • 使用方式:在权限中设置 SUID 位,通常通过将权限的第一个数字设置为 4。

示例:

chmod 4755 filename  # 设置 SUID 位
1

# 4.2 SGID(Set Group ID)

  • 当目录设置 SGID 位时,所有在该目录中创建的文件将继承该目录的组,运行该文件的用户将临时获得文件所属组的权限。
  • 使用方式:在权限中设置 SGID 位,通常通过将权限的第二个数字设置为 2。

示例:

chmod 2755 directoryname  # 设置 SGID 位
1

# 4.3 Sticky Bit

  • 当目录设置 Sticky Bit 时,只有文件的所有者和根用户可以删除或重命名该目录中的文件。
  • 使用方式:在权限中设置 Sticky Bit,通常通过将权限的第三个数字设置为 1。

示例:

chmod 1777 directoryname  # 设置 Sticky Bit
1

# 5. 示例

# 设置文件权限

假设您有一个名为 script.sh 的脚本文件,您希望设置如下权限:

  • 所有者:读、写、执行
  • 用户组:读、执行
  • 其他用户:无权限

可以使用以下命令:

chmod 750 script.sh
1

# 更改所有者和用户组

将文件 script.sh 的所有者更改为 user1,用户组更改为 group1:

sudo chown user1:group1 script.sh
1

# 总结

用户权限管理是 Linux 系统安全的重要组成部分。通过使用合适的权限设置,可以有效地保护系统文件和用户数据,确保用户在进行操作时仅能访问其所需的资源。理解并善用权限管理命令及特殊权限功能能帮助用户和管理员更好地维护系统安全。如需更多信息或有其他问题,请告诉我!

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
查询系统版本及硬件信息的
crontab使用

← 查询系统版本及硬件信息的 crontab使用→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×