Linux Essentials

5.4 特殊目录和文件

admin 提交于 周四, 04/11/2019 - 09:04

1. 常见目录用途

  • /etc: 系统配置目录
  • /var: 动态文件或数据存放目录
  • /var/log: 存放所有日志文件的目录,里面存放很多系统、软件、用户等相关的日志信息
  • /var/www: Web服务器默认根目录
  • /var/spool: 里面主要都是一些临时存放,随时会被用户所调用的数据,打印机、邮件、代理服务器等假脱机目录存放在该目录下。
  • /tmp: 临时文件存放区域,可以被所有用户使用。主要存放一些比较小的、有效时间短的系统临时文件,许多系统开机时会清除/tmp下的文件。
  • /var/tmp: 通常位于物理磁盘上,可以较长时间保存一些较大的临时文件。值得注意的是,/var/tmp在早期启动过程中可能不可用,因为/var和/或/var/tmp可能是挂载点。因此,大多数启动脚本都使用/ tmp而不是/var/tmp作为临时文件夹。

 

2. Set UID

[root@localhost ~]# ls -l $(which passwd)

5.3 管理文件权限和拥有者

admin 提交于 周四, 01/31/2019 - 08:55

1. 文件权限

$ ls -l

drwx------  28 root root      4096 Jun 10 16:13 ./

drwxr-xr-x  22 root root      4096 Apr  1 23:04 ../

-rw-r--r--   1 root root      1682 Dec 21 10:18 zscan.pl

ls -l (一般可以简写成ll)可以查看目录里文件的详细信息。第一组是文件的权限,第一个字母如果是d表示目录。.是当前目录,..是上一级目录。第一组信息第2-4各字母表示文件所有者所具有的权限,第5-7各字母是文件所属组具有的权限,第8-10各字母是所有人具有的权限。r表示可读(值为4),w表示可写(值为2),x表示可执行(值为1)。对于目录来说,可执行表示可以进入目录。

我们可以用下面命令给所有用户添加可读性权限:

$ chmod a+r foo

5.2 创建用户和组

admin 提交于 周二, 01/15/2019 - 11:50

1. 添加用户useradd

useradd [选项] <用户名>

其中常用的一个选项是-m可以自动创建用户home目录。

2. 修改密码passwd

创建用户后可以通过password <用户名>向用户制定密码。

3. 修改用户信息usermod

可以修改用户所属群组等信息,具体使用方法通过-h参数查阅即可。

4. 删除用户userdel

5. 添加组groupadd

groupadd [选项] <组名>

6. 修改组信息groupmod

7. 删除组groupdel

8. 相关文件

以下文件和用户信息相关,添加修改用户会在下面文件留下记录,感兴趣的话可以看看文件内容。

/etc/group,/etc/passwd,/etc/shadow

 

9. 考纲描述

5.2 Creating Users and Groups

Weight: 2

5.1 安全基础及查找用户信息

admin 提交于 周二, 12/04/2018 - 11:17

1. 用户和组相关的文件

1.1 /etc/passwd

下面是该文件的一个片段:

 

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

bolun:x:1004:1004::/home/bolun:/bin/bash

第1个字段是用户名;

第2个字段以前记录密码,后来密码移到了shadow文件了,用x来代替;

第3个字段是uid;

第4个字段是gid(用户所属主组的id);

第5个字段是用户目录路径;

第6个字段是登录时用的shell。

1.2 /etc/shadow

这个文件主要保存了散列后的密码。

1.3 /etc/group

这个文件保存了系统里的组信息。

2. 查询用户信息(id)

$ id 

uid=0(root) gid=0(root) groups=0(root)

4.4 计算机网络

admin 提交于 周二, 11/13/2018 - 09:50

1. 协议

1.1 OSI网络七层协议模型

下面是一个经典的OSI网络七层协议模型,演示了数据在计算机简传输的一个抽象过程。七层协议由下往上依次为:物理层、数据连接层、网络层、传输层、会话层、表示层、应用层。对于大部分的软件开发人员,主要接触的是应用层。TELNET、HTTP、FTP、NFS、SMTP这些都是应用层的协议。

OSI网络七层协议模型

1.2 TCP和UDP

应用层的协议分TCP和UDP两大类,需要准确传输的协议用TCP方式,例如Web服务、Email、FTP,TCP协议有较多额外的消耗用于保证数据完整和正确。对于视频、音频等流媒体应用,则可以使用UDP的方式,减少消耗以达到最高的网络传输率。

4.2 计算机硬件

admin 提交于 周一, 09/10/2018 - 10:24

1. 计算机组成

计算机主要由电源(Power)、主板(motherboard)、中央处理器(CPU)、内存(RAM)、硬盘(hard disk)、显示器(monitor)、键盘(keyboard)、鼠标(mouse)组成。

  • 电源把交流电(AC)转成直流电(DC),并附带散热风扇。
  • 主板把各硬件连接在一起,协调它们的通信。主板带有一个叫BOIS的程序,可以控制各硬件的配置,配置的参数保存在CMOS中。
  • CPU负责数学和逻辑运算。
  • RAM是一种断电后会丢失内容的存储器,比硬盘的读写速度要快得多。

 

硬盘可以分为机械硬盘和SSD硬盘。机械硬盘的可靠性要高一些,其损坏一般是逐渐发生的。SSD硬盘的速度要比机械硬盘快大概10倍,不过其损坏可以是突然发生的,一旦损坏会导致整个硬盘数据丢失。在独立的服务器中有时会使用阵列硬盘来提高读写速度和可靠性。在Linux系统中,硬盘的设备文件放在/dev/sd*,例如/dev/sda。硬盘格式话之后会在不同分区后加数字,例如:/dev/sda1, /dev/sda5, /dev/sda6等。

由于硬件发展快,内容很快过时,这里就不展开讨论了。

4.1 选择操作系统

admin 提交于 周二, 07/24/2018 - 10:38

1. Windows、Mac、Linux的区别

Windows拥有绝大部分的市场份额,可以认为个人计算机的普及是比尔盖茨创立的微软从DOS到Windows发布的一系列操作系统的功劳。对于一般用户来说,Windows是最合适的选择。Windows有更丰富的软件。绝大部分的PC游戏都是针对Windows平台开发的。过去国内的网银也只支持Windows。

Mac的优势在于设计和硬件能力。Mac的操作系统基于BSD,属于Unix家族,因而它和Linux更为接近。Mac的命令行和Linux有一样的体验。大部分Linux命令行软件都可以在Mac上安装运行,基于这一点,很多服务器软件开发人员都喜欢使用Mac,这令到开发效率更高。不过对于一般人来说,Mac的很多操作和Windows不同,要习惯新的操作可能需要一个月的时间。不少人买一台Mac回来还会选择多装一个Windows系统。一些用户很多的产品会有一个功能简洁的Mac版,例如QQ、微信等。

Linux的桌面软件性能、数量、质量要远逊于Windows和Mac。不过Linux在服务器方面的软件具有绝对的优势,因而大部分的服务器是采用Linux服务器的。它更适合作为极客的玩具。

3.3 编写脚本

admin 提交于 周三, 06/27/2018 - 16:59

1. 一个例子

#!/bin/bash

# 第一行表示解释本脚本的命令路径,如果文件带有可执行属性,那么文件可以直接运行。

# 第一行的路径如果填写#!/usr/bin/python,那么就表示这是一个Python脚本文件,会用Python解释器解释。

# 井号开头的行是注释

 

echo "echo命令用来打印信息在屏幕上"

 

# 脚本退出的时候可以用exit 0;来返回退出状态,0表示正常返回,如果非0,表示异常返回。$?特殊变量可以返回上一条命令的退出状态。

ls '一个不存在的文件'

echo $?

# 屏幕会显示2,这是ls命令遇到文件不存在时返回的错误码。

 

# &&表示逻辑与,||表示逻辑或。在一般的计算机语言解释器中,如果&&左边的条件成立才会执行检查&&右边的语句是否成立;同样地,如果||左边的条件不成立才会执行检查右边的语句是否成立。这就起到了条件语句的作用。