linux的文件和目录

本文深入讲解Linux系统中的文件和目录权限设置,包括chmod命令的使用、特殊权限如setuid和sticky位的作用,以及如何通过硬链接和软链接管理文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

chmod ;修改目录权限

eg:chmod o-t /tmp

touch:创建新文件

rm -rf:删除文件

set gid 对目录的作用

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

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

rm -rf test  //删除之前的test目录

mkdir test // 在当前目录创建一个test目录

ls -ld test //查看这个目录的长格式明细

 

chgrp xiaowang test //更改test目录文件的所属组为xiaowang

ls -ld test //查看变换之后的结构发现目录文件的所属组变为xiaowang

cd test  //切换到test目录

touch test.txt  //在该目录先创建一个文件

ls -l  //查看该文件的长格式明细,发现该文件的所属组并非xiaowang,而是root

这一例子说明了默认情况下,root用户建立的文件属于用户root当前所在的组

 

mkdir test1

ls -ld test1

chmod 745 test1

ls -ld test1

这个例子用来说明演示小写s和大写S

 

 

冒险位对目录作用

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

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

强制位对目录的作用

1:在可执行文件上,用户可以添加set uid和set gid。

2:默认情况下,用户执行一个指令,会以该用户的身份来运行进程。

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

 

设置强制位和冒险位

方法一:用户可以用chmod指令来为文件设置强制位和冒险位

 set uid:  chmod u+s 文件名          

 set gid:  chmod g+s 文件名

sticky :    chmod o+t 文件名

方法二:

  4(set uid)    只能在文件上设定,不能再目录上设定

  2(set gid)   都可以

  1(sticky)     只能在目录上设定,不能再文件上设定

chmod 4777  test.txt

设置文件权限

 

 

 硬链接和软链接

例:给目录建立软链接,In-s

cd /home   //切换到home目录

ls  //查看home目录下的文件

 

touch test.txt  //在home目录下新建一个test.txt的文件

cd~   //切换到主目录

 

In/home/test.txt  tom.txt   //给home目录下的test.txt文件创建一个硬链接,这个链接此时在主目录下

ls  //查看此时主目录下的文件,会发现有一个tom.txt的标示出现

ls -l  // 以长形式查看主目录下的文件会出现tom.txt的详细信息

 

echo "Hello World" > /home/test.txt  //往test.txt文件中写入Hello World

cat /home/test.txt  //查看该文件里面的内容

Hello World

ls

 

cat tom.txt   //直接查看这个硬链接

Hello World   //得到的效果和直接查看原文件形式一致

 

rm -f /home/test.txt  //强制删除这个文件

ls /home

              //此时发现该目录下会没有上述文件

cat tom.txt

Hello World  //此时这个硬链接里面的内容依然存在

 

从这个例子里面我们可以看出,硬链接的作用相当于原文件的一个备份,防止你误删除原文件

硬链接是不可以给目录做链接的

 

下面再来看看软链接的用法

 

touch /home/test.txt  //在主目录下创建一个文件

echo “hello”  >/home/test.txt   //将hello写入这个文件

cat /home/test.txt //对该文件的内容加以查看

ln -s /home/test.txt  jack.txt  //给该文件建立一个软连接

ls -l  //以长格式查看主目录下的文件

 

cat jack.txt  //在主目录下直接查看这个文件

hello

rm -f /home.test.txt  //强制删除已经建立的文件

ls /home/  //查看home目录下的内容

cat Jack.txt

//发现这个时候没有hello

即,软链接相当于快捷方式

 

ls

ls /home

 

ln /home/jack/  

ln: /home/jack/: hard link not allowed for directory  //不允许给目录创建硬链接

ln -s /home/jack/ /jack1  //给home目录下的jack目录创建一个名为jack1的软链接

ls -l

cd /

ls

cd jack1   //切换到jack1这个目录

ls

touch jack.txt /home/jack/

ls

jack.txt

允许给目录创建软链接

 

 

所属用户

每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限

root用户可以用chown来改变文件的拥有者

chown xiaowang install.log

chown: 'xiaowang' invalid user  //

useradd xiaowang  //创建一个用户

chown xiaowang install.log  //将该文件的拥有者更改为xiaowang

 

所属组

每一个文件都只有一个所属组

root用户可以用chown来改变文件的所属组

 

文件名

文件名的字符不超过256个

第一个字符为dot的文件是隐藏文件

 

目录

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

用/分隔目录层

linux操作系统有且只有一个根目录

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

 

 .文件和..文件

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

..文件时对上级目录的一个硬链接(当前目录的上一层目录)

pwd  //查看当前目录

/root

cd .  //切换到当前目录

pwd

/root

cd .. //切换到当前目录的上一级目录

/   //根目录

目录权限

目录也是一种文件

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

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

写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件

执行:用户可以进入目录

 

执行权限影响着用户是否能进入某一目录

ls

ls -ld test //查看test这个目录的长格式形式 文件类型 文件权限 所属用户 所属组 修改时间 文件名

chmod 777 test  //修改文件权限

ls -ld test  //修改完成以后再来查看文件权限比较两者不同

 

su - jack  //将当前用户切换到jack用户

cd /test  //将当前目录切换到test目录

ls  //查看目录里的内容

touch test.txt //新建一个文件

ls

 

cd..  //切换当前目录到当前目录的上一级目录

su -  //切换到主用户

 

chmod 775 test  //再次修改文件目录权限

su - jack //修改完以后再切换到jack用户,原因在于只有root用户才能修改文件权限

cd /切换到根目录

ls  ld test  //查看长格式文件

 

cd /test  //切换到test目录

ls

touch test1.txt  //在test目录下创建一个文件 能否创建呢?这个要与之间文件权限的修改相结合

 

 

强制位与冒险位

除了读写执行权限以外,ext2文件系统还支持强制位(setuid和setgid)与冒险位(sticky)的特别权限

针对u,g,o,分别有set uid,set gid,以及sticky

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

set uid与setgid 在u和g的x位置上各采用一个s,sticky使用给一个t

 

 umask

每个用户建立文件时,此文件都会有默认权限

默认权限的值由环境中的umask值来确定

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

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

一般文件的权限是rw-rw-rw-

一般目录的权限是rwx-rwx-rwx

 

 根目录下的目录

/bin:存放常用用户指令

/boot:存放核心、模块映像等启动用文件

/dev:存放设备文件

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

/home :存放个人主目录

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

/lost+found:存放fsck用的孤儿文件

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

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

/proc:虚拟文件系统,包含系统讯息等资料

/root:root用户的主目录

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

/tmp:临时文件的暂存点

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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值