Linux目录,文件,权限管理

本文详细介绍了Linux系统中关于目录的操作,包括`.`、`..`、`/`等路径符号的含义,以及`cd`、`pwd`、`mkdir`、`rmdir`等命令的使用。此外,还讲解了文件和目录的管理,如`ls`、`cp`、`rm`、`mv`等,并展示了文件内容查看的各种方法。重点讲述了Linux的权限操作,包括预设权限、隐藏权限、文件和目录权限的修改,以及特殊权限如setuid、setgid和stick bit的设置。同时,文章还涵盖了Linux文件种类、目录结构(FHS)和文件时间戳等内容。
摘要由CSDN通过智能技术生成

目录的相关操作

.   代表当前目录

..  代表上层目录

/   根目录

-     代表前一个工作目录

~   代表当前使用者家目录

~account   代表account用户的家目录 

cd           变换目录(changedirectory)

pwd        显示当前目录(printworkingdirectory)

mkdir     建立新目录(makedirectory)

rmdir     删除目录(removedirectory)

 

文件和目录管理

ls     查看文件和目录(list)

-           -a    全部文件

-           -h    humanreadable

-           -R    递归

-           -l     长列表

 

 

cp    复制文件和目录(copy)

-           -f     force

-           -p    复制属性

-           -r     递归

 

rm   删除文件和目录(remove)

-           -f     force

-           -i     询问

-           -r     递归

-            

mv   移动文件和目录(move)

-           -f     force

-           -i     询问

 

查看文件内容

cat  

-           -n    显示行号

tac   反向显示

 

more       可翻页显示,仅下翻

less         可翻页显示,可上下翻

-           /      搜索字符串

-           n     向下搜索

-           N     向上搜索

-           q     退出

 

head       显示头几行

-           -n

 

tail         显示最后几行

-           -n

 

od          显示非文本文件

-           -t     a      预设字符

c      ascii输出

d     十进制输出

f      浮点输出

o     八进制输出

x     十六进制输出

 

文件时间

mtime     (modification time)文件内容改变时,会更新这个时间

ctime      (status time)文件属性改变时,会更新这个时间

atime      (access time)文件被读取时,会更新这个时间

 

touch

-a    修改atime

-c    仅修改时间,不建立文件

-d    接日期

-m   修改mtime

-t     接时间


Linux权限操作 


文件和目录的预设权限和隐藏权限

文件预设权限      umask

表示去掉某个权限

 

文件隐藏属性

chattr     (change attribute)

+     增加属性

-           去掉属性

=     设定等于属性

a      文件只能增加数据,不能删除

i      文件不能删除、改名、写入

 

lsattr      (listattribute)

-a    包括隐藏文件

-R    递归


Linux文件权限

每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。  利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为  准。第一个字段由10个字符组成,如下:
        -rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外的用户的权限,o权限   
2-10位的权限总和有时称为a权限

以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。


文件权限修改----chmod

1. 用数字表示法修改权限

    所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,

    然后把权限相加,如下   

 原始权限  转换为数字  数字表示法
 rwxrwxr-x  (421)(421)(401)  775
 rwxr-xr-x  (421)(401)(401)  755

    修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他  人只有读权限
         chmod 664 test
    2. 用文本表示法修改权限
    文本表示法用4个字母表示不同的用户:
    u:所有者
    g:组成员
    o:其他成员
    a:所有人
    权限仍用r、w和x表示
    和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上 增加或减少权限,如下:
    =:重新制定权限
    -:对目前的设置减少权限
    +:对目前的设置增加权限
    例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为  执行权限,执行以下命令
    chmod u+x,g-x,o=x test  

    注意:逗号前后不能有空格


目录权限

    目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:
    r:可列出目录中的内容
    w:可在目录中创建、删除和修改文件
    x:可以使用cd命令切换到此目录
    -:没有任何此目录的访问权限
    注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件  的权限设置为任何人都可以读写

     chmod 666 /test/*


特殊权限

linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit

1、setuid、setgid

先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限

[root@MyLinux ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root  1549 08-19 13:54 /etc/passwd
-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd

众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可实际上每个用户都可以通过/usr/bin/passwd命令去修改这个文件,于是这里就涉及了linux里的特殊权限setuid,正如-rwsr-xr-x中的s

setuid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,setgid同理指”组“

作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以setuid权限后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了

2、stick bit (粘贴位)

再看个实例,查看你的/tmp目录的权限

[root@MyLinux ~]# ls -dl /tmp
drwxrwxrwt 6 root root 4096 08-22 11:37 /tmp

 tmp目录是所有用户共有的临时文件夹,所有用户都拥有读写权限,这就必然出现一个问题,A用户在/tmp里创建了文件a.file,此时B用户看了不爽,在/tmp里把它给删了(因为拥有读写权限),那肯定是不行的。实际上是不会发生这种情况,因为有特殊权限stick bit(粘贴位)权限,正如drwxrwxrwt中的最后一个t

stick bit (粘贴位)就是:除非目录的属主和root用户有权限删除它,除此之外其它用户不能删除和修改这个目录

也就是说,在/tmp目录中,只有文件的拥有者和root才能对其进行修改和删除,其他用户则不行,避免了上面所说的问题产生。用途一般是把一个文件夹的的权限都打开,然后来共享文件,象/tmp目录一样。

3、如何设置以上特殊权限

         setuid:chmod u+s xxx

setgid: chmod g+s xxx

stick bit : chmod o+t xxx

或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:

suid   guid    stick bit

  1        1          1

所以:suid的二进制串为:100,换算十进制为:4

guid的二进制串为:010,换算:2

stick bit 二进制串:001,换算:1

于是也可以这样设:setuid:chmod 4755 xxx

setgid:chmod 2755 xxx

stick bit:chmod 1755 xxx

最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限. 


指定文件的默认权限掩码-----umask

权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立 时的默认权限。

一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置 为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。

可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。

用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。


Linux文件种类

正规文件:第一个属性为 “-”

纯文本文件

类似windows中的txt文件,但是linux的文本更广泛

二进制文件

类似windows中的exe可执行文件

数据格式文件

数据文件,用文本方式读取可能是乱码,例如log文件,可以通过last等指令读取

目录,第一属性为“d”

 连接文件,第一属性为“l”

类似windows下快捷方式,但又不全相同,具体细节以后讨论

 设备文件

通常在/dev目录下,分两类

区块设备文件,第一属性为“b”

一般为存储设备,例如:硬盘之类的

字符设备文件,第一属性为“c”

一般是串口设备,如键盘或者鼠标等

数据接口文件,第一属性为“s”

通常用作socket编程时的,数据传输

命名管道文件,第一属性为“p”

常用于多进程间的读写操作


Linux文件扩展名

严格来说linux里面是没有所谓扩展名的,linux不像windows一样严格以后缀来识别文件类型。但是有些文件为了让使用者了解它的作用所以也会带扩展名。

例子:

*.sh        shell        脚本文件

*.z *.tar  *.tar.gz  *.zip *.tgz              压缩文件

*.html *.php              网页文件

*.pl         perl脚本


Linux目录结构(FHS)

/:Linux文件系统根目录/bin:binary的所写,存放用户的可执行程序,例如ls,cp和mv等,也包含其它的shell,如bash
  • /boot:系统启动时需要的文件,如vmlinuz和initrd.img
  • /dev:接口设备文件目录,如hda表示第一块IDE硬盘
  • /etc:有关系统设置与管理的文件,如passwd。保存在/etc目录中的文件一般都不是二进制文件
  • /etc/X11:X Window系统的设置目录
  • /home:用户的主目录
  • /lib:仅包含执行/bin和/sbin目录中的二进制文件时所需要的共享类库
  • /mnt:设备文件系统的挂载点,如光盘的默认挂载点是/mnt/cdrom
  • /opt:通常提供一个空间,供较大型且固定的应用程序软件保存文件使用,这样可以避免将文件分
  •               散到整个文件系统
  • /proc:目前系统内核与程序执行的信息,它和ps可以看到的内容相同
  • /root:root管理员主目录,其它用户的主目录都位于/home目录中
  • /sbin:system binary的缩写,存放的是系统启动时需要执行的程序,如swapon
  • /tmp:存放临时文件的目录
  • /usr:存放用户使用的系统命令,以及应用程序等信息/usr/bin:存放用户可执行的程序,如mdir/usr/inculde:保存供C语言加载的头文件/usr/include/X11:保存供X Window程序加载的头文件 /usr/lib:类库/usr/lib/X11:X Window类库 /usr/local:提供自行安装的应用程序位置/usr/sbin:存放非经常性使用的程序,如showmount/usr/src:保存程序的源文件/usr/X11R6/bin:存放X Window系统的执行程序
  • /var:Variable的缩写,具有可变性质的相关程序目录,如log、spool等
初学者可以使用ls或ll指令查看各个文件夹,通过查看各个文件夹下文件的颜色来了解文件的含义。
文件颜色的含义:蓝色为文件夹;绿色是可执行文件;浅蓝色是链接文件;红框文件是加了SUID位,任意限权;

红色为压缩文件;褐色为设备文件。


目录结构详解

目录

描述

/

第一层次结构的根、整个文件系统层次结构的根目录

/bin/

需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:catlscp,和/usr/bin类似。

/boot/

引导程序文件,例如:kernelinitrd;时常是一个单独的分区[6]

/dev/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值