文件权限
文件的权限主要针对三类对象进行定义
owner 属主, u
group 属组, g
other 其他, o
注意:
用户的最终权限,是从左向右进行顺序匹配,即,所有者,所属组,其他人,一旦匹配权限立即生效,不再向右查看其权限。
r和w权限对root 用户无效。
只要所有者,所属组或other三者之一有x权限,root就可以执行。
对文件的权限:
r 可使用文件查看类工具,比如:cat,可以获取其内容
w 可修改其内容,文件的是否被删除和文件的权限无关
x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)
文件权限常见组合
--- 0
r 4
r-x 5
rw 6
rwx 7
对目录的权限:
r 可以使用ls查看此目录中文件名列表,但无法看到文件的属性meta信息,包括inode号,不能查看文件的
内容
w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
x 可以cd进入此目录,可以使用ls -l file或stat file 查看此目录中指定文件的元数据,当预先知
道文件名称时,也可以查看文件的内容,属于目录的可访问的最小权限
X 分配给目录或有部分x权限的文件的x权限,对无任意x权限的文件则不会分配x权限
目录权限常见组合
- 不能访问目录
r-x 只读目录
rwx 可读也可写目录
Linux中的目录和文件的权限区别?分别说明读,写和执行权限的区别
1、基本权限三种
(1)r (read) 读
针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能。
针对文件,有读(r)权限就代表能对此文件有阅读功能,可以通过cat等命令查看文件内容。
(2)w (write) 写
针对目录,有写(w)权限就代表着在此目录下创建文件和目录,可以通过touch,mkdir等命令创建文件和目录,另外还可以删除此目录下的文件。
针对文件,有写(w)权限就代表着对此文件可以写入新的内容和修改文件内容。
(3)x (execute) 执行
针对目录,有执行(x)权限就代表能进入此目录,利用cd等命令进入此目录
针对文件,有执行(x)权限就代表可以执行此文件。
练习:
- 当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?
答:无法进入目录。
[root@rocky-8 test]# chmod 730 test1
[root@rocky-8 test]# ll
drwx-wx--- 2 root root 6 9月 30 22:56 test1
[root@rocky-8 test]# su lixuan
[lixuan@rocky-8 test]$ cd test1/
bash: cd: test1/: 权限不够
- 当用户mongodb对/testdir 目录无读权限时,意味着无法做哪些操作?
答:无法列出文件件的文件,可以新建文件,可以删除文件,不能执行cp,mv等命名。
[root@rocky-8 test]# ll
总用量 0
drwxrwx-wx 2 root root 6 9月 30 22:56 test1
[root@rocky-8 test]#
[root@rocky-8 test]# su lixuan
[lixuan@rocky-8 test]$ cd test1/
[lixuan@rocky-8 test1]$ ll
ls: 无法打开目录'.': 权限不够
[lixuan@rocky-8 test1]$ touch 1.txt
[lixuan@rocky-8 test1]$ ll
ls: 无法打开目录'.': 权限不够
[lixuan@rocky-8 test1]$ cp /root/test/test1/1.txt /root/1.txt.bak
cp: 无法创建普通文件'/root/1.txt.bak': 权限不够
[lixuan@rocky-8 test1]$ rm -f 1.txt
[lixuan@rocky-8 test1]$
#再开一个root窗口
[root@rocky-8 ~]# cd test/test1/
#验证是否没有r权限的普通账号新建的文件是否存在。
[root@rocky-8 test1]# ll
总用量 0
-rw-rw-r-- 1 lixuan lixuan 0 9月 30 23:05 1.txt
#验证是否没有r权限的普通账号能否删除文件。
[root@rocky-8 test1]# ll
总用量 0
- 当用户redis 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除?
答:不能修改和删除。
[root@rocky-8 test1]# echo hellword >file1.txt
[root@rocky-8 test1]# ll
总用量 4
-rw-r--r-- 1 root root 9 9月 30 23:16 file1.txt
[root@rocky-8 test1]# cat file1.txt
hellword
[root@rocky-8 test1]# chmod 664 file1.txt
[root@rocky-8 test1]# ll
总用量 4
-rw-rw-r-- 1 root root 9 9月 30 23:16 file1.txt
#切换普通账号
[lixuan@rocky-8 test1]$ echo lixuan >>file1.txt
bash: file1.txt: 权限不够
[lixuan@rocky-8 test1]$ vim file1.txt
[已修改但尚未保存]
请按 ENTER 或其它命令继续
[lixuan@rocky-8 test1]$ cat file1.txt
hellword
[lixuan@rocky-8 test1]$ rm -f file1.txt
rm: 无法删除'file1.txt': 权限不够
[lixuan@rocky-8 test1]$
- 当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?
答:不能写入,可以删除,并且可以创建文件和文件夹。
[root@rocky-8 test]# chmod 773 test1/
drwxrwx-wx 2 root root 23 9月 30 23:16 test1
[root@rocky-8 test1]# chmod 664 file1.txt
[root@rocky-8 test1]# ll
总用量 4
-rw-rw-r-- 1 root root 13 9月 30 23:27 file1.txt
[root@rocky-8 test1]# cat file1.txt
[root@rocky-8 test1]# echo hellword >file1.txt
[root@rocky-8 test1]# cat file1.txt
hellword
[lixuan@rocky-8 test1]$ echo 111 >>file1.txt
bash: file1.txt: 权限不够
[lixuan@rocky-8 test1]$ rm -f file1.txt
[lixuan@rocky-8 test1]$
[root@rocky-8 test1]# ll
[lixuan@rocky-8 test1]$ mkdir 123
[lixuan@rocky-8 test1]$ touch 111.txt
[root@rocky-8 test1]# ll
总用量 0
-rw-rw-r-- 1 lixuan lixuan 0 9月 30 23:35 111.txt
drwxrwxr-x 2 lixuan lixuan 6 9月 30 23:35 123
[root@rocky-8 test1]#
- 复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写
权限,其他人无权限
[root@rocky-8 tmp]# cp /etc/fstab /var/tmp/
[root@rocky-8 tmp]# useradd tomcat
[root@rocky-8 tmp]# groupadd apps
[root@rocky-8 tmp]# getent passwd tomcat ;getent group apps
[root@rocky-8 tmp]# getent passwd tomcat ; getent group apps
tomcat:x:1005:1006::/home/tomcat:/bin/bash
apps:x:1007:
[root@rocky-8 tmp]#
#验证:
[root@rocky-8 tmp]# ll
总用量 4
-rw-r--r-- 1 tomcat apps 655 9月 30 23:51 fstab
[root@rocky-8 tmp]#
[root@rocky-8 tmp]# chmod 660 fstab
[root@rocky-8 tmp]# ll
总用量 4
-rw-rw---- 1 tomcat apps 655 9月 30 23:51 fstab
[root@rocky-8 tmp]#
- 误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性
# mkdir -pv /home/git -m 700
# cp -a /etc/skel/.[^.]* /home/git
# chown -R git:git /home/git