Linux 文件权限

Linux 文件权限

前言

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

Linux 文件属性

Linux 中,文件属性是一个字符串,它描述了文件的权限,文件的所有者,文件的所有者组,文件的其他用户的访问权限。

使用 ls -l 命令可以显示文件的属性:

root@emoryhuang:/# ls -l
total 970048
lrwxrwxrwx   1 root root         7 Nov 23 18:08 bin
drwxr-xr-x  18 root root      3880 Jan 12 08:46 dev
drwxr-xr-x  90 root root      4096 Jan 12 18:44 etc
drwxr-xr-x   5 root root      4096 Jan 12 21:29 home
-rw-------   1 root root 993249280 Nov 23 18:08 swapfile
...

可以发现,返回值共有 7 个部分:

权限连结数拥有者用户组文件容量修改时间文件名
drwxr-xr-x18rootroot3880Jan 12 08:46dev

文件类型

每个文件的属性由左边第一部分的 10 个字符来确定, 其中 第 0 位 表示 文件类型

Linux 中文件可以分为 5 个类型:

字符文件类型
d目录
-文件
l符号链接
b可供储存的接口设备
c串行端口设备,如键盘、鼠标等

用户与用户组

  • 文件 拥有者 - user
  • 文件的拥有者所在 用户组 的其他成员 - group
  • 拥有者用户组 成员以外的其他用户 - others

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在 Linux 系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。

文件权限是相对于这三类用户而言的,不同身份的用户可以具有不同的权限。

权限信息

考虑到用户的身份的不同,同样文件的权限信息也可以分为三类, 以三个为一组, 分别对应 拥有者, 用户组, 其他人 拥有的权限。

对于权限信息 rwxr-xr-x 来说, 拥有者 的权限为 rwx, 用户组其他人 的权限为 r-x

r, w, x 分别表示执行权限。

要注意的是,三个权限的位置不会改变,如果没有权限,就会用 - 字符表示。

改变文件属性与权限

  • chgrp: 修改文件所属用户组
  • chown: 修改文件拥有者
  • chmod: 改变文件的权限

修改文件所属用户组

chgrp [-R] 用户组名称 文件或目录


范例: 修改 install.log 所属用户组为 users

root@emoryhuang:/# chgrp users install.log
root@emoryhuang:/# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log

{% note info flatten %}

-R: 递归更改文件属组, 就是在更改某个目录文件的属组时, 如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。

{% endnote%}

修改文件拥有者

chown [–R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录


范例: 修改 install.log 拥有者为 bin

root@emoryhuang:/# chown bin install.log
root@emoryhuang:/# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

修改文件权限

数字类型改变文件权限

我们可以使用数字来代表各个权限,各权限的分数对照表如下:

权限分数
r4
w2
x1

每种身份各自的三个权限分数是需要 累加 的,例如当权限为 rwxrwx--- 时,对应的分数为:

user   = rwx = 4+2+1 = 7
group  = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0

得到的文件权限数字也就为 770, 修改权限时就可以使用这个数字完成:

root@emoryhuang:/# ls -l .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
root@emoryhuang:/# chmod 777 .bashrc
root@emoryhuang:/# ls -l .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
符号类型改变文件权限

还有一个改变权限的方法, 使用 u, g, o 来代表 user, group, others 的权限, a 则代表 all 亦即全部的身份。

命令身份操作权限对象
chmodu+ (添加)r文件或目录
g- (去除)w
o= (设定)x
a
范例: 修改 .bashrc 的 user 权限为 rwx, group 和 others 的权限为 r-x

root@emoryhuang:/# chmod  u=rwx,go=rx  .bashrc
root@emoryhuang:/# ls -l .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

范例: 去除全部人的可执行权限

root@emoryhuang:/# chmod  a-x  .bashrc
root@emoryhuang:/# ls -al .bashrc
-rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmoryHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值