【第五章】文件权限

Linux文件权限概念

用ls来显示文件的文件名和相关属性,-al表示列出所有文件的详细的权限和属性(包含隐藏文件):

ls -al
-rw-r--r--.  1  root  root  1864  May  4  18:01  initial-setup-ks.cfg

第一列表示文件类型和权限
第二列表示多少文件名链接到此结点
第三列表示这个文件的拥有者账号
第四列表示这个文件的所属用户组
第五列表示文件的容量大小,默认单位是字节Byte
第六列表示文件的创建日期或最近修改日期
最后一列是文件名

十位权限位

-rw-r--r--

第一代表这个文件是目录(d)、文件(-)或链接文件(l)等;
接下来以三个为一组,且均为rwx的组合。r代表可读(read)、w代表可写(write)、x代表可执行(execute)。这三个权限的位置不会改变,如果没有权限就会出现-
第一组为文件拥有者(user)具备的权限,第二组是加入此用户组(group)的账号的权限,第三组是非本人且没有加入用户组的其他账号的权限(others)。

【例】:
假设test1、test2、test3同属于testgroup这个用户组,如果有下面两个文件,请说明两个文件的拥有者和其相关的权限是什么?

-rw-r--r--.  1  root    root      238  Jun 18 19:22  test.txt
-rwxr-xr--.  1  test1   testgroup 5238 Jun 19 10:25  ping_tsai

  • test.txt的拥有者是root,所属用户组是root,权限方面只有root能读写此文件,其他人子还能读此文件
  • ping_tsai的拥有者是test1,所属用户组是testgroup。test1对ping_tsai可读可写可执行。同组的test2和test3只能读和执行,不能写
  • 不在testgroup的其他人只能读,不能写也不能执行

修改文件属性和权限

chgrp

使用chgrp修改文件所属用户组。但是被修改的组名必须要在/etc/group文件中存在才行。
上面的initial-setup-ks.cfg,用户组和用户都是root,现在修改一下用户组,将用户组改为users(这里假设/etc/group中有一个名为users的用户组)

//chgrp 用户组 文件/目录名
//chgrp -R 用户组 文件/目录名 使用-R会将子目录下所有文件、目录的用户组全更改
chgrp users initial-setup-ks.cfg
ls -l
-rw-r--r--.  1  root  users  1864  May  4  18:01  initial-setup-ks.cfg
chown

使用chown修改文件拥有者。同样,用户必须是已经存在在系统中的账号,也就是在/etc/passwd这个文件中有记录的用户名称才能修改。
chown可以顺便直接修改用户组名称。

//chown 账户名 文件/目录
//chown -R 账户名 文件/目录
chown bin initial-setup-ks.cfg
ls -l
-rw-r--r--.  1  bin  users  1864  May  4  18:01  initial-setup-ks.cfg
//再将用户组和拥有者改回root
//chown 账户名:用户组名 文件/目录
//chown -R 账户名:用户组名 文件/目录
chown root:root initial-setup-ks.cfg
-rw-r--r--.  1  root root  1864  May  4  18:01  initial-setup-ks.cfg
chmod

使用chmod来修改文件的权限。可以分别使用数组或者符号来修改

使用数字

使用数字来代表各个权限。

r:4
w:2
x:1

每种身份各自的三个权限数字需要累加,比如[-rwxrwx---]数字是:

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

这个文件的权限数字就是770,然后使用chmod来修改权限:

// chmod xyz 文件/目录
// chmod -R xyz 文件/目录
//xyz就是权限数字
ls -al .bashrc
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
chmod 777 .bashrc
ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Dec 29 2013 .bashrc

如果要设置成-rwxr--xr--,权限数字就是[4+2+1][4+0+1][4+0+0] = 754,再执行chmod 754 文件名即可。
可以用二进制理解这个做法,rwx就是三位二进制数,r–就是100,即4;-w-就是010,即2;–x就是001,即1;而rwx就是111,即7。

使用符号

九个权限分别是user、group、others这三种,我们就可以借由u、g、o来代表三种身份的权限。还有一种a代表全部的身份。

//假设设置一个文件的权限是【-rwxr-xr-x】,即u有rwx权限,g和o有rx权限
chmod u=rwx,go=rx .bashrc
ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Dec 29 2013 .bashrc
//给每个人均可写入的权限
chmod a+w .bashrc
ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Dec 29 2013 .bashrc
//去掉全部人的可执行权限
chmod a-x .bashrc
la -al .bashrc
-rw-rw-rw-. 1 root root 176 Dec 29 2013 .bashrc

目录与文件权限意义

目录的x执行权限代表用户能否进入该目录成为工作目录的用途。如果在某目录下不具有x的权限,那就无法切换到该目录,也就无法执行该目录下的任何指令,即使有该目录的rw权限。所以要开放目录给任何人浏览,至少也要给出rx权限。
假设我对一个目录有rwx的权限,但在这个目录下有个文件,我对他的权限是---,我是可以删除它的,因为我在这个目录下有rwx权限。就好像我家里有个不能打开的文件袋,打不开,也看不到里面的东西。但是我可以把它扔进垃圾桶。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值