1.文件基础
1.1.文件信息简介
使用ls -l
指令查看当前目录下文件的详细属性
1.2.文件
- 文件构成
- 文件 = 内容数据 + 属性数据
- 文件树
- Linux文件系统是一个多叉树结构
- 隐藏文件
- 文件名前带
.
的文件是隐藏文件,使用ls -a
可以查看隐藏文件
- 文件类型
- 在Linux系统下,文件后缀没有实质意义,操作系统并不认识文件后缀,但是某些软件需要识别文件后缀。使用
ls -l
指令查看文件类型。
文件类型标识符
d
:目录-
:普通文件p
:管道文件b
:块设备—>磁盘设备c
:字符设备—>键盘或显示器
- 文件思想
- 在Linux系统下,一切皆是文件。可执行程序不过就是一个文件,安装包是一个文件,一个软件也是一个文件,在Linux系统下能够设计的内容都是文件,所以文件操作的横跨面很广,文件操作符的运用面很广。
2.权限
权限: 权限是由用户和文件/目录属性共同决定的一个文件性质
2.1.用户
- Linux下用户有root用户(超级用户)和普通用户两种,两种用户具有不同的权限,切换用户的本质其实就是切换权限。
- 使用
su XXX
语句切换用户- 使用
su -
语句切换到root用户- 切换到一个用户之后,键盘敲击
ctrl+D
可以回到上一用户
- root用户具有Linux系统的最高权限,凌驾于一切普通用户之上,被信任的用户可以使用
sudo
指令临时提升自己的权限(相当于让自己临时具有root用户的权限) - 每个用户都有自己的家目录(工作目录)
- 使用
cd ~
语句转到自己的家目录- 普通用户家目录在
/home/XXX
- root用户家目录在
/root
[mrc@hecs-75541 4-10]$ pwd
/home/mrc/code/4-10
[mrc@hecs-75541 4-10]$ cd ~
[mrc@hecs-75541 ~]$ pwd
/home/mrc
2.2.创建/删除用户
- 创建用户
sudo useradd XXX
创建新用户XXXsudo passwd XXX
为XXX设置密码
- 删除用户
sudo userdel XXX
删除XXX用户sudo userdel -r XXX
删除用户同时删除用户工作目录
2.3.文件/目录的RWX权限
- 一个文件/目录默认拥有RWX权限
- 文件的RWX权限
- r:读权限,能否读文件
- w:写权限,能否修改文件
- x:执行权限,能否执行文件,可执行文件拥有这个属性才有意义
- 目录的RWX权限
- r:读权限,如果没有目录的读权限,就不能进入该目录(不能cd进入目录)
- w:写权限,没有该权限,不能对目录下的文件/目录进行修改,也不能在该目录下新建/删除文件和目录
- x:执行权限,目录是不能运行的,赋予x权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。
2.4.文件/目录的对应身份
- 使用
ls -l
指令我们可以看到,文件/目录除了rwx权限之外,还有两个用户名,这两个用户名代表该文件/目录的拥有者own
和所属组grp
,任何用户,只要不是该文件/目录的own或者grp
,那么就是该目录/文件的其他人other
- 每个文件,对于
own,rgp和other
都有RWX3个权限,每个身份的人的权限不同
如下图,以文件t1.txt的权限为例
- 拥有者权限为rw,即文件拥有者可以阅读和修改该文件
- 所属组权限为rw,该文件所属组成员也可以阅读和修改该文件
- 其他人权限为r,即除了该文件拥有者和所属组成员之外,所有其他用户都只能读该文件,没有修改该文件的权限
2.5.修改文件/目录权限
2.5.1.改权限
使用chmod
指令可以修改文件权限
u
(拥有者),g
(所属组),o
(其他人),a
(所有人)+
(增加权限),-
(取消权限)
[mrc@hecs-75541 exp]$ ll
-rw-rw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod u+x t1.txt //为拥有者增加x权限
[mrc@hecs-75541 exp]$ ll
-rwxrw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod g-rw t1.txt //为所属组取消rw权限
[mrc@hecs-75541 exp]$ ll
-rwx------ 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod o+rwx t1.txt //为其他人增加rwx权限
[mrc@hecs-75541 exp]$ ll
-rwx—rwx 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod uo-x t1.txt //为拥有者和其他人权限x权限
[mrc@hecs-75541 exp]$ ll
-rw----rw- 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod a+x t1.txt //为所有人增加x权限
[mrc@hecs-75541 exp]$ ll
-rwx–xrwx 1 mrc mrc 0 Apr 10 21:26 t1.txt
使用8进制修改权限
- 每个身份对应的权限有3种,每种权限只有 有和没有 两种状态,所以可以使用8进制数表示权限状态
- 使用
chmod XXX(八进制数字)filename
修改文件权限
---
0--x
1-w-
2-wx
3r--
4r-x
5rw-
6rwx
7
[mrc@hecs-75541 exp]$ chmod 000 t1.txt
[mrc@hecs-75541 exp]$ ll
---------- 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod 001 t1.txt
[mrc@hecs-75541 exp]$ ll
---------x 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod 010 t1.txt
[mrc@hecs-75541 exp]$ ll
------x— 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod 760 t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw---- 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ chmod 765 t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 mrc mrc 0 Apr 10 21:26 t1.txt
2.5.2.改用户
除了修改文件权限,还可以使用root权限修改文件的拥有者和所属组
sudo chown username filename
修改文件拥有者sudo chgrp username filename
修改文件所属组
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 mrc mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ sudo chown root t1.txt
[sudo] password for mrc:
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 root mrc 0 Apr 10 21:26 t1.txt[mrc@hecs-75541 exp]$ sudo chgrp root t1.txt
[mrc@hecs-75541 exp]$ ll
-rwxrw-r-x 1 root root 0 Apr 10 21:26 t1.txt
2.6.粘滞位
- 用户能否删除某个文件,并不取决与用户是否拥有该文件的RWX权限,而取决于用户是否拥有该文件所在目录的W权限。
- 当我们使用一个公共目录时,使用粘滞位
t
可以使每个用户只能在该目录下删除和修改自己创建的文件和目录,而不能修改别人的。
标签:文件,权限,75541,hecs,exp,txt,mrc From: https://blog.csdn.net/weixin_69356744/article/details/137615688[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwx 2 mrc mrc 4096 Apr 10 22:52 exp //所有人都拥有该目录的w权限
[mrc@hecs-75541 4-10]$ tree . //目录下有3个文件
.
└── exp
├── t1.txt
├── t2.txt
└── t3.txt1 directory, 3 files
[mrc@hecs-75541 4-10]$ cd exp
[mrc@hecs-75541 exp]$ ll
total 0
-rwxrw-r-x 1 root root 0 Apr 10 21:26 t1.txt //t1.txt文件是属于root用户的
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt[mrc@hecs-75541 exp]$ rm -f t1.txt //但是我们却可以使用其他的用户删除它
[mrc@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt//这是很不合理的,所以我们需要使用粘滞位
//先将t2.txt的拥有者更改为root
[mrc@hecs-75541 exp]$ sudo chown root t2.txt
[mrc@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 root mrc 0 Apr 10 21:26 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt//为该目录设置粘滞位
[mrc@hecs-75541 exp]$ cd …
[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwx 2 mrc mrc 4096 Apr 10 22:54 exp
[mrc@hecs-75541 4-10]$ chmod +t exp
[mrc@hecs-75541 4-10]$ ll
total 4
drwxrwxrwt 2 mrc mrc 4096 Apr 10 22:54 exp//此时就不能再删除其他用户的文件了(当然root用户来了想删谁就删谁)
//使用测试用户testuser进入该目录
//提示权限不允许删除t2.txt
[testuser@hecs-75541 exp]$ ll
total 0
-rw-rw-r-- 1 root mrc 0 Apr 10 22:59 t2.txt
-rw-rw-r-- 1 mrc mrc 0 Apr 10 21:26 t3.txt
[testuser@hecs-75541 exp]$ rm t2.txt
rm: remove write-protected regular empty file ‘t2.txt’? y
rm: cannot remove ‘t2.txt’: Operation not permitted