文件权限

一:文件和目录的权限的理解

1:linux的文件和目录的权限

linux的访问文件的权限为,可读(r),可写(w),可执行(x)

权限 文件 目录
r 可以读取该文件 可以列出该文件的内容
w 可以编辑该文件 可以删除,重命名等操作
x 可以执行该文件 可以进入该文件

 

linux访问文件的用户有三种

文件的创建者(所有者)---对应 u

文件的属组----对应 g

其他用户----对应 o

a=ugo

2:查看文件的权限 ll

#查看etc的权限
[root@server /]# ll /etc/ -d
drwxr-xr-x. 140 root root 8192 10月 28 20:12 /etc/

d---代表的是文件的类型
后面的三个为一组
第一组对应 所有者的权限
第二组对应 用户组的权限
第三组对应 其他用户的权限

 

二:管理文件和目录的权限

1:字符设定法

就是用字母来设置权限,加减来添加或者删除权限

命令的格式

chmod   选项  符号  权限 文件名 

选项:

u:代表用户

g:代表用户组

o:代表其他的用户

a:代表所有的用户

符号:

+:添加权限

-:减少权限

=:等于这个权限

权限:

r:读的权限

w:写的权限

x:执行的权限

 

(1)修改文件的权限

[root@server mnt]# ll
总用量 0
-rw-r--r--. 1 root root 0 10月 28 21:46 11.txt
[root@server mnt]# 
#添加用户组和其他用户有写的权限(修改多个多个类型的用户,用逗号隔开)
[root@server mnt]# chmod g+w,o+w 11.txt 
[root@server mnt]# ll
总用量 0
-rw-rw-rw-. 1 root root 0 10月 28 21:46 11.txt
[root@server mnt]# 
#删除其他用户读的权限
[root@server mnt]# chmod o-w 11.txt 
[root@server mnt]# ll
总用量 0
-rw-rw-r--. 1 root root 0 10月 28 21:46 11.txt
[root@server mnt]# 
#所有用户只有读的权限
[root@server mnt]# chmod a=r 11.txt 
[root@server mnt]# ll
总用量 0
-r--r--r--. 1 root root 0 10月 28 21:46 11.txt
[root@server mnt]# 
#多级目录权限的设置,读写的权限
[root@server mnt]# ll -R
.:
总用量 0
-r--r--r--. 1 root root  0 10月 28 21:46 11.txt
drwxr-xr-x. 2 root root 20 10月 28 21:54 test

./test:
总用量 0
-rw-r--r--. 1 root root 0 10月 28 21:54 22.txt
[root@server mnt]# chmod u+rw,g+rw test/ -R
[root@server mnt]# ll -R
.:
总用量 0
-r--r--r--. 1 root root  0 10月 28 21:46 11.txt
drwxrwxr-x. 2 root root 20 10月 28 21:54 test

./test:
总用量 0
-rw-rw-r--. 1 root root 0 10月 28 21:54 22.txt
[root@server mnt]# 

2:数字设定法 

格式:

chmod 数字1数字2数字3  文件名 

4:代表的就是读的权限

2:代表的就是写的权限

1:代表的就是执行的权限

常见的文件夹的权限:755   

7:用户有读写执行的权限,5:用户组有读和执行的权限,5:其他用户有读和写的权限

文件的权限的权限为:644

常用的用法和字符设定的权限一样,这个就不加赘述了

三:设置文件和目录的主人和用户组

 1:chown命令

用于更改用户和用户组的命令

格式如下:

chown 用户.用户组 文件 

用户和用户组之间用 .  隔开

例子:

更改test.txt的主人为q7,用户组为user1

#查看文件的用户和用户组
[root@server mnt]# ll
总用量 0
-rw-r--r--. 1 root root 0 10月 29 22:43 test.txt
[root@server mnt]# 
#更改
[root@server mnt]# chown q7:user1 test.txt 
[root@server mnt]# ll
总用量 0
-rw-r--r--. 1 q7 user1 0 10月 29 22:43 test.txt
[root@server mnt]# 

  

四:文件访问控制列表

上面的chmod 只能赋予三类用户的权限,文件的所有者,用户组,其他用户这三类用户,所以,一但出现了第四个用户,就无法进行修改,就不能使用chmod,所以使用w文件的访问控制列表(acl)来设置特定的用户或者用户组的对于文件和目录的权限

1:setfacl命令

如果要设置多个不同对象的权限的话(就用逗号隔开)

-x 的选项可以删除单独一个对象的权限

用于设置精确的设置权限

格式:

setfacl 选项 参数 文件名称 

参数:如果设置用户的权限 u:用户名:权限  

设置 用户组的权限 g:用户组:权限

选项

选项 作用
-m(modify) 修改文件的权限
-b 删除所有用户或者用户组的acl权限
-x 单独的删除某一个用户或者用户组的acl权限
-R 递归操作子目录

实列:

root目录下的文件,user1用户能够编辑,能够在root目录下创建文件

#查看root目录的权限
[root@master ~]# ll -d
dr-xr-x---. 3 root root 160 10月 14 00:36 .
[root@master ~]# 
#发现只有root用户能够编辑,其他用户都不能进去
#更改root目录的权限
[root@master ~]# setfacl -m u:user1:rwx /root
#但查看权限是发现有+就证明了设置了acl权限
[root@master ~]# ll -d
dr-xrwx---+ 3 root root 160 10月 14 00:36 .
#使用getfacl来查看root目录的acl权限
[root@master ~]# getfacl ./
# file: .
# owner: root
# group: root
user::r-x
user:user1:rwx
group::r-x
mask::rwx
other::---

[root@master ~]# 

# 切换到user1用户
su - user1
[user1@master /]$ cd /root
[user1@master root]$ ls
anaconda-ks.cfg
[user1@master root]$ ll -d
dr-xrwx---+ 3 root root 160 10月 14 00:36 .
[user1@master root]$ 
#在root目录下,创建文件
[user1@master root]$ mkdir 11
[user1@master root]$ ls
11  anaconda-ks.cfg
[user1@master root]$ touch 22
[user1@master root]$ ls
11  22  anaconda-ks.cfg
[user1@master root]$ 
#删除user1用户的权限
[root@server ~]# setfacl -x u:user1 /root/
[root@server ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
mask::r-x
other::---

[root@server ~]# 

  


2:getfacl命令

因为设置了acl权限,所以,不能只用 ll 命令来查看文件的权限,所查看的权限不完整,所以使用getafcl命令来查看完整的权限

查看文件的acl权限

[root@server mnt]# getfacl /mnt
getfacl: Removing leading '/' from absolute path names
# file: mnt
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

[root@server mnt]# 

  

 五:sudo命令

因为在生产环境下,一般不能使用root用户,所以需要sudo命令,就能使普通用户使用root用户的权限

sudo的配置文件是/etc/sudoers

编辑该配置文件

找到root all=(all) all 在其后面输入

用户名 ALL=(ALL) ALL

sudoers文件是Linux系统中的一个配置文件,用于定义哪些用户可以以超级用户(root)的身份运行特定的命令或程序。这个文件的路径通常是/etc/sudoers或/etc/sudoers.d/sudoers。

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2023-10-29 08:53  q_7  阅读(16)  评论(0编辑  收藏  举报