`
jojo_java
  • 浏览: 96049 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Linux中的目录

    博客分类:
  • OS
阅读更多

目录

目录在文件类型上用d标识

用“/”分隔目录层

Linux操作系统都有且仅有一个起始目录,我们用一个单独的“/”来表示,称其为根目录

对每一个shell和操作环境,都有一个当前工作目录

[root@bogon home]# ls -ld test

drwxr-xr-x 2 root root 4096 Jun  9 05:02 test

.文件和..文件

在每一个目录下面都有一个.文件和一个..文件

.文件是对当前目录的一个硬链接

..文件是对上级目录的一个硬链接

[root@bogon test]# ll -a

total 16

drwxr-xr-x 2 root root 4096 Jun  9 05:02 .

drwxr-xr-x 4 root root 4096 Jun  9 05:04 ..

目录与权限

目录也是一种文件

目录上的读写执行权限与普通文件有所不同:

1)         读:用户可以读取目录内的文件

2)         写:单独使用没有作用,与执行权限链接可以在目录内添加与删除文件

3)         执行:用户可以进入目录,调用目录内的资料,修改可见文件的内容

强制位与冒险位

除了读写执行权限以外,ext2文件系统还支持强制位setuidsetgid)与冒险位sticky)的特表权限。

针对ugo分别有 set uidset gidsticky

强制位与冒险位添加在执行权限的位置上。如果该位置上已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。

set uidset gidugx位置上各采用一个ssticky使用一个t

set gid对目录的作用

默认情况下,用户建立的文件属于用户当前所在的组。

目录上设置了set gid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。

示例:在未设置gid的情况下

[root@bogon home]# mkdir test

[root@bogon home]# ls -ld test

drwxr-xr-x 2 root root 4096 Jun  9 06:05 test

[root@bogon home]# chgrp jojo test

[root@bogon home]# ls -ld test

drwxr-xr-x 2 root jojo 4096 Jun  9 06:05 test

[root@bogon home]# echo "hello world" > test/test1.txt

[root@bogon home]# ls -ld test/test1.txt

-rw-r--r-- 1 root root 12 Jun  9 06:08 test/test1.txt

示例:设置test目录的gid

[root@bogon home]# chmod g+s test

[root@bogon home]# ls -ld test

drwxr-sr-x 2 root jojo 4096 Jun  9 06:10 test

示例:在设置gid的目录下创建文件

[root@bogon test]# ls -l

total 8

-rw-r--r-- 1 root root 12 Jun  9 06:08 test1.txt

[root@bogon test]# mkdir test2.txt

[root@bogon test]# ll

total 16

-rw-r--r-- 1 root root   12 Jun  9 06:08 test1.txt

drwxr-sr-x 2 root jojo 4096 Jun  9 06:18 test2.txt

冒险位对目录的作用

默认情况下,如果一个目录上有wx权限,则任何人可以在此目录中建立与删除文件。

一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录拥有者与系统管理员可以删除文件

[root@bogon /]# ls -ld tmp

drwxrwxrwt 7 root root 4096 Jun  9 05:53 tmp

设置冒险位:

[root@bogon home]# ls -ld test

drwxr-sr-x 3 root jojo 4096 Jun  9 06:18 test

[root@bogon home]# chmod o+t test

[root@bogon home]# ls -ld test

drwxr-sr-t 3 root jojo 4096 Jun  9 06:18 test

强制位对文件的作用

在可执行文件上,用户可以添加set uidset gid

默认情况下,用户执行一个指令,会以该用户的身份来运行程序。(文件设置了uid,则任何人执行该文件都会以所属的user执行)

指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程

Set uid 示例:

[root@bogon home]# which ping

/bin/ping

[root@bogon home]# ls -l /bin/ping

-rwsr-xr-x 1 root root 35864 Mar 15  2007 /bin/ping

可以看到,ping指令是设置了uid的。切换到另外一个用户执行ping命令,发现是可以执行该命令的。然后我们去除掉pingset uid

[root@bogon home]# chmod u-s /bin/ping

[root@bogon home]# ls -l /bin/ping

-rwxr-xr-x 1 root root 35864 Mar 15  2007 /bin/ping

如果我们再切换到其他用户执行ping命令,就会报如下错误:

ping: icmp open socket: Operation not permitted

原来icmp包只能给root用户调用,因此只有设置了set uid之后,其他用户执行该执行就相当于root用户执行该指令。再次设置uid之后,其他用户也可以执行了:

[root@bogon home]# chmod u+s /bin/ping

[root@bogon home]# su jojo

[jojo@bogon home]$ ping 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.286 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.103 ms

另外还有很多其他指令是设置了uid的,例如passwd

[jojo@bogon home]$ which passwd

/usr/bin/passwd

[jojo@bogon home]$ ls -l /usr/bin/passwd

-rwsr-xr-x 1 root root 22984 Jan  7  2007 /usr/bin/passwd

设置强制位与冒险位

用户可以使用chmod指令来为文件设置强制位与冒险位。

l  set uidchmod u+x 文件名

l  set gidchmod g+x 文件名

l  stickychmod o+t 文件名

强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数前来指定

l  4 set uid

l  2 set gid

l  1 sticky

Ps

Set gid 可以在目录上设定,也可以在文件上设定

Set uid 只能在文件上设定

Sticky 只能在目录上设定

Umask(文件权限掩码)

每个用户建立文件时,此文件都会有默认权限,默认权限的值由环境中的umask值来确定。

用户可以自主改动umask,并在改动后的文件上得到体现。

一般用户的默认umask值为002,系统用户的默认umask022

[root@bogon home]# umask

0022

[root@bogon home]# su jojo

[jojo@bogon home]$ umask

0002

理想情况下,在Linux系统中创建文件或目录的默认权限如下:

文件:rw_rw_rw_

目录:rwxrwxrwx

[root@bogon home]# mkdir test

[root@bogon home]# ls -ld test

drwxr-xr-x 2 root root 4096 Jun 13 21:37 test

上面是用root用户建立一个test目录,但是我们看到他的权限是rwx_r-x_r-x,而不是rwxrwxrwx,这是为什么呢?

因为root用户的默认掩码为:022,文件的真实权限是:(理想权限-文件权限掩码)即:(7-07-27-2

修改用户的umask,并新建目录:

[root@bogon home]# umask 003

[root@bogon home]# mkdir test

[root@bogon home]# ls -ld test

drwxrwxr-- 2 root root 4096 Jun 13 21:55 test

其他用户修改umask,并创建目录:

[jojo@bogon ~]$ umask 000

[jojo@bogon ~]$ mkdir test

[jojo@bogon ~]$ ls -ld test

drwxrwxrwx 2 jojo jojo 4096 Jun 13 21:57 test

根目录下的目录

1)         /bin:存储常用用户指令

2)         /boot:存储核心、模块映像等启动文件

3)         /dev:存储设备文件

4)         /etc:存储系统、服务的配置目录与文件

5)         /home:存放个人主目录

6)         /lib:存放库文件,诸如核心模块、驱动

7)         /lost+found:存储fsck用的孤儿文件

8)         /mnt:系统加载文件系统时用的常用挂载点

9)         /opt:第三方工具使用的安装目录

10)     /proc:虚拟文件系统,包含系统通讯等资料(在内存中)

11)     /rootroot用户的主目录

12)     /sbin:存储系统管理用指令

13)     /tmp:临时文件的暂存点

14)     /usr:存放于用户直接相关的文件与目录

15)     /var:存储在系统运行中可能会更改的数据

 

分享到:
评论

相关推荐

    Linux中目录文件.sql

    一些有用的Linux目录。Linux根目录”/“下各个系统文件夹的含义和用途--/boot 该目录默认下存放的是Linux的启动文件和内核。

    linux 中目录讲解

    6. `/lib`:包含系统运行所需的共享库文件,这些库文件支持/bin和/sbin目录中的可执行文件。 7. `/sbin`:存放超级用户(root)使用的系统管理工具和命令。 8. `/tmp`:临时文件的存储区域,系统重启时通常会被...

    Linux目录结构 详解

    Linux目录结构 详解

    Linux目录解释 Linux目录解释

    Linux目录解释 Linux目录解释 Linux目录解释 Linux目录解释

    Linux的目录树

    Linux 目录树结构详解 Linux 操作系统的目录树结构是 Linux 文件系统的核心组成部分,了解 Linux 目录树结构对于 Linux 操作系统的使用和管理至关重要。下面将详细介绍 Linux 目录树结构的各个组成部分及其作用。 ...

    linux文件目录和命令.pdf

    7. Linux目录结构: 在Linux系统中,“/”是根目录,下一级目录包括诸如/bin、/boot、/dev、/etc、/home、/lib、/proc、/root、/tmp、/usr、/var等,各自承载着不同的功能和用途。例如,/bin目录存放标准的用户命令...

    Linux操作系统中的文件目录结构详解

    ### Linux操作系统中的文件目录结构详解 #### 一、概述 Linux作为一款强大的开源操作系统,其文件目录结构的设计具有高度的逻辑性和层次性。对于初学者来说,了解Linux的基本目录结构至关重要,这不仅能帮助用户更...

    linux目录实时监控

    本程序可实时监控linux下的一个目录,当目录中有新文件产生时本程序会进行简单的统计。另外把该程序写成服务chkpicd,把该程序放到/etc/init.d目录下即可,使用命令:service chkpic start/stop可控制服务开启/关闭。

    Linux 根目录爆满 解决命令方法.doc

    使用 du -h -x --max-depth=1 命令可以查看占用高的目录,对于占用高的目录中的内容可以适当删减腾出一些空间。从输出结果中可以看到 opt 目录占用过大,可以在 opt 中清理一些文件释放一些空间。 四、CentOS 7 ...

    linux c++ 获取目录下所有文件

    这是一个用于获取指定目录下所有文件的信息的C++代码, 是用于linux系统的

    Linux_根目录结构.pdf

    例如,如果需要安装某个新的软件包,通常会放在/usr目录下的某个子目录中。如果需要调整系统的某个参数,该参数的配置文件很可能位于/etc目录中。对于系统管理员来说,了解如何合理地组织和管理这些目录下的文件和...

    LINUX减小home扩大root根目录内存.docx

    然而,随着系统的使用,目录中的文件会不断增加,占用大量的磁盘空间,影响系统的性能。这时,我们需要对目录进行扩容和缩减,以释放磁盘空间,提高系统的性能。 title:Linux 根目录扩容 Linux 根目录是 Linux ...

    Linux文件与目录管理

    Linux 文件与目录管理是 Linux 系统中非常重要的一部分。文件和目录是计算机系统中存储和组织数据的基本单位。在 Linux 系统中,文件和目录是通过路径来定位和管理的。 Absolute Path 和 Relative Path ----------...

    linux操作系统实验文件和目录操作报告.pdf

    在 Linux 操作系统中,目录结构是树形结构,根目录是最高级别的目录,下面是子目录,子目录下面是孙目录,以此类推。目录的基本操作包括创建、删除、复制、移动和重命名等。 文件的基本操作包括创建、删除、复制、...

    linux 拷贝目录

    linux 下实现目录文件的拷贝 关键是拷贝目录函数 用的是递归

    深入理解linux内核中文第三版(带目录)

    6. **网络编程**:Linux内核中的网络协议栈,包括TCP/IP协议族的实现,网络数据包的接收和发送,以及套接字API的底层实现。 7. **系统调用**:内核提供了一套系统调用接口供用户空间程序使用,如open、read、write...

    linux目录结构图解

    linux目录结构图解,linux目录结构图解,linux目录结构图解

    linux目录文件夹含义

    linux系统各个目录的含义

    Linux各目录介绍最终版

    Linux目录结构遵循着统一的Filesystem Hierarchy Standard(FHS),对系统中的各目录和文件进行了标准化的规定。正确理解Linux目录的作用,有助于更好地使用Linux系统 Linux目录结构遵循着统一的Filesystem Hierarchy ...

    Linux安装和文件目录操作

    2. **熟悉Linux下的目录和文件命令**:学习并实践Linux系统中常用的文件和目录操作命令,包括但不限于`cd`(切换目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`pwd`(显示当前工作目录)、`find`(查找文件...

Global site tag (gtag.js) - Google Analytics