Linux操作系统特殊权限
在Linux操作系统中,除了常规的读、写、执行权限外,还有一些特殊权限用于控制文件和目录的访问行为。这些特殊权限包括SUID(Set User ID)、SGID(Set Group ID)和Sticky Bit(粘滞位)。这些权限主要用于增强系统安全性和管理灵活性。
一、SUID(Set User ID)
描述:SUID权限用于可执行文件,使该文件在执行时以文件所有者的权限运行,而不是以执行者的权限运行。这对于需要临时提升权限执行特定任务的程序非常有用。
-  设置SUID权限 chmod u+s file
-  示例 ls -l /usr/bin/passwd- 输出示例:
 这里的-rwsr-xr-x 1 root root 54232 Jun 6 2021 /usr/bin/passwds表示SUID权限,该文件在执行时将以root用户的权限运行。
 
- 输出示例:
二、SGID(Set Group ID)
描述:SGID权限用于可执行文件和目录。对于可执行文件,SGID使该文件在执行时以文件所属组的权限运行。对于目录,SGID确保该目录中新创建的文件和子目录继承父目录的组属性,而不是创建者的组属性。
-  设置SGID权限 chmod g+s file_or_directory
-  示例 ls -l /usr/bin/crontab- 输出示例:
 这里的-rwxr-sr-x 1 root crontab 36832 Jun 6 2021 /usr/bin/crontabs表示SGID权限,该文件在执行时将以crontab组的权限运行。
 
- 输出示例:
-  设置SGID目录示例 mkdir /tmp/sgidtest chmod g+s /tmp/sgidtest
三、Sticky Bit(粘滞位)
描述:Sticky Bit通常用于目录,表示该目录下的文件只能由文件所有者、目录所有者或超级用户删除或重命名。这在共享目录(如/tmp)中特别有用,以防止用户删除其他用户的文件。
-  设置Sticky Bit chmod +t directory
-  示例 ls -ld /tmp- 输出示例:
 这里的drwxrwxrwt 10 root root 4096 Jun 6 2021 /tmpt表示Sticky Bit,该目录下的文件只能由文件所有者或root删除。
 
- 输出示例:
四、检查和设置特殊权限
-  查看文件权限 ls -l file- 示例:-rwsr-xr-x 1 root root 54232 Jun 6 2021 /usr/bin/passwd
 
- 示例:
-  设置SUID权限 chmod u+s file
-  取消SUID权限 chmod u-s file
-  设置SGID权限 chmod g+s file_or_directory
-  取消SGID权限 chmod g-s file_or_directory
-  设置Sticky Bit chmod +t directory
-  取消Sticky Bit chmod -t directory
五、使用数值表示法设置特殊权限
在使用数值表示法(八进制)设置文件权限时,可以通过在常规权限前添加一个数字来设置特殊权限:
- SUID(4)
- SGID(2)
- Sticky Bit(1)
例如:
-  设置SUID和普通权限为755 chmod 4755 file
-  设置SGID和普通权限为755 chmod 2755 file_or_directory
-  设置Sticky Bit和普通权限为1777 chmod 1777 directory
总结
通过理解和正确使用SUID、SGID和Sticky Bit这些特殊权限,可以更好地控制Linux系统中文件和目录的访问行为,增强系统的安全性和管理灵活性。使用这些权限时应谨慎,以防止意外的安全漏洞和权限滥用。
Linux文件系统管理命令
在Linux操作系统中,文件系统管理涉及多个方面,包括文件系统的创建、挂载、卸载、检查和修复等操作。以下是常用的Linux文件系统管理命令及其详细说明。
一、文件系统的创建
1. mkfs
用于创建文件系统。
-  创建ext4文件系统 mkfs.ext4 /dev/sdX1
-  创建xfs文件系统 mkfs.xfs /dev/sdX1
2. mkswap
用于创建交换分区。
- 创建交换分区mkswap /dev/sdX2
二、文件系统的挂载和卸载
1. mount
用于挂载文件系统。
-  挂载文件系统 mount /dev/sdX1 /mnt
-  挂载指定类型的文件系统 mount -t ext4 /dev/sdX1 /mnt
-  挂载时指定选项 mount -o rw /dev/sdX1 /mnt
-  查看所有挂载的文件系统 mount
2. umount
用于卸载文件系统。
-  卸载文件系统 umount /mnt
-  强制卸载文件系统 umount -f /mnt
-  卸载所有已挂载的文件系统 umount -a
三、文件系统的检查和修复
1. fsck
用于检查和修复文件系统。
-  检查并修复ext4文件系统 fsck.ext4 /dev/sdX1
-  检查并修复xfs文件系统 xfs_repair /dev/sdX1
-  检查所有文件系统 fsck -A
-  强制检查文件系统 fsck -f /dev/sdX1
四、交换空间管理
1. swapon
用于启用交换分区。
-  启用交换分区 swapon /dev/sdX2
-  启用所有交换分区 swapon -a
2. swapoff
用于禁用交换分区。
-  禁用交换分区 swapoff /dev/sdX2
-  禁用所有交换分区 swapoff -a
五、文件系统配额管理
1. quota
用于显示用户或组的磁盘使用情况和配额。
-  显示用户磁盘使用情况 quota -u username
-  显示组磁盘使用情况 quota -g groupname
2. edquota
用于编辑用户或组的磁盘配额。
-  编辑用户磁盘配额 edquota username
-  编辑组磁盘配额 edquota -g groupname
3. setquota
用于设置用户或组的磁盘配额。
-  设置用户磁盘配额 setquota -u username softblock hardblock softinode hardinode /filesystem
-  设置组磁盘配额 setquota -g groupname softblock hardblock softinode hardinode /filesystem
六、文件系统信息查看
1. df
用于显示文件系统的磁盘空间使用情况。
-  显示所有文件系统的磁盘使用情况 df
-  以人类可读的格式显示磁盘使用情况 df -h
-  显示特定文件系统的磁盘使用情况 df -h /mnt
2. du
用于显示目录或文件的磁盘使用情况。
-  显示当前目录的磁盘使用情况 du
-  以人类可读的格式显示当前目录的磁盘使用情况 du -h
-  显示指定目录的磁盘使用情况 du -h /path/to/directory
-  显示当前目录及其子目录的总磁盘使用情况 du -sh *
七、文件系统挂载配置
1. /etc/fstab
用于配置系统启动时自动挂载的文件系统。
- /etc/fstab示例# <file system> <mount point> <type> <options> <dump> <pass> /dev/sdX1 / ext4 defaults 1 1 /dev/sdX2 none swap sw 0 0 /dev/sdX3 /home ext4 defaults 1 2
八、磁盘和分区管理
1. fdisk
用于磁盘分区管理。
-  列出磁盘分区 fdisk -l
-  管理磁盘分区 fdisk /dev/sdX
2. parted
用于高级磁盘分区管理。
-  进入交互式模式 parted /dev/sdX
-  创建新分区表 parted /dev/sdX mklabel gpt
-  创建新分区 parted /dev/sdX mkpart primary ext4 0% 100%
总结
通过掌握这些Linux文件系统管理命令,可以有效地创建、挂载、卸载、检查和修复文件系统,管理交换空间和磁盘配额,查看文件系统信息,并配置系统启动时的自动挂载。此外,了解磁盘和分区管理命令对于维护和优化Linux系统的存储管理也至关重要。
Linux系统网络配置命令
在Linux操作系统中,通过命令行工具可以执行各种网络配置和管理任务。这些命令涵盖网络接口的配置、网络诊断、网络服务管理等。以下是常用的Linux网络配置命令及其详细说明。
一、网络接口配置
1. ifconfig
ifconfig用于配置网络接口,查看和设置网络接口的IP地址、子网掩码等参数。
-  查看网络接口配置 ifconfig- 示例输出:eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link>ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet)RX packets 1120546 bytes 1586938594 (1.5 GB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 307068 bytes 31289005 (31.2 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
 
- 示例输出:
-  配置网络接口IP地址 sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
-  启用网络接口 sudo ifconfig eth0 up
-  禁用网络接口 sudo ifconfig eth0 down
2. ip
ip命令是ifconfig的替代工具,功能更强大。
-  查看网络接口配置 ip addr show- 示例输出:2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:4e:66:a1 brd ff:ff:ff:ff:ff:ffinet 192.168.1.100/24 brd 192.168.1.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe4e:66a1/64 scope linkvalid_lft forever preferred_lft forever
 
- 示例输出:
-  配置网络接口IP地址 sudo ip addr add 192.168.1.100/24 dev eth0
-  删除网络接口IP地址 sudo ip addr del 192.168.1.100/24 dev eth0
-  启用网络接口 sudo ip link set eth0 up
-  禁用网络接口 sudo ip link set eth0 down
3. nmcli
nmcli命令用于管理NetworkManager,适用于现代Linux发行版。
-  查看网络连接 nmcli connection show- 示例输出:NAME UUID TYPE DEVICE Wired connection 1 1c4f0e88-5d6b-3e2c-a8a4-1b3e65e27852 ethernet eth0
 
- 示例输出:
-  激活网络连接 nmcli connection up "Wired connection 1"
-  禁用网络连接 nmcli connection down "Wired connection 1"
-  添加新的网络连接 nmcli connection add type ethernet ifname eth0 con-name my-eth0
-  修改网络连接配置 nmcli connection modify my-eth0 ipv4.addresses 192.168.1.100/24
二、网络诊断
1. ping
用于测试网络连接和响应时间。
-  测试连接到特定主机 ping www.example.com
-  发送指定数量的请求 ping -c 5 www.example.com
2. traceroute
用于跟踪数据包到达目标主机的路由路径。
- 跟踪到特定主机的路由traceroute www.example.com
3. netstat
用于显示网络连接、路由表和接口状态等。
-  查看所有活动连接 netstat
-  显示所有端口的监听状态 netstat -an
-  显示应用程序和端口的对应关系 sudo netstat -tulnp
4. ss
ss命令是netstat的替代工具,功能更强大。
-  查看所有活动连接 ss
-  显示所有端口的监听状态 ss -l
-  显示应用程序和端口的对应关系 sudo ss -tulnp
5. dig
用于DNS查询。
-  查询特定域名的DNS信息 dig www.example.com
-  查询特定DNS记录类型 dig www.example.com A dig www.example.com MX
6. nslookup
另一种用于DNS查询的工具。
- 查询特定域名的DNS信息nslookup www.example.com
三、网络服务管理
1. systemctl
用于管理系统服务。
-  启动网络服务 sudo systemctl start network
-  停止网络服务 sudo systemctl stop network
-  重启网络服务 sudo systemctl restart network
-  查看网络服务状态 sudo systemctl status network
2. service
用于管理系统服务,适用于较老的Linux发行版。
-  启动网络服务 sudo service network start
-  停止网络服务 sudo service network stop
-  重启网络服务 sudo service network restart
-  查看网络服务状态 sudo service network status
四、网络路由配置
1. route
用于查看和配置路由表。
-  查看路由表 route -n
-  添加静态路由 sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
-  删除静态路由 sudo route del -net 192.168.2.0 netmask 255.255.255.0
2. ip route
用于查看和配置路由表。
-  查看路由表 ip route
-  添加静态路由 sudo ip route add 192.168.2.0/24 via 192.168.1.1
-  删除静态路由 sudo ip route del 192.168.2.0/24
五、防火墙配置
1. iptables
用于管理IPv4防火墙规则。
-  查看防火墙规则 sudo iptables -L
-  允许特定端口的入站流量 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-  拒绝特定端口的入站流量 sudo iptables -A INPUT -p tcp --dport 22 -j REJECT
-  删除防火墙规则 sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
2. firewalld
用于管理防火墙规则,适用于现代Linux发行版。
-  启动firewalld sudo systemctl start firewalld
-  停止firewalld sudo systemctl stop firewalld
-  **启用firewal 
ld开机自启**
sudo systemctl enable firewalld
-  禁用firewalld开机自启 sudo systemctl disable firewalld
-  查看firewalld状态 sudo firewall-cmd --state
-  允许特定端口的入站流量 sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
-  拒绝特定端口的入站流量 sudo firewall-cmd --permanent --remove-port=80/tcp sudo firewall-cmd --reload
六、网络连接管理
1. nmtui
基于文本的NetworkManager用户界面。
- 启动nmtuisudo nmtui
2. wifi
配置和管理无线网络连接。
-  扫描可用的无线网络 sudo iwlist wlan0 scan
-  连接到无线网络 sudo nmcli dev wifi connect SSID_NAME password WIFI_PASSWORD
总结
通过掌握这些Linux网络配置命令,系统管理员可以有效地配置网络接口、诊断网络问题、管理网络服务、配置防火墙规则和管理网络路由。这些命令在日常网络管理和故障排查中非常有用,有助于确保网络的正常运行和安全性。