Linux下文件权限管理

在学习Linux时用户权限的不同会导致我们无法访问一些文件,在Linux中,用户权限可分为基本权限,特殊权限,高级权限和隐藏权限,linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要。

一、基本权限

首先是基本权限,基本权限是指用户对文件的读写执行权限,表示一个用户通过何种方式对某个文件进行访问,权限的对象分为属主、属组和其他人,可以简写为u、g、o,读写执行权限可简写为r、w、x,也可用数字表示为4,2,1。

举例:建立一个文件file1.txt,他的属主为用户xiaoluo,属组为hr,另一个用户xiaowang的属组属于hr,这个文件的属主权限为rwx,属组权限为r-x,其他人权限为r--,那么用户xiaoluo就可对这个file1.txt文件进行读、写与执行,而用户xiaowang就只能对这个文件进行读跟执行,不能编辑文件,其他人只能读这个文件,不能编辑跟执行。

1. 设置与更改权限

chown    #更改文件或目录的属主和属组
chmod    #设置更改文件访问权限

通过chown可以更改文件或者目录的属主与属组,root用户下创建文件默认文件属主与属组都为root,更改命令为:

chown xiaoluo.hr file1.txt  #修改属主与属组
chown xiaoluo file1.txt    #只修改属主
chown .hr file1.txt    #只修改属组
chown -R xiaoluo.hr dir1    #修改目录的属主与属组

其中xiaoluo为属主,hr为属组,可根据实际情况进行修改,需要注意的是,修改文件的属主与属组需要确保系统中有你所修改的用户和组,否则会显示找不到用户(组)。

更改权限

更改权限有两种方法,一种是通过符号对文件权限进行更改,另一种是通过数字对权限进行更改,具体操作方法为:

a.使用符号
chmod u+x file2.txt    #给属主增加执行权限
chmod a=rwx file2.txt    #所有人都能读写执行权限
chmod a=- file2.txt    #收回所有人的所有权限
chmod ug=rw,o=r file2.txt    #属主属组可读可写,其他人只读
ll    #可查看文件权限,chmod执行完成后可通过此命令查看是否成功
b.使用数字

第一个数字表示属主的权限,第二个表示属组的权限,第三个为其他人的权限,r用数字表示为4,w用数字表示为2,x用数字表示为1,更改属主权限为读写权限就是读的数字与写的数字相加为6,以此类推。

chmod 777 file2.txt    #更改属主属组和其他人的权限都为读写执行
chmod 641 file2.txt    #更改属主的权限为读和执行,属组的权限为只读,其他人的权限只有执行
r、w、x权限对文件和目录的意义

对文件:
r ----cat vim  tail  head  more  less
w ---vi、vim  echo  >   >>
x ---- bash /dir/file  注意:如果没有x权限,root用户都无法执行

对目录:
r  -----ls             如果只有r权限,可以看到目录下的内容,但是有报错信息
w  -----touch、rm    可以对目录下的文件创建和删除但是要有执行权限
x  ---- cd             进入目录

举例:文件

[root@localhost ~]# vim /opt/file1.txt
date
[root@localhost~]# ll /opt/file1.txt
-rw-r--r--. 1 root root 5 Nov  3 15:19 /opt/file1.txt
[root@localhost~]# ./opt/file1.txt
2024年 07月 19日 星期五 08:10:58 CST
[root@localhost ~]# su - xiaoluo  #切换普通用户
[xiaoluo@localhost ~]$ cat /opt/file1.txt
date
[xiaoluo@localhost ~]$ ./opt/file1.txt   #执行文件
-bash: ./opt/file1.txt: 权限不够       #报错
[xiaoluo@localhost ~]$ exit        #ctrl+d登出
[root@localhost ~]# chmod o+x /opt/file1.txt      #添加执行权限
[root@localhost ~]# su - xiaoluo  #切换普通用户
[xiaoluo@localhost ~]$ ./opt/file1.txt     #执行成功
2024年 07月 19日 星期五 08:17:13 CST

[root@localhost ~]# chmod o+w /opt/file1.txt     #添加写权限
[alice@localhost ~]$ vim /opt/file1.txt        #可以编辑
date
123
ls

目录:对目录没有w,对文件有rwx

[root@linux-server ~]# mkdir /dir10
[root@linux-server ~]# touch /dir10/file1
[root@linux-server ~]# chmod 777 /dir10/file1 
[root@linux-server ~]# ll -d /dir10/
drwxr-xr-x. 2 root root 19 Nov  3 15:37 /dir10/
[root@linux-server ~]# ll /dir10/file1 
-rwxrwxrwx. 1 root root 0 Nov  3 15:37 /dir10/file1
[root@linux-server ~]# vim /dir10/file1
jack
[root@linux-server ~]# su - alice
Last login: Sun Nov  3 15:28:06 CST 2019 on pts/0
[alice@linux-server ~]$ cat /dir10/file1 
jack
[alice@linux-server ~]$ rm -rf /dir10/file1   #权限不够
rm: cannot remove ‘/dir10/file1’: Permission denied
[alice@linux-server ~]$ touch /dir10/file2   #权限不够
touch: cannot touch ‘/dir10/file2’: Permission denied

 其他人对父目录没有w权限,则对其目录下的文件也没有w权限,无关乎文件的权限,但是目录又要执行权限,否则无法cd进去

对目录有w,对文件没有任何权限:

[root@linux-server ~]# chmod 777 /dir10/
[root@linux-server ~]# chmod 000 /dir10/file1 
[root@linux-server ~]# ll -d /dir10/
drwxrwxrwx. 2 root root 19 Nov  3 15:38 /dir10/
[root@linux-server ~]# ll /dir10/file1 
----------. 1 root root 5 Nov  3 15:38 /dir10/file1
[root@linux-server ~]# su - alice   #切换普通用户
Last login: Sun Nov  3 15:38:53 CST 2019 on pts/0
[alice@linux-server ~]$ cat /dir10/file1 
cat: /dir10/file1: Permission denied    #没有权限
[alice@linux-server ~]$ rm -rf /dir10/file1 
[alice@linux-server ~]$ touch /dir10/file2

对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)

注意事项
文件: x 权限小心给予
目录: w 权限小心给予

二、高级权限

高级权限是指对普通用户进行提权,提权方法有suid,sgid,sticky:

suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
sgid ==== 2 继承属组权限    (只能对目录设置)
sticky == 1 (t权限)  权限控制  SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。

设置特殊权限命令:

chmod u+s file1.txt    #对该文件进行提权,使得普通用户能够在可读写执行目录下进行增删改操作
chmod g+s dir1    #只能对目录设置,在目录下创建的文件会继承目录的属组
chmod o+t dir   即使有删除权限,也不能删除


chmod 4777 file 
chmod 2770 dir 
chmod 1770 dir 


chmod u-s file1.txt    #取消提权

目前两种给普通用户提权手段

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。

通过sudo给用户进行提权是在visudo文件中写入提权用户的信息,之后该用户可通过sudo命令执行root用户的权限

[root@linux-server ~]# visudo    #打开配置文件
90 ##
91 ## Allow root to run any commands anywhere
92 root    ALL=(ALL)       ALL
93 jack    ALL=(ALL)       NOPASSWD: ALL   #添加内容
94 ## Allows members of the 'sys' group to run networking, software,
测试
[root@linux-server ~]# su - jack
Last login: Wed Nov  6 22:04:46 CST 2019 on pts/2
[jack@linux-server ~]$ sudo mkdir /test1

配置解释:
jack表示用户名
ALL=(ALL)     #表示sudo可以切换到任意用户登陆所有计算机执行命令
NOPASSWD: ALL  #表示所有命令都可以作为root身份执行时不需要root用户的密码。

访问控制权限

setfacl 针对个人设置权限  一个人查看一个文件的权限
getfacl 查看权限
已知文件:
[root@xiaoming tmp]# ll
-rw-r--r-- 1 root root    0 11月 26 11:25 a.txt
如果希望只有xiaoming用户可以rwx操作/tmp/a.txt文件
可以通过命令:
setfacl -m u:xiaoming:rwx /tmp/a.txt
-m 设置facl权限
u:  用户,也可以指定组 g(主组)
xiaoming: 需要指定的用户
rwx: 权限

查看权限
1、尝试对该文件进行操作
2、getfacl /tmp/a.txt
[root@xiaoming /tmp]# getfacl a.txt 
# file: a.txt
# owner: root
# group: root
user::rw-
user:xiaoming:rwx
group::r--
mask::rwx
other::r--
我们可以看到 xiaoming 拥有了对该文件的rwx权限

收回权限
方法1、
setfacl -m u:xiaoming:--- a.txt
方法2、
setfacl -x u:xiaoming a.txt
方法3、
setfacl -b a.txt

设置该文件为所有人所有组访问
setfacl -m ::rwx a.txt

三、隐藏权限

文件属性添加与查看

[root@linux-server ~]# touch file1 file2 file3
1.查看文件属性
[root@linux-server ~]# lsattr file1 file2 file3 
---------------- file1
---------------- file2
---------------- file3
2.设置权限
[root@linux-server ~]# chattr +a file1  #不允许修改,只允许追加
[root@linux-server ~]# chattr +i file2  #不允许做任何操作
[root@linux-server ~]# chattr +A file3
[root@linux-server ~]# lsattr file1 file2 file3
-----a---------- file1
----i----------- file2
-------A-------- file3
i:即Immutable,系统不允许对这个文件进行任何的修改
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖这个文件
A:即Atime,告诉系统不要修改对这个文件的最后访问时间

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值