[Note] Linux学习笔记1-4 文件相关

news/2024/7/1 18:50:42

Note 1 Linux 和 Shell 简介

Linux系统

是多进程、多用户和交互式的计算环境。
Linux系统的运行级别从0-6共7个:

  • 0:停机,关闭系统

  • 1:单用户模式,类似win下的安全模式

  • 2:多用户模式,但是没有NFS支持

  • 3:完整的多用户模式,是标准的运行级别

  • 4:保留

  • 5:X Windows系统

  • 6:重新启动

Shell

是Linux系统的用户界面,提供了用户与内核进行交互的接口。它接受用户输入的命令,并把它们送到内核运行。
shell的命令可以分为内置命令和外部命令。内部命令是shell通过执行自己代码中对应部分来完成的。外部命令的代码则存放在一些二进制的可执行文件或者shell脚本中。
外部命令的搜索路径保存在一个shell变量:PATH 中。使用echo $PATH 可以打印查看。PATH保存在主目录的.profile或者.login中。
其他一些比较有用的环境变量如下:

  • HISTFILE:储存历史命令

  • HISTSIZE:历史命令列表的大小

  • HOME:当前用户的主目录

  • OLDPWD:前一个工作目录

  • PATH:bash寻找可执行文件的搜索路径

  • PS1:命令行的一级提示符

  • PS2:命令行的二级提示符

  • PWD:当前工作目录

  • SECONDS:当前shell开始后经过的时间,单位为秒

Note 2 Linux文件系统

文件分类

Linux中,文件是一个字节序列。
Linux文件可以分为:普通文件、目录文件、字符设备文件、块设备文件、符号链接文件、管道文件、socket文件,具体如下:

  • 普通文件:文本文件等

  • 目录文件:文件系统中一个目录所包含的目录项组成的文件

  • 设备文件:Linux把对设备的I/O作为对文件的读取/写入操作

  • 符号链接文件:提供了共享文件的一种方法

  • 管道文件:用于在进程之间传递数据

  • socket文件:套接字文件

标准目录

Linux有一些标准的目录和文件

  • /sbin:用来存放系统管理员的系统管理程序

  • /home:存放用户的主目录,比如,建立一个名为xiaoming的用户,那么在/home目录下就有一个对应的/home/xiaoming路径,作为用户的主目录

  • /lib:存放系统动态链接库

  • /mnt:用来临时装载文件系统

  • /opt:存放附加软件包

  • /proc:存放进程和系统的信息

  • /root:root用户的主目录

  • /tmp:存放不同程序执行时产生的临时文件

  • /usr:是linux最大的目录之一,存放可以在不同主机间共享的只读数据

  • /lost+found:存放所有和其他目录没有关联的文件

  • /var:存放在系统运行过程中可能会不断变化的数据,比如,/var/log存放系统日志

Note 3 Linux文件安全

权限机制

Linux属于多用户操作系统,使用基于权限的文件保护机制
文件的所有者可以设置特定的访问权限来限制哪些用户可以对某文件进行哪些操作

文件的权限设置针对三个对象:所有者、组、其他人
用户可以属于一个组,系统中所有用户组的信息记录在/etc/group中
root用户可以访问所有文件

Linux中文件有三种访问权限:

  1. r:read,允许读某个文件

  2. w:write,允许写、修改和删除某个文件

  3. x:execute,允许执行某个文件

对于目录文件,含义稍微有所不同:

  1. r:允许用户列出目录内容,如ls

  2. w:允许用户在目录下创建、删除文件

  3. x:允许用户搜索这个目录,如果没有x权限,则不能用ls-l和cd

使用ls -l命令时,第一个字段的10位符号的含义:

  • 第1位:表式文件类型,-为普通文件、d为目录文件、b为块设备文件、c为字符设备文件、l为链接文件、p为管道文件、s为socket文件

  • 2-4位,5-7位,8-10位分别表示该文件对于所有者、组、其他人的权限,三位按顺序分别表示rwx三种权限

例如:drwxr-x--- 表示一个目录文件,所有者有rwx三种权限,用户组有r和x权限,而其他人没有任何权限

使用chmod可以修改文件的访问权限,具体的命令说明请参考man chmod

当创建一个文件时,文件的默认权限由umask决定
在终端输入umask,会输出一个4位的8进制数字,第一个数字表示SUID、SGID、Sticky,暂时不考虑它。后三位则对应三种用户分类的权限。
当创建一个文件时,新创建的文件的访问特权都将被设为1,除了在umask参数中为1的对应位(以二进制来看)

关于SUID、SGID、Sticky

通过有效用户标识位,我们可以允许普通用户以文件所有者或者用户组的权限运行某个可执行文件
应用场景:文件/etc/passwd,只有超级用户才有权限访问该文件,但是我们又希望其他用户能够执行passwd命令来修改其自己的密码,而又不改变其他用户的信息。

每个linux文件都有一个附加的保护位SUID,如果堆一个可执行文件设置乐该位,那么该可执行文件可以以这个文件的拥有者的权限运行

可以通过chmod 4xxxx filelist 或者chmod u+s filelist两种方式设置SUID
当文件的SUID被设为1时,如果所有者对该文件有执行权限,那么执行位被设为‘s’,否则被设为‘S’
比如:
-rwx--x--- 设置SUID之后为 -rws--x---
-rw---x--- 设置SUID之后为 -rwS--x---

SGID和SUID很相似,不过被设为s/S的位是组的可执行位。
命令为chmod 2xxx filelist 或者 chmod g+s filelist

Sticky位
考虑这样一种情况,如果用户拥有某个目录的写权限,用户可能删除这个目录下的文件,而我们并不希望这些文件被删除
通过设置sticky位,可以保证只有文件拥有者可以删除或重命名某个目录下的文件,即使其他用户有写权限也不行

命令为 chmod 1xxx filelist 或者 chmod +t filelist
如果sticky被设为1,那么如果其他用户对目录有可执行权限,则权限为被设为‘t’,否则为‘T’
比如:-rwxrw---t -rwxrw---T

Note 4 Linux文件链接

硬链接

是一个指向文件节点的指针,因此硬链接和原文件的inode编号是相同的
当创建一个硬链接后,该文件节点的链接计数+1,此时,删除原文件或硬链接,文件并不会被删除,只是链接计数-1,只有在链接计数为0时,该节点才会被删除。

特点:

  1. 不可跨越文件系统

  2. 超级用户才能创建目录硬链接

  3. 占用空间极少

软链接(符号链接)

创建软链接,是创建一个新的link类型的文件,将这个新文件登记在用户共享目录项里,这个新文件包含被连接文件的路径
当用户通过软链接访问文件时,操作系统把link文件的文件内容作为路径名去访问真正的文件

特点:

  1. 可以跨越文件系统

  2. 如果被链接的文件被移动,则符号链接失效

  3. 占用空间多于硬链接,需要存储inode


http://www.niftyadmin.cn/n/3013969.html

相关文章

HDU2502 月之数(解法三)

问题链接:HDU2502 月之数。 问题简述:参见上述链接。 问题分析:这次用递推函数来解该问题。 首位为1,n二进制数的个数就是n-1位的0和1的组合数,即pow(2,n-1)个。 定义p函数如下: p(1) 1 p(i) p(i-1) * 2&…

高手传授十八般CSS技巧

一、使用css缩写  使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则请参看《常用css缩写语法总结》,这里就不展开描述。 二、明确定义单位,除非值为0  忘记定义尺寸的单位是CSS新手普遍的错误。在HTML中你可以只写w…

Redis安装

准备安装包 /opt/redis-3.0.6.tar.gz解压安装 安装依赖: yum install tcl编译安装: cd /opt tar zxvf redis-3.0.6.tar.gz cd redis-3.0.6 make PREFIX/opt/yliyun/redis install创建日志目录: mkdir -pv /data/yliyun/logs/redisRedis配置&a…

Java 学习笔记(实用篇) 获取当前类的与当前工程的路径

我们在一个类里如何获取到当前类的路径,又如何获取当前工程的路径?话不多说,上代码,自己看 1 package com.chavez.demo; 2 3 public class SimpleDemo { 4 public static void main(String[] args){ 5 String xmlpat…

集中管理系统--puppet

puppet 是一种Linux、Unix、Windows平台的集中配置管理系统,运维人员或者系统管理员可以通过使用 puppet 来处理所有的管理细节,是自动化运维的工具。puppet是为了让系统管理员可以相互交流和共享成熟的工具,避免重复的劳动.通过以下两个特性来实现这一目标:1.提供一…

工业RFID标签材料介绍,RFID标签有哪些制造工艺?

工业RFID标签材料和制造工艺都跟所应用的场景有很大的关系,根据应用环境的不同,对标签和制造工艺都有不同的要求,下面我们就着重为大家介绍一下,不同场景下对工业RFID标签材料和制造工艺的要求有哪些。 工业RFID标签材料介绍 随着…

DIV+CSS 高手也得看的15个CSS常识

1、不要使用过小的图片做背景平铺。这就是为何很多人都不用 1px 的原因,这才知晓。宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*20040, 000 次,占用资源。 2、无边框。推荐的写法是 border:none;,哈哈,我一直…

[原]jQuery ListBox Plugin(ListBox插件)

转载请注明作者(think8848)和出处(http://think8848.cnblogs.com)。未经作者同意,请勿擅自修改本文内容。 这两天项目中要用到类似于ListBox的功能了,本以为有很多jQuery插件,没有想到的是,居然没有搜到好用的,咋办呢&…