【03】Linux 教程之Linux 高端操作(详细版)

第三章:Linux 的服务管理

一、用户和用户组管理

在 Windows 系统中,一般情况下是一个用户使用当前操作系统。但是在 Liunx 系统中,它是多用户操作系统,所以会有多个用户使用同一个操作系统。这时,我们就要对这些用户进行相应管理了。在 Liunx 系统中,用户分为 root 用户普通用户 。root 用户可以操作系统的一切,而普通用户只能使用被分配的权限, 不能进行危害系统的操作。

1、用户与用户组相关命令

useradd Tom                 # 新建 Tom 用户
id Tom                      # 判断系统是否有这个用户
passwd Tom                  # 为 Tom 用户设置密码
passwd root                 # 修改 root 用户密码
    
userdel Tom                 # 删除 Tom 用户,这样删除的话,用户的家目录会被保存,不会被删除。
                            # 这样子可以防止删除用户的同时不会把数据给删了
userdel -r Tom              # 彻底删除 Tom 用户,家目录也会被删除

usermod -d /home/a2 a1      # -d 表示修改用户家目录位置。这条命令就是把原来 a1 位置移到了 a2 位置,
                            # 相当于此用户搬了一次家
chage                       # 对用户的生命周期进行设置

groupadd group01            # 新建 group01 用户组
usermod -g group01 Tom      # 把 Tom 的用户组改为 group01
useradd -g group01 Tom      # 新建 Tom 用户并加入到 group01 用户组

2、新建用户

新建一个用户之后,Linux 系统会做哪些事情呢?首先: 会给用户分配一个家目录,位置在 /home/用户名第二: 用户还会被记录到 etc/passwd 文件当中,如下图。只要包含 Tom 这一行,就说明有这个用户存在。第三: 用户还会被记录到 /etc/shadow 文件当中,这是与用户密码相关的文件。图片如下:

温馨小提示: 1、如果创建用户时没有指定组,那么系统就会创建和用户同名的组。
2、root 用户才有权限创建用户,普通用户没有此权限。

3、删除用户

# 删除用户
userdel Tom                    # 删除用户,但是保留了家目录和邮箱命令
userdel -r Tom                 # 彻底删除用户,清空用户数据
userdel -f Tom                 # 强制删除用户,但是保留了家目录和邮箱命令

如果使用 userdel Tom 命令删除该用户时,并不能删除该用户的所有信息。此命令只是删除了 /etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow 四个文件里的该账户和组的信息。默认情况下。我们创建了一个用户账号,同时也会创建一个家目录和一个用户邮箱,位置在 /var/spool/mail 目录以用户名命名。

4、修改用户

使用 usermod 命令chage 命令 可以修改用户信息、用户的生命周期以及用户密码等等相关操作。如下图:

# usermod 命令和 chage 命令
usermod                           # 可用来修改用户帐户的各项设定
usermod -d /home/Toms tom         # 把 tom 用户的家目录修改为 Toms
chage                             # 修改帐号和密码的有效期限!

TIPS: 详情参考他人博客

5、新建用户组

如果有三个用户,他们需要相同的权限,或者是希望操作相同的文件时,然而我们并不想对每一个用户单独设置,那该怎么办?我们就把他们加入到一个用户组,这样他们就有了相同的权限,也方便我们对一类用户进行管理。

# 用户组相关命令
groupadd group02                  # 新建 group02 用户组
usermod -g group02 user1          # 把 user1 的用户组改为 group02
useradd -g group02 Lisa           # 新建 Lisa 用户并加入到 group02 用户组
groupdel group02                  # 删除 group02 用户组

6、用户切换 su 和 sudo

有的时候我们需要临时将用户身份变一下,该怎么办呢?举个例子:我们想测试一下普通用户对某一个目录是否具有权限,当前用户是 root 用户,那该怎么办?当然,我们可以退出 root 用户,然后登陆该普通用户,但是这样很麻烦。有没有更简单的方法呢?当然有,如下:

su - user1            # 符号 - 的作用就是切换用户的同时,并把当前运行环境变更为 user1 的环境
su user1              # 不带减号,不完全切换,环境带不过去,还在 root 目录下

温馨小提示:

1、root 用户到普通用户,不需要输入密码。
2、普通用户切换到普通用户,要输入密码。
3、普通用户到 root 用户,要输入密码。

有时候,普通用户想使用命令行关机,但是权限不足,需要切换到 root 用户。这样的话,root 用户的密码就暴露了,普通用户可以拿着密码 干点坏事 。那么如何让普通用户关机且不给 root 密码呢?这么做,如下:

useradd user03       # root 用户模式下新建用户
shutdown -h 30       # 30 分钟关机
su - user03          # 切换到普通用户模式
shutdown -c          # 停止关机操作,此时是 user03 普通用户,会提示权限不足

# 如果我一定要 user03 执行这条命令呢,该怎么办?
# 1、把 root 用户密码告知 user03 ,但是这样做不安全,万一它拿着密码干坏事呢?
# 2、使用 sudo 命令,给 user03 设置密码,然后给他分配 停止关机操作的权限,接下来就操作一下吧

# 给 user03 设置密码,此时在 root 用户模式下,只有root 模式才可以对用户进行相关操作
passwd user03        # 输入自己密码即可,密码是看不到的
visudo  

# 如果不知道要授予权限的命令位置在哪里,就是用 :!which 相关命令
:!which shutdown

# 注意:字符终端使用 localhost , 图形终端使用 ALL

7、用户和用户组配置

# /etc/passwd 用户的配置文件,分为七个字段
# 第一个字段:用户名称。如:root 用户
# 第二个字段:是否需要密码 如 X 代表要,不写则不需要,就是登陆的时候以及其他操作不需要密码
# 第三个字段:用户 uid ,Linux 系统中,不是靠 用户名称识别用户,而是靠用户的 uid 识别。
#            如果 uid 是 0 的话,那就具有 root 权限了。

# 第四个字段:用户 gid ,用户组相关
# 第五个字段:这个字段是注释,为空,啥都没有
# 第六个字段:用户家目录所在位置

# 第七个字段:用户命令解释器。就是当这个用户登陆之后,使用哪个解释器来解释相关命令。
#            一般都是:/bin/bash ,如果是 /sbin/nologin ,则代表此用户无法登陆
vim /etc/passwd

# 我们不使用 useradd 新建用户了,来点高级的,如下
user04:x:1005:1005::/home/user04:/bin/bash
su - user04        # 使用 user04 登陆系统,发现提示没有家目录,然后命令提示符为:-bash
# /etc/shadow 保存用户和用户密码相关的文件
# 第一个字段:用户名称,如:root 用户
# 第二个字段:加密过的密码, 如 $sfdklasjfkjjf$,随便写的,自己可以编辑 shadow 文件看一下就知道了。
#            即使用户密码相同,显示的也是不同的字符串
vim /etc/shadow

# /etc/group 用户组相关配置文件
# 第一个字段:组的名称
# 第二个字段:是否需要密码
# 第三个字段:组的 gid ,很重要
# 第四个字段:其他组设置,一般很少用,如:mail 组下的 postfix 用户。
#            如果 A 用户 属于 A 组,他也想属于 B 组,那就在 B 组的第四个字段 写上 A,即写用户名称。
#            这样 A 用户就同时属于 A 主和 B 组了。
vim /etc/group

vim /etc/passwd 的内容如下:

vim /etc/shadow 的内容如下:

vim /etc/group 的内容如下:

二、文件与目录权限

1、文件权限的介绍

drwxr-xr-x. 2 root root    6 4月  22 10:37 桌面
-rw-------. 1 root root 1486 4月  22 17:56 anaconda-ks.cfg
-rw-r--r--. 1 root root 1641 4月  22 17:59 initial-setup-ks.cfg

# 分析上面三行前 10 个字符的含义
# 第一个字符:如果是 d ,则代表这个一个目录,如第一行的,桌面就是一个目录。
# 第一个字符:如果是 - , 则代表是文件,如第二三行
# 第 2~4 个字符: 代表创建这个文件的用户所具有的操作权限
# 第 5~7 个字符: 代表创建这个文件的用户所在的用户组所具有的操作权限
# 第 8~10 个字符: 代表其他用户所具有的操作权限
# 解释 r w x 是是什么意思:r 代表可读,w 代表可写,x 代表可执行

# 第一个 root 代表创建这个文件或者文件夹的用户
# 第二个 root 代表用户当时创建此文件或文件夹所属的用户组

2、文件权限的修改

mkdir /test               # 方便演示,新建一个目录
ls -ld /test              # 查看 test 目录的权限。注意:这是 root 用户创建的目录
# 注意一下: 权限只是针对于非 root 用户,root 用户啥都能干,管你权限不权限

# 改变 test 目录的属主为 user04 用户
chown user04 /test
ls -ld /test

# 使用 chown 命令改变 test 目录的属组为 group01
chown :group01 /test
ls -ld /test

# 使用 chgrp 命令改变 test 目录的属组为 group02
chgrp group02 /test
ls -ld /test
# 修改文件权限操作: chmod u g o a + - =
cd /test                # 进入到 test 目录
ls                      # 查看是否有文件。我们还没创建呢,哪来文件,哈哈哈
touch afile             # 在 test 目录下创建 afile 文件
ls -l afile             # 查看 afile 的相关权限

chmod u+x afile         # 给属主增加执行权限【就是第 2~4 个字符】,u 代表属主,+ 代表增加,- 代表减少,x 代表执行【前面有介绍】
chmod g-r afile         # 给属组减少读的权限【就是第 5~7 个字符】,g 代表属组
chmod o=rwx afile       # 给其他用户设置 rwx 权限【就是第 8~10 个字符】,o 代表其他用户
ls -l afile             # 查看设置过后的权限,进行对比一下
chomd a+r afile         # 给所有用户及用户组添加 r 权限,a 代表所有

chmod 446 afile         # 数字设置权限的方式,代表 属主只读-属组只读-其他用户可读写 权限。 r=4 w=2 x=1
ls -l afile             # 结果:-r--r--rw-. 1 root root 0 5月  15 01:40 afile

touch bfile             # 创建 bfile 文件
ls                      # 查看它的默认权限 666 - umask = 666 - 022 = 644
umask                   # 默认权限本来是 666 ,但是要减去 umask 的值,所以是 644 。umask 的值是 0022

TIPS: 使用 CTRL + R 可以查找使用过的命令,非常使用哦!

3、各个权限的功能

# 还是以上面的 /test 作为例子
chmod 777 /test                 # 给所有用户及用户组所有权限。
ls -ld /test                    # 此刻发现,test 目录有背景颜色,什么情况我也不知道,哈哈哈
touch cfile                     # 新建 cfile 文件
ls -l cfile                     # 查看 cfile 文件权限
chown user1:group01 cfile       # 同时修改 cfile 文件的属主和属组
ls -l cfile                     # 再次查看 cfile 文件权限
chmod 400 cfile                 # 只给属主只读权限【为了方便测试,设置为 400 ,减少干扰】
echo 123 > cfile                # 把 123 显示到 cfile 中。这个操作是先把 cfile 里面的内容先清空,然后写入 123 
# 此时切换到用户 user1 测试权限
su - user1
cat /test/cfile                 # 可以读出内容为 123
echo > 456 /test/cfile          # 报错了,权限不足,无法写入 456。因为 user1 用户对这个文件只有读权限,没有写权限
exit                            # 退出当前用户,如果需要修改 cfile 其他权限,就要到 root 用户下修改,普通用户没有权限去操作

# 一个权限冲突问题:此时属主没有任何权限,属组具有写的权限,但是属主又在属组中,那么属主是否有写的权限呢?
# 所以出现了权限冲突。提示:以属主权限设置为准,所以属主没有写的权限,属组中,除了属主之外的用户才有写的权限。
chmod 020 /test/cfile

# 到此为止,文件权限就说完了,接下来的目录权限原理是一样的,就不演示了,参考上图 x rx wx 自己操作即可。wx 具有删除文件的功能。

4、特殊权限

特别提示: root 用户 有特权,即使没有权限也可以查看。就是这么拽,哈哈哈!!!

如何增加特殊权限呢? 看下图:

三、网络的配置和管理

1、查看网络配置

ifconfig                                   # 查看网络状态,root 用户使用
ifconfig eth0                              # 如果网卡过多,则可以接网卡名查看网卡的信息
/sbin/ifconfig                             # 查看网络状态,普通用户使用
vim /etc/default/grub                      # 修改网卡的配置,把网卡的名字变成 eth0 这种格式
grub2-mkconfig -o /boot/grub2/grub.cfg     # 把修改的网卡配置进行转换,重启后即可生效
reboot                                     # 重启 Linux 系统,使网卡配置生效

2、修改网络配置

# 启动和关闭网卡
ifup eth0                  # 启用网卡
ifconfig eth0 up           # 启用网卡
ifdown eth0                # 关闭网卡
ifconfig eth0 down         # 关闭网卡

# 查看网关
route -n
# 为指定主机添加明细路由。表示访问 10.0.0.1 这台主机时使用 10.211.5.1 这个网关
route add -h 10.0.0.1 gw 10.211.5.1
# 为指定网段添加明细路由
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.211.5.1

3、网络故障排除

# 抓取任意网卡 80 端口的数据包。-n 表示有域名的话,就解析成 ip 地址
tcpdump -i any -n port 80

# 抓包。抓取发往 10.0.0.1 主机 80 端口的所有数据包
tcpdump -i any -n host 10.0.0.1 and port 80

# 把捕获到的数据保存到 tcp.txt 文件,然后再去进行分析。-w 表示保存
tcpdump -i any -n host 10.0.0.1 and port 80 -w /root/tcp.txt

netstat -ntpl       # 查看监听的端口
ss -ntpl            # 功能和 netstat 基本一样

4、网络管理和配置文件


四、软件包的安装与管理





五、进程相关内容



六、内存和磁盘管理



七、文件系统管理



  • 文章作者:root
  • 创建时间:2022-01-06 23:55:59
  • 更新时间:2022-01-06 23:55:59
  • 版权声明:本文为博主原创文章,未经博主允许不得转载!
请 在 评 论 区 留 言 哦 ~~~
1024