实践一:Linux基础实践

1、Linux基础实践

1.1

1. 掌握软件源的维护方法,配置系统使用软件源镜像。掌握经过软件源来查找,安装,卸载,更新软件的方法。html

  这部份内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述了。linux

1.2

1. 掌握Linux权限管理的概念。掌握与权限管理相关的9bit的含义与设置方法。shell

  • Linux权限管理:Linux是一个多用户多任务操做系统,便可以在系统上创建多个用户,而多个用户能够在同一时间内登陆同一个系统执行各自不一样的任务。为保证互不影响,Linux进行文件权限划分与管理,每一个用户在权限容许的范围内完成不一样的任务
  • 转换为root模式:sudo su(将切换为root身份,并要求输入当前用户的password)

  • 权限管理vim

    ①文件访问者的分类(用户级别)windows

    • 文件和文件目录的全部者:u(User)
    • 文件和文件目录的全部者所在的组的用户:g(Group)
    • 其它用户:o(Others)

    ②文件访问权限的种类缓存

    • 基本权限安全

    读(Read):对文件而言,具备读取文件内容的权限;对目录来讲,具备浏览该目录信息的权限
    
    写(Write):对文件而言,具备修改文件内容的权限;对目录来讲具备删除移动目录内文件的权限
    
    执行(execute):对文件而言,具备执行文件的权限;对目录来讲,具备进入目录的权限
    
    iv.“—”表示不具备该项权限

     

    • 特殊权限bash

    suid:只能应用在可执行文件上,容许任意用户在执行文件时以文件拥有者的身份执行
    
    sgid:只能应用在可执行文件上,使任意用户在执行可文件时,将以拥有组成员的身份执行
    
    粘着位:只能应用在目录文件上,将使用户在目录中执行删除时,只能删除本身拥有的对象

     

    ③文件权限值的表示方法服务器

    • 第一个字符显示文件的类型:网络

    “-”表示普通文件。
    “d”表示目录文件。
    “l”表示连接文件。
    “c”表示字符设备。
    “b”表示块设备。
    “p”表示命名管道,好比FIFO文件(先进先出)。
    “f”表示堆栈文件,好比LIFO(后进先出)。
    “s”表示套接字。

     

    • 第一个字符以后有三个三位字符组:

    第一个三位字符组表示文件拥有者(u)对该文件的权限。
    第二个三位字符组表示文件用户组(g)对该文件的权限。
    第三个三位字符组表示系统其余用户(o)对该文件的权限。
    若该用户组对此没有权限,通常显示“-”字符。

     

    注意:目录权限和文件权限有必定的区别。对于目录权限而言,r表明容许列出该目录下的文件和子目录,w表明容许生成和删除该目录下的文件,x表明容许访问该目录。

    • 字符表示方法

    r--:   只读           -w-:  写         
    --x:   执行           rw-:  读写        
    -wx:  写和执行        r-x : 读和执行
    rwx : 读写执行        ---:  无权限 

     

    • 8进制数值表示方法

r:4           
w:2      
x: 1   
rw: 6         
rx: 5      
wx:3  
rwx:7         
0:表明没有权限

 

2. 掌握chmod指令的使用

  • 功能:设置文件的访问权限
  • 格式:chmod [参数] 权限 文件名
  • 参数:

R:递归修改目录文件的权限
V:显示指令执行过程
reference=<参考文件或目录>:把指定文件或目录的权限所有设成与参考文件或目录的权限相同

 

注意:只有文件的拥有者和root才能够改变文件的权限

  • chmod命令权限值的格式: 用户标识符 +/-/= 权限字符

    ①用户标识符:

    u:拥有者
    g:拥有者同组用户
    o:其它用户
    a:全部用户  

     

    ②+/-/=:

     

  • +:向权限范围增长权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限

     

  • ③权限字符:能够是“r”(只读)、“w”(可写)和“x”(可执 行),以及它们的组合。

    ④示例:取消文件拥有者对haha文件夹的可读、可写、可运行权限

3. 掌握chown指令的使用

  • 功能:修改文件的拥有者和组别
  • 格式:chown [参数] 用户名或用户组名 文件名
  • 参数:

 

R:递归改变目录的拥有者 
f:不显示拥有者的详细信息

 

 

  • 示例:

注意:必须在root模式下才有权限修改文件的拥有者和组别。

4. 掌握用户与用户组的维护方法

  • 更改root用户:sudo su
  • 建立用户:

useradd 用户名
cat /etc/passwd(在 /etc/passwd 文件中增添一行记录)

  • 删除用户:userdel 用户名

  • 建立组:

groupadd 组名 
grep 组名 存放地址(/etc/group)

  • 删除组:groupdel 组名

  • 设置密码:passwd 用户名

5. 修改开机脚本或编写脚本

  • 进入/etc/init文件夹,打开rc-sysinit.conf文件

用线标记的那一行代码:evn DEFAULT_RUNLEVEL=2的意思是,系统当前启动后runlevel(运行级别)是2。修改数字就可实现切换用户模式的基本操做。

Linux系统有7个运行级别(runlevel):

运行级别0:系统停机状态,系统默认运行级别不能设为0,不然不能正常启动
运行级别1:单用户工做状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS)
运行级别3:彻底的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,不然不能正常启动

 

  • 运行级别的原理

1. 在目录/etc/rc.d/init.d下有许多服务器脚本程序,通常称为服务(service)
2. 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3. rcN.d目录下都是一些符号连接文件,这些连接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
4. 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的连接文件
     对于以K开头的文件,系统将终止对应的服务
     对于以S开头的文件,系统将启动对应的服务
5. 查看运行级别用:runlevel
6. 进入其它运行级别用:init N
7. init0为关机,init 6为重启系统

 

  • 修改/etc/rc2.d/Sxxgdm 为 /etc/rcx.d/Kxxgdm:sudo mv Sxxgdm Kxxgdm(S开头的表示启动,K开头的表示不启动,该语句的做用就是终止rcx.d目录所对应的服务。)

  • 删除某开机自启动文件:sudo update-rc.d –f xxx remove(xxx是文件名中除了S和K之外的非数字部分)

6. 添加开机自启动文件

  • 首先下载vim,在/etc/init.d文件夹下编写一个新的脚本文件haha.sh

  • 而后给脚本文档设置权限,执行命令sudo chmod 755 haha.sh后能够看到haha.sh变成了可执行文件(绿色)

  • 将脚本的路径写入/etc/init.d/rc.local中

  • sudo update-rc.d haha.sh defaults 99(99为启动顺序)

7. 理解并修改PATH环境变量

  • 概念:$PATH决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当运行一个程序时,Linux在这些目录下进行搜寻编译连接

  • 编辑PATH声明的格式:

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH3>:-----:<PATH N>

 

  • 环境变量更改后,在用户下次登录时生效,若是想马上生效,则可执行下面的语句:$ source .bash_profile

  • 可用 export 命令查看PATH值
  • 可用 #echo $PATH 命令单独查看PATH环境变量
  • 修改环境变量

1. # vim/etc/profile
2. 在文档最后添加:export PATH="目录:$PATH",保存并退出
3. #source/etc/profile

 

1.3

SSH概念:Secure SHell。经过使用SSH能够把全部传输的数据进行加密,防止中间人攻击,并且也可以防止DNS和IP欺骗。并且传输的数据是通过压缩的,因此能够加快传输的速度。SSH有不少功能,它既能够代替telnet,又能够为FTP、POP、甚至PPP提供一个安全的“通道”。

1. 正确安装SSH服务,并理解配置文件

  • 以root权限登录linux系统并打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装SSH服务。若是显示没有安装则执行 apt-get install openssh-server 命令来安装SSH服务

  • 开启SSH服务,并使用ps和grep命令经过管道查看特定用户进程

  • 运行netstat -antp | grep sshd 命令验证是否启动了22端口(22端口为ssh默认端口,确认SSH服务的开启状态)

  • 运行 vi /etc/ssh/ssh_config 命令进入ssh配置文件

Port 22:设置链接到远程主机的端口。 
Cipher 3des:设置加密用的密码。 
Mac:设置认证所使用的密码。
ListenAddress 192.168.1.1:设置sshd服务器绑定的IP地址。
HostKey /etc/ssh/ssh_host_key:设置包含计算机私人密匙的文件。
ServerKeyBits 1024:定义服务器密匙的位数。
……

2. 用命令行启动或中止相应服务,并从测试可正常从远程接入

  • 启动SSH服务:sudo /etc/init.d/ssh start
  • 中止SSH服务:sudo /etc/init.d/ssh stop
  • 使用ifconfig查询linux虚拟机IP

  • 查看本机IP地址和虚拟机IP地址,将它们改成在同一个网段,并将网络设置更改成桥接网卡模式

  • 在主机或其余终端中使用ssh服务(本例中使用windows7中的putty软件接入)

1.4

1. 利用用户名/密码实现身份认证

2. 利用证书实现身份认证

  • 运行puttygen.exe 选择生成密钥对(生成过程当中须要在当前程序活动窗口中滑动鼠标以生成随机密钥)。生成密钥对以下图所示。点击save private 将私钥.ppk 文件保存到本地。并复制公钥内容。

  • 使用PUTTY链接主机,得到root权限。使用命令vim ~/.ssh/authorized_keys打开要修改的文件将公钥内容粘贴进去,保存并退出。

  • 经过命令vim /etc/ssh/sshd_ config 修改配置文件,找到下⾯两行代码并去掉注释:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

以后保存并退出,断开链接。

  • 再次使用PUTTY进行链接时,选择“链接”->“SSH”->“认证”,选择保存在本地的私钥文件

  • 结果使用公钥认证链接成功

1.5

1. 使用WinSCP 客户端链接并进行文件传输

  • 输入Linux的ip地址、用户名和密码,SSH服务默认端口号为22(不要更改)

  • 弹出对话框提示缓存密钥,选择“是”
  • 登录成功后便可进入界面进行文件传输

2. Windows中的PUTTY可运行XWindows程序

  • 安装Xming,在桌面上打开Xming的快捷方式,并在目标的命令行中加上参数-ac

  • 开启Xming程序,在PUTTY中勾选容许X11映射

  • 在PUTTY中以root帐号登录,编辑SSH服务器的配置文件vi /etc/ssh/sshd_config并开启TCP转发和X11转发,即加入以下两句:

AllowTcpForwarding yes
X11Forwarding yes

 

  • 注:由于我登录用户名与存放公钥的文件夹的拥有者不一样,全部在配置文件内额外将StrictModes yes改成StrictModes no,并且生产机器禁止ROOT远程SSH登陆,因此还需增长PermitRootLogin yes这句。(StrictModes为yes必需保证存放公钥的文件夹的拥有与登录用户名是相同的。)

  • 打开PUTTY,在终端登录Linux。将输出映射到本机:export DISPLAY=本机IP:0.0(0.0表示Xming 的display number为0,若是display number设置成其余值则需保持一致)

  • 在PUTTY中输入命令便可打开相应的程序,如firefox、gedit

附录

参考资料

  1. Linux系统的7个运行级别:http://blog.chinaunix.net/uid-22746363-id-383989.html
  2. Linux下查看和添加PATH环境变量:http://blog.sina.com.cn/s/blog_7dc29ca001017j6y.html
  3. SSH配置文件:http://www.cnblogs.com/phoenix/articles/115476.html
  4. Ubuntu为root账号开启SSH登陆: http://blog.csdn.net/lichangzai/article/details/39379153
相关文章
相关标签/搜索