当前位置: 首页 > article >正文

Linux命令——3.网络与用户

文章目录

  • 一、网络
    • 1.网络测试与诊断
    • 2.网络接口配置
    • 3.无线网络配置
    • 4.防火墙与网络管理
    • 6.防火墙管理
      • 1)`firewalld`命令
      • 2)`iptables`命令
  • 二、用户和群组
    • 1.管理员模式
    • 2.用户账户管理
      • 1)`useradd`创建
      • 2)`usermod`修改
      • 3)`userdel` 删除
      • 4)常用命令
        • (1)切换用户
        • (2)查看所有用户
    • 3.用户组管理
    • 4.权限管理
      • 1)权限标识的结构
        • (1)权限符号
        • (2)权限进制表示
        • (3)权限组
      • 2)chmod 命令修改权限
        • (1)数字方式
        • (2)字母方式
        • (3)其他用法
      • 3)特殊权限命令

一、网络

1.网络测试与诊断

请添加图片描述

指令解析
ping ip地址测试网络是否正常连接
traceroute ip地址跟踪数据包到达目的地的路径
netstat -rn显示路由表信息
nslookup domain查询域名的DNS信息
dig domain查询域名信息和解析

2.网络接口配置

指令解析
ifconfig显示或配置网络接口(较旧,已被 ip 命令替代)
ifconfig eth0显示eth0网卡的配置
ifconfig eth0 192.168.1.1 netmask 255.255.255.0配置eth0网卡的IP地址和子网掩码
ifdown eth0禁用eth0网络设备
ifup eth0启用eth0网络设备
ip addr show显示所有网络接口的IP地址
ip addr add 192.168.1.1/24 dev eth0配置eth0网卡的IP地址和子网掩码
ip link set eth0 up启用eth0网络接口
ip link set eth0 down禁用eth0网络接口

3.无线网络配置

指令解析
iwconfig显示或配置无线网络接口
iwconfig eth1显示eth1无线网卡的配置
iwlist scan扫描附近的无线网络
nmcli device wifi list列出可用的Wi-Fi网络
nmcli device wifi connect SSID password PASS连接到指定的Wi-Fi网络

4.防火墙与网络管理

指令解析
firewall-cmd --state检查防火墙状态
firewall-cmd --list-all列出当前防火墙配置
firewall-cmd --add-port=80/tcp --permanent添加防火墙规则,允许80端口(永久)
firewall-cmd --reload重新加载防火墙规则
systemctl status NetworkManager查看NetworkManager服务状态
systemctl restart NetworkManager重启NetworkManager服务
hostname显示或设置系统主机名
hostnamectl set-hostname newhostname设置新的系统主机名

6.防火墙管理

  • firewalld 是动态防火墙管理工具,支持区域和服务的概念,使用更现代的管理方式。
  • iptables 是传统的防火墙管理工具,提供了更细粒度的控制,适合有深度需求的用户。

选择 firewalld 还是 iptables 主要取决于用户的需求和使用习惯。firewalld 提供了更易于管理和动态调整的方式,而 iptables 则提供了更直接的防火墙控制。

1)firewalld命令

在其他许多现代 Linux 发行版中,firewalld 是默认的防火墙管理工具。它提供了一种动态管理防火墙规则的方式,可以在不中断连接的情况下应用新的规则。以下是 firewalld 以及一些传统的 iptables 命令的详细说明。

  • 区域 (Zone): 定义了允许和拒绝的规则集。系统预定义了几个区域,如 publichomework 等。
  • 服务 (Service): 定义了要允许或拒绝的服务,如 HTTP、HTTPS、SSH 等。
  • 永久性 (Permanent): firewalld 区分即时规则和永久规则。即时规则只在系统运行时有效,而永久规则在系统重启后依然有效。
  1. 启动、停止和重启 firewalld

    sudo systemctl start firewalld     # 启动防火墙服务
    sudo systemctl stop firewalld      # 停止防火墙服务
    sudo systemctl restart firewalld   # 重启防火墙服务
    sudo systemctl enable firewalld    # 设置防火墙开机启动
    sudo systemctl disable firewalld   # 禁止防火墙开机启动
    
  2. 查看状态

    sudo firewall-cmd --state
    
  3. 列出所有区域

    sudo firewall-cmd --get-zones
    
  4. 查看活动区域

    sudo firewall-cmd --get-active-zones
    
  5. 查看当前区域的规则

    sudo firewall-cmd --list-all
    
  6. 查看指定区域的规则

    sudo firewall-cmd --zone=public --list-all
    
  7. 添加服务到某个区域

    sudo firewall-cmd --zone=public --add-service=http
    

    添加 http 服务到 public 区域。若要永久添加,需加上 --permanent 选项。

  8. 移除服务

    sudo firewall-cmd --zone=public --remove-service=http
    
  9. 开放特定端口

    sudo firewall-cmd --zone=public --add-port=8080/tcp
    

    开放 8080 端口的 TCP 协议。

  10. 移除端口

    sudo firewall-cmd --zone=public --remove-port=8080/tcp
    
  11. 重新加载规则

    sudo firewall-cmd --reload
    

    重新加载永久规则,使之生效。

  12. 永久添加规则
    在添加或移除服务、端口等操作时,如果希望规则永久生效,需要加上 --permanent 选项,然后 reload

  13. 查看防火墙设置

    sudo firewall-cmd --list-all
    

    显示所有的设置,包括开放的端口、服务等。

2)iptables命令

iptables 是传统的 Linux 内核防火墙工具,它操作的规则直接作用于内核的 netfilter 模块。尽管 firewalld 是现代系统的默认工具,iptables 仍然被广泛使用。

  1. 查看规则

    sudo iptables -L
    

    列出所有的防火墙规则。

  2. 添加规则

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    

    允许 HTTP 流量(端口 80)。

  3. 删除规则

    sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
    

    删除允许 HTTP 流量的规则。

  4. 保存规则

    sudo iptables-save > /etc/iptables/rules.v4
    

    将当前规则保存到文件。

  5. 加载规则

    sudo iptables-restore < /etc/iptables/rules.v4
    

    从文件中加载规则。

二、用户和群组

这些命令用于管理用户、用户组以及文件和目录的权限。可以根据需要进行用户添加、删除、密码修改、组管理和权限设置等操作。

1.管理员模式

命令解释
su root用管理员身份进入
logout退出管理员模式

logout

  • 功能:注销当前用户会话。
  • 用法:直接输入 logout 并按回车键。
  • 特点
    • 通常用于退出登录 shell 会话。
    • 主要用于登录 shell(例如通过 SSH 或控制台登录的会话)。
    • 执行 logout 命令时,会运行 ~/.bash_logout 文件中的命令(如果存在)

exit区别:

  • 适用范围exit 可以用于任何 shell 会话,而 logout 通常用于登录 shell 会话。
  • 行为差异logout 会执行 ~/.bash_logout 文件中的命令,而 exit 不会。
  • 退出状态exit 可以接受一个退出状态码,而 logout 通常不接受参数。

2.用户账户管理

指令解析
who查看当前登录系统的用户
cat etc/passwd查看用户信息
passwd user1修改用户user1的密码(需root权限)
chage -E 2005-12-31 user1设置用户user1密码的失效日期为2005-12-31
useradd user1创建一个新用户user1
useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1创建一个属于"admin"用户组的新用户user1,并指定详细信息、主目录和Shell
userdel -r user1删除用户user1及其主目录

1)useradd创建

useradd 是 Linux 系统中用于创建新用户账户的命令。它允许系统管理员轻松地添加新用户,并提供各种可定制的选项。以下是 useradd 命令的详细解释:

useradd [选项] 用户名

常用选项和参数

选项描述示例
-d指定用户的主目录useradd -d /home/test_user test_user
-m创建用户的主目录useradd -m test_user
-u指定用户的用户ID (UID)useradd -u 1234 test_user
-g指定用户的主组useradd -g group_name test_user
-G指定用户的附加组useradd -G group1,group2 test_user
-s指定用户的登录shelluseradd -s /bin/bash test_user
-c添加用户的注释或描述useradd -c "This is a test user" test_user
-e设置用户账户的过期日期useradd -e 2024-12-31 test_user
-f设置用户密码过期后账户被禁用的天数useradd -f 30 test_user
-M不创建用户的主目录useradd -M test_user

示例:

  1. 添加新用户

    sudo useradd test_user
    

    这个命令会添加一个名为 test_user 的新用户。

  2. 指定用户的主目录

    sudo useradd -d /home/test_user test_user
    

    这个命令会将新用户的主目录设置为 /home/test_user

  3. 创建用户并指定用户ID

    sudo useradd -u 1234 test_user
    

    这个命令会创建一个用户ID为 1234 的新用户。

  4. 创建用户并指定主组和附加组

    sudo useradd -g group_name -G group1,group2 test_user
    

    这个命令会将新用户添加到主组 group_name 和附加组 group1,group2

  5. 设置用户的登录shell

    sudo useradd -s /bin/bash test_user
    

    这个命令会将新用户的登录shell设置为 /bin/bash

  6. 添加用户的注释或描述

    sudo useradd -c "This is a test user" test_user
    

    这个命令会为新用户添加注释 “This is a test user”。

  7. 设置用户账户的过期日期

    sudo useradd -e 2024-12-31 test_user
    

    这个命令会将新用户账户的过期日期设置为 2024 年 12 月 31 日。

  8. 不创建用户的主目录

    sudo useradd -M test_user
    

    这个命令会创建一个没有主目录的用户。

2)usermod修改

usermod 命令是 Linux 系统中用于修改用户账户属性的命令。它允许系统管理员更改用户的多种属性,如用户名、用户ID、用户组、主目录等。下面详细介绍 usermod 的使用方法及常用选项:

usermod [选项] 用户名
  • 选项:用于指定要修改的属性。
  • 用户名:要修改的用户账户的名称。

注意:

  • 修改用户账户属性时,必须具有超级用户权限(root 权限)。
  • 更改用户的主目录或用户名等关键属性时,建议在单用户模式或用户未登录时进行,以避免对系统造成干扰。
  • usermod 不会更新用户的家目录中的文件和目录名,这意味着手动更改用户主目录后,仍需手动更新目录内容。
选项描述示例
-l修改用户的登录名usermod -l 新用户名 旧用户名
-u修改用户的ID。新用户ID应是唯一的,且未被其他用户使用usermod -u 新用户ID 用户名
-d更改用户的主目录。注意,这不会移动现有的文件,需要使用 -m 选项来移动内容usermod -d 新主目录 用户名
-m使用 -m 选项将当前主目录的内容移到新的主目录usermod -d 新主目录 -m 用户名
-s修改用户的登录shellusermod -s /bin/bash 用户名
-g修改用户的主组usermod -g 组名 用户名
-G添加用户到多个附加组,组名之间用逗号分隔。注意,这会替换用户当前的所有附加组usermod -G group1,group2 用户名
-aG使用 -a 选项表示追加附加组而不是替换usermod -aG group1,group2 用户名
-L锁定用户账户,禁止用户登录usermod -L 用户名
-U解锁已锁定的用户账户usermod -U 用户名
-e设置用户账户的过期日期。格式为 YYYY-MM-DDusermod -e YYYY-MM-DD 用户名
-f设置用户密码过期后,账户被禁用的天数usermod -f 过期天数 用户名

示例:

  1. 更改用户名

    sudo usermod -l new_username old_username
    

    这个命令会将用户的登录名从 old_username 更改为 new_username

  2. 更改用户ID

    sudo usermod -u 1234 username
    

    这个命令会将用户 username 的用户ID更改为 1234

  3. 更改主目录并移动内容

    sudo usermod -d /new/home -m username
    

    这个命令会将用户 username 的主目录更改为 /new/home 并移动现有内容。

  4. 更改默认shell

    sudo usermod -s /bin/zsh username
    

    这个命令会将用户 username 的登录shell更改为 /bin/zsh

  5. 添加用户到附加组

    sudo usermod -aG group1,group2 username
    

    这个命令会将用户 username 添加到 group1group2 附加组。

  6. 锁定和解锁用户账户

    sudo usermod -L username  # 锁定账户
    sudo usermod -U username  # 解锁账户
    

    这些命令分别用于锁定和解锁用户 username 的账户。

  7. 设置用户账户的有效期限

    sudo usermod -e 2024-12-31 username
    

    这个命令会将用户 username 的账户过期日期设置为 2024 年 12 月 31 日。

3)userdel 删除

userdel 是 Linux 系统中用于删除用户账户的命令。它允许系统管理员删除用户及其相关文件。以下是 userdel 命令的详细解释:

userdel [选项] 用户名

常用选项和参数:

选项描述示例
-f强制删除用户账户及其主目录,即使用户正在登录userdel -f 用户名
-r删除用户账户及其主目录和邮件存储userdel -r 用户名
-h显示帮助信息并退出userdel -h
-R在指定的 CHROOT_DIR 中应用更改userdel -R /path/to/chroot 用户名
-Z删除用户的 SELinux 用户映射(适用于启用了 SELinux 的系统)userdel -Z 用户名

示例:

  1. 删除用户

    sudo userdel 用户名
    

    这个命令会删除指定的用户账户。

  2. 强制删除用户

    sudo userdel -f 用户名
    

    这个命令会强制删除用户账户及其主目录,即使用户正在登录。

  3. 删除用户及其主目录

    sudo userdel -r 用户名
    

    这个命令会删除用户账户及其主目录和邮件存储。

  4. 在 chroot 环境中删除用户

    sudo userdel -R /path/to/chroot 用户名
    

    这个命令会在指定的 chroot 环境中删除用户。

  5. 删除用户的 SELinux 用户映射

    sudo userdel -Z 用户名
    

    这个命令会删除用户的 SELinux 用户映射。

userdel 命令是一个低级工具,用于从系统中删除用户账户及其相关文件。使用该命令时需要具备管理员权限。

4)常用命令

(1)切换用户

在 CentOS 中,你可以使用 su 命令来切换用户。以下是具体步骤:

  1. 切换到其他用户

    su - 用户名
    

    例如,要切换到 john 用户,输入:

    su - john
    

    然后输入 john 用户的密码。

  2. 切换到 root 用户

    su -
    

    或者:

    su - root
    

    然后输入 root 用户的密码。

  3. 从 root 用户切换到普通用户

    su - 用户名
    

    例如,要从 root 切换到 john 用户,输入:

    su - john
    

使用 su - 命令不仅切换用户身份,还会切换到目标用户的环境,这样可以避免环境变量错误。如果你有其他问题或需要进一步的帮助,请告诉我!¹²³

(2)查看所有用户

在 CentOS 中,你可以通过以下几种方法查看所有用户:

  1. 查看 /etc/passwd 文件
    这个文件包含系统中所有用户的信息。你可以使用 cat 命令来查看:

    cat /etc/passwd
    

    这将显示所有用户的详细信息。

  2. 使用 lessmore 命令
    如果用户很多,可以使用 lessmore 命令分页查看:

    less /etc/passwd
    

    或者:

    more /etc/passwd
    
  3. 使用 awk 命令
    只显示用户名而不包含其他信息:

    awk -F':' '{ print $1}' /etc/passwd
    
  4. 使用 getent 命令
    这个命令可以从系统数据库中获取用户信息:

    getent passwd
    

3.用户组管理

指令解析
groupadd group_name创建一个新用户组
groupdel group_name删除一个用户组
groupmod -n new_group_name old_group_name重命名一个用户组

4.权限管理

1)权限标识的结构

通过ls -l命令可以查看文件类型,下列第一个字母后的字母就是文件权限

[mcjy@localhost etc]$ ls -l
总用量 1304
drwxr-xr-x.  3 root root        28  7月 28 01:04 accountsservice
-rw-r--r--.  1 root root        16  7月 28 01:09 adjtime

在 Linux 系统中,文件和目录的权限标识由 10 个字符组成,前三个字符表示文件类型和权限,后九个字符分为三组,每组三个字符,分别表示文件所有者、文件所属组和其他用户的权限。以下是详细解释:

  1. 第一个字符:表示文件类型
    • -:普通文件
    • d:目录
    • l:符号链接
    • c:字符设备文件
    • b:块设备文件
  2. 后三组字符:每组三个字符,分别表示读(r)、写(w)和执行(x)权限
    • 第一组:文件所有者的权限
    • 第二组:文件所属组的权限
    • 第三组:其他用户的权限
字符位置含义示例解释
1文件类型d目录
2-4文件所有者权限rwx读、写、执行
5-7文件所属组权限r-x读、执行
8-10其他用户权限r-x读、执行

drwxr-xr-x 为例:

  • 第一个字符 d:表示这是一个目录。
  • 第一组 rwx:表示文件所有者(root)有读、写和执行权限。
  • 第二组 r-x:表示文件所属组(root)有读和执行权限,但没有写权限。
  • 第三组 r-x:表示其他用户有读和执行权限,但没有写权限。
(1)权限符号
符号说明含义数字表示
r可读(read)4
w可写(write)2
x可执行(execute)1
-无权限0

权限设置案例

权限符号数字表示含义
0无任何权限
–x1仅执行权限
-w-2仅写权限
-wx3写和执行权限
r–4仅读权限
r-x5读和执行权限
rw-6读和写权限
rwx7读、写和执行权限
(2)权限进制表示
权限二进制八进制
rwx1117
r-x1015
rw-1106
r--1004
---0000

计算权限的八进制表示

  • r = 4w = 2x = 1
  • 权限 rwx 转换为二进制 111,再转为八进制 7
  • 权限 r-x 转换为二进制 101,再转为八进制 5

权限字符串 drwxr-xr-x 解释:

  • d 表示目录。
  • rwx 是拥有者的权限,表示拥有者可以读、写、执行。
  • r-x 是所属组的权限,表示所属组成员可以读、执行,但不能写。
  • r-x 是其他人的权限,表示其他人可以读、执行,但不能写。

这个表格概述了文件权限和类型的基本信息,以及如何使用符号表示不同的权限和文件类型。

(3)权限组

在 Linux 中,每个文件或目录都有三个不同的权限组:所有者(Owner)、组(Group)和其他人(Others)。chmod 命令可以使用数字(八进制)或字母来设置这些权限。

u表示拥有者 ; g表示所属组 ; o表示其他用户 ; a表示所有的权限

用户分类描述
拥有者 (Owner)文件的创建者或所有者,通常拥有最高权限。
所属组 (Group)文件所属的用户组,组内用户共享特定的权限。
其他人 (Others)系统中所有其他用户。

2)chmod 命令修改权限

chmod 是 Linux 中用于更改文件或目录权限的命令。权限主要包括读(Read, r)、写(Write, w)和执行(Execute, x)。

(1)数字方式

数字方式使用三位数,每位数分别代表所有者、组和其他人的权限。例如:

  • chmod 755 filename 表示设置文件 filename 的权限为所有者有读、写、执行权限,组和其他人有读、执行权限。
(2)字母方式

字母方式使用符号表示权限和目标用户(所有者、组、其他人)。例如:

符号含义
u所有者(User)
g组(Group)
o其他人(Others)
a所有用户(All)
+增加权限
-移除权限
=设置为特定权限

示例:

  • chmod u+x filename 为文件 filename 的所有者增加执行权限。
  • chmod go-rw filename 移除文件 filename 中组和其他人的读写权限。
命令说明
chmod 644 file设置文件权限为所有者读写,组和其他人只读
chmod 700 script.sh设置脚本文件的所有者为读写执行,组和其他人无权限
chmod u=rwx,g=rx,o= file设置所有者读写执行,组读执行,其他人无权限

使用 chmod 命令时要特别注意,设置不当可能导致文件或目录无法访问或被错误使用。

(3)其他用法
所有者和组管理命令解析
chown user1 file1改变文件file1的所有者为user1
chown -R user1 directory1递归改变目录directory1及其下所有文件的所有者为user1
chgrp group1 file1改变文件file1的所属组为group1
chown user1:group1 file1改变文件file1的所有者为user1和所属组为group1
find / -perm -u+s罗列系统中所有使用了SUID权限的文件

3)特殊权限命令

  • SUID(Set User ID): 当文件具有 SUID 位时,执行该文件的用户将临时具有文件所有者的权限。适用于需要权限提升的程序,例如 /usr/bin/passwd
  • SGID(Set Group ID): 当目录具有 SGID 位时,新创建的文件将继承目录的组属性,而不是继承创建者的主组属性。
  • 粘滞位(Sticky Bit): 当目录设置了粘滞位时,即使其他用户具有写权限,他们也只能删除自己拥有的文件。这在共享目录中很有用,例如 /tmp 目录。
指令解析
ls -lh以长格式显示目录内容,包括文件的权限、所有者、组、大小和最后修改时间。
chmod u+s /bin/file1设置文件 /bin/file1 的 SUID 位。当普通用户执行此文件时,将临时获得文件所有者的权限。SUID 的符号为 s
chmod u-s /bin/file1禁用文件 /bin/file1 的 SUID 位。
chmod g+s /home/public设置目录 /home/public 的 SGID 位。新建文件将继承目录的组权限。SGID 的符号为 s
chmod g-s /home/public禁用目录 /home/public 的 SGID 位。
chmod o+t /home/public设置目录 /home/public 的粘滞位(Sticky Bit)。只有文件所有者或根用户才能删除该目录中的文件。粘滞位的符号为 t
chmod o-t /home/public禁用目录 /home/public 的粘滞位。
chmod 777 directory1设置目录 directory1 对所有用户开放读(r)、写(w)和执行(x)权限。
chmod 700 directory1设置目录 directory1 仅对所有者开放读、写和执行权限。

http://www.kler.cn/a/461695.html

相关文章:

  • C语言带参数的宏定义的相关知识汇总(最常用的形式、带标记分隔符##的形式...)
  • 汽车燃油软件标定测试
  • Vue3 子组件向父组件传递消息(Events)
  • 高频java面试题
  • 每天五分钟机器学习:凸集
  • checked 溢出问题
  • SQL常用语句(基础)大全
  • C++算法20例
  • Listwise 模型时间线梳理
  • Flask是什么?深入解析 Flask 的设计与应用实践
  • main函数
  • Kafka优势剖析-顺序写、零拷贝
  • 【C++】22___STL常用算法
  • 【每日学点鸿蒙知识】导入cardEmulation、自定义装饰器、CallState状态码顺序、kv配置、签名文件配置
  • node.js之---集群(Cluster)模块
  • 最新版Chrome浏览器加载ActiveX控件之CFCA安全输入控件
  • 设置虚拟机设备的dp和pt
  • 07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)
  • DataV数据可视化
  • 【2025 Rust学习 --- 09 特型和泛型】
  • C语言:位段
  • 【2024年-6月-7日-开源社区openEuler实践记录】探索 oec - hardware:硬件适配与管理的开源利器
  • Android实现队列出入队测试
  • 从自动化到大模型,王培东用实践搭建AI成长阶梯,登上ACL舞台丨社区星风采
  • pytorch 计算图中的叶子节点介绍
  • 我在成都教人用Flutter写TDD(补充)——关于敏捷教练