linux文件权限

linux的文件权限

/*我先讲个框框

1,一个四口之家,姐弟各一间房,父母一间房(他们使用一个账号),客厅共享(每一个房间都有一个文件柜,或者摆着的文件)。想对于文件柜或者文件来说姐弟,父母每个人都是一个用户(user),这一家人都可以使用客厅,因为他们整个家庭属于一个用户组(group),现在有一个张絮鑫,我认识,可是我的家人都不认识,她目前只与我有关系,那么张絮鑫现在就相对于我们是其他人(others)。还有一个特殊的角色,就是root账号,它不受系统权限限制。

2,每个房间里都有一个文件柜,里面存放着个人的文件,别人不能随便看私人的文件,这就是【文件拥有者的概念】,可读r(read),可写w(write),可执行x(execute)

接下来打几个比方,

1)对于目录来说:可读就像文件柜里的灯,没有可读就看不到文件柜里的文件名(有什么文件)。

2)可写,那么你就可以操作文件柜里的文件的顺序,移动,删除和重命名,还有新的目录的创建。

3)可执行,对于文件柜(目录)来说就是可以打开,相当于钥匙。可以使用cd切到这个目录,没有这个权限顶多看看有什么文件而已。根本到不了这个目录里面。

-*可读,对于文件,就是可以知道文件里的数据,相对就好理解了

-*可写,对于文件来说,就是可以修改文件的内容。

-*可执行,对于文件来说,就是可以执行文件里的数据内容。关键是得能读出来啊

一般来说,rw成对出现。因为并不是所有的文件都是可执行文件

一句话总结,就是对一般文件来说,rwx是针对内容来设计权限的;对于目录来说,rwx是针对文件名列表来设计权限的。

 

* 举例:

就是本来我没有权限(比如对我的权限是---)的一个文件或者目录放在了我的家目录下面,我能删了它吗?当然可以,就好比别人把文件放在我的文件柜里,你说我没有权限看,我还没有权限扔了吗?当然可以。正当的解释是,我对我所在的家目录具有rwx权限,所以我可以修改文件列表的顺序包括删除,还有新建移动等(对文件列表的变更都是可以的),所以对于在我的家目录下的文件即使我没有任何权限—- 那我还是能够删除。

* 举例:

我要复制一个文件,至少我对人文件要有读权限

* 举例:

很多时候对于目录来说r 没有,意味着什么?

-* 意味着我即使进入目录也看不到目录里的文件列表,使用tab无法补全,但是如果我知道文件名,我还是能够打开

* 举例:

对于一个开放的目录,我们最好给予o什么权限?

-* 至少有rx两个权限好吗,没有x根本进不去,没有r就不知道文件列表,但是w权限要慎重,因为有了之后别人就能够随便修改文件里的文件列表了,删了就不好了。

 

* 工作目录:工作目录就是当下我切到的目录,能不能切到目录里面是很重要的,因为如果不能进入该目录,那么该目录下面的任何命令都不能执行。

 

 

/*文件的权限设置:

 

* 补充:

a- 文件名之前有[.],则表示这个文件为隐藏文件

b- 在Windows下文件是否可以执行和后缀有关,比如.exe  .c等,但是Linux下文件是否可以执行和x权限有关,而文件名包括后缀(后缀的作用几乎仅限于标识文件类型)

 

1,第一栏代表文件的类型和需要的权限。

1)第一个字符

【d】目录

【-】文件

【|】链接

【b】设备文件里可供存储的周边设备,可按存储块随机读写的设备。

【c】设备文件里的串行端口设备,鼠标,键盘等

 

* 补充:

a- 上面图表中后续栏目所代表的意义

 1. 链接,后续讲到文件系统的时候你就知道了,它的数目等同于硬链接的数目,也即是inode的数目

 2. 拥有者:顾名思义,指的是拥有文件的用户 user

 3. 群组:拥有文件的群组,用户会加入各种各样的群组,这样,群组自然也就拥有了群组的成员的文件

 

2)剩下的字符

三个一组,分别代表rwx,-就是不允许,三组依次代表的是谁拥有的权限(对该文件或者其他类型)??

答:【用户】【用户组】【其他人】

2,权限的更改:

1),修改文件使用权限:

 

* 补充:

a- 修改文件权限,有三种方式

   1. 数字,下面有写;我想说明的是,数字方式也好还是借由三种身份直接指定也好,都是由我们来直接指定全部权限,不管之前的是什么样,最终全部都会变成我们指定的那样。

   2. u-user g-group o-others     a- all,借由这三种身份直接制定权限;举例:u=rwx,g=r-x,o=r—,或者u=rwx,go=r—,就是类似于这样写

 

   3. 不同于以上两种的是使用+  - 来在以前的基础上增加或者减少权限(rwx),举例:a+w,也就是所有身份都增加w的权限,以前就有的保持不变。

 

使用命令:chmod

格式:

(1),数字类型修改

r-4,w-2,x-1

【-rwxrwx---】就是770,过程就是

owner = rwx = 4+2+1

group = rwx = 4+2+1

others = --- = 0

chmod 【-R】 xyz  文件名/目录

(2),符号类型修改

-*u,g,o分别是user,group,others的首字母,使用他们为自己的权限赋值

ug = rwx  o = ---(存疑)

chmod 【-R】 ug = rwx,o = ---  文件名/目录        //注意里面是逗号隔开的

-*如果,我的目的很单纯,就是想给每个使用者增加/移除执行的权限,那么可以这么写

chmod 【-R】 a+x 文件名/目录     //a代表all的意思      chmod a-x 文件名/目录

-*

2),修改文件所属用户组:

使用命令:chgrp

格式:chgrp 【-R】 用户组  dirname/filename

-R代表递归的修改目录下的子目录及文件的所属用户组。用户组,就是想改到那个用户组的那个的名字,dirname/filename就是修改文件的名字

3),修改文件所属用户:

使用命令:chown

格式:chown 【-R】 用户:用户组  文件或目录(想修改的那个)

chown 【-R】 用户.用户组  文件或目录(想修改的那个)//可以使用句点作为分隔符,但是用户名或用户组名里有句点就会造成误判,所以尽量使用:

chown 【-R】 用户  文件或目录(想修改的那个)//只修改用户

chown 【-R】 .用户组  文件或目录(想修改的那个)//这个就是使用了句点,只修改用户组

 

R需要大写才行。

 

* 补充:我觉得最好用的机会chown,因为拥有文件的有两个地方啊,一个是拥有者,一个是用户组,很棒的chown就能够实现单独或者同时修改拥有者/用户组

1. 只修改拥有者:chown [R] name filename/dirname

2. 只修改用户组:chown [R] :group filename/dirname

3. 同时修改拥有者&用户组:chown [R] name:group filename/dirname

注意:冒号就是界定拥有者&用户组的标志,别少了,还有[.]也可以,但是容易和文件中的点混淆,所以我建议使用冒号

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值