Linux学习笔记(二)

Linux 的档案权限与目录配置

Linux文件属性:

先来介绍一个指令ls是『list』的意思,重点在显示档案的文件名与相关属性。而选项-al则表示列出所有的档案详细的权限与属性 (包括隐藏文件,就是文件名第一个字符为 的档案)如果你输入上述指令后,应该有上列的几个东西,先解释一下面七个字段的意义:

1.第一栏代表这个档案的类型与权限(permission)

这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:

第一个属性表示文件的类型,比如目录、文件或连接文件等

[d]则是目录。

[-]是文件。

[l]是连接文件。

[b]为设备文件中可供存储的接口设备。

[c]为设备文件中的串行端口设备,如素表键盘。

接下来的属性中,3个为一组,且都是rwx三个参数的组合,其中[r]表示可读(read),[w]表示可写(write),[x]表示可执行(excute)。

   第一组为拥有者的权限

   第二组为同用户组的权限

   第三种为其他非本用户组的权限

没有该权限就变成了减号(-

还要特别注意的是x权限,如果文件名是一个目录时,例如.ssh目录:

drwx------    3     root    root      4096    Jun  25 08:36       .ssh

可以看出这是一个目录,而且只有root可以读写和执行。若为下面的样式时,看一看非root得其他人是否可以进入这个目录?

drwx---r--    3     root    root      4096    Jun  25 08:36       .ssh

貌似可以,因为存在可读权限[r]。但是,正确的答案是:非root账户的其他用户均不可以进入.ssh目录。因为x与目录的关系相当重要,如果在该目录下不能执行任何命令的话,那么自然也就无法进入了。因此,要特别注意,如果想对他人开放某个目录的话,一定要记住开放该目录的x属性。

第二列表示连接占用的节点:这与连接文件有关。如果是目录的话,那么就与该目录下还有多少目录有关。

第三列表示这个文件(目录)的拥有者

第四列表示拥有者的用户组:在Linux中,ID即是您的身份,还可以附属在一个或多个用户组之下。

第五列为这个文件的大小

第六列为这个文件的创建日期或者是最近修改的日期

第七列为这个文件的文件名:如果前面有“.”,表示这个文件为隐藏文件。不过如果在ls 的时候输入参数 –al可以把隐藏文件一起列出来。

Linux文件属性的重要性:Linux中每一个文件都多加了很多的属性,尤其是用户组的概念,最大的用途是安全性。在修改Linux文件与目录的属性之前一定要弄清楚,什么可以改变,什么是不可以改变的。

 

如何改变文件属性与权限

已经知道了文件权限对于一个系统的重要性了,也知道文件权限与用户和用户组的关系了,那么如何更改文件的权限呢。

chgrp:改变文件所属用户组

chown:改变文件拥有者

chmod:改变文件的属性、SUID,SGID, SBIT 等特性。

注意这几个命令都是需要用root身份来使用的

更改所属用户组,chgrp 是(change group的缩写):

[root@www ~]#chgrp [-R] dirname/filename …

选项与参数:

-R:进行递归的持续变更,也就似乎连同此目录下的所有档案、目录都变更成这个用户组。常常用在更改某一个目录的情况。

假如你是以root的身份登入Linux系统的,在你的家目录内有一个install.log的档案, 如何将该档案的群组改变一下呢?假如你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了

例子:[root@www ~]#chgrp users install.log

[root@www ~]#ls –l 

-rw-r--r—1 root users 684985 Jun 25 08:59 install.log

[root@www ~]#chagrp testing install.log

Chgrp:invalid group name ‘testing’<<发生错误,找不到这个群组的名字

更改文件拥有者 chown (change owner的缩写)

直接用这个命令即可,和更改用户组的命令类似,所要变更的用户必须已经存在于系统中。也就是说必要要在/etc/passwd中有记录才行。Chown的用途很多,还可以直接修改用户组的名称。如果要将目录下的所有子目录或者文件同时更改文件拥有者的话,直接加上-R参数就可以了。

[root@www ~]#chown [-R] 账号名字  文件目录名字

[root@www ~]#chown [-R] 账号名字:用户组名称、文件或目录

参数:-R:进行递归的持续更改,即将同子目录下的所有文件、目录都更新为这个用户组。常常用在更改某一个目录的情况。

例子:[root@www ~]#chown bin install.log

[root@www ~]#ls -l 

-rw-r--r—1      bin        users     684985       Jun 25 08:59      install.log

[root@www ~]#chown  root:root   install.log

[root@www ~]#ls –l

-rw-r--r—1      root        root    684985       Jun 25 08:59      install.log

知道了如何改变文件的用户组与拥有者了,那么什么时候使用chownchgrp呢?有的时候确实是需要更改文件的拥有者,常见的例子就是将文件复制给其他人。用简单的cp命令来进行说明:

[root@www ~]#cp 源文件 目的文件

例子:把.bashrc复制成.bashrc_test,并给bin这个人,可以这样:

[root@www ~]#cp  .bashrc   .bashrc_test

[root@www ~]#ls –al  .bashrc*

-rw-r—r--     1     root        root     395   Jul     4     11:45     .bashrc

-rw-r—r--     1     root        root     395   Jul     13     11:45     .bashrc_test

可以上面可以看到.bashrc_test还是属于root所有,即使将文件给另外bin用户,他仍然无法修改(看看属性就知道了),这个时候就必须要修改文件的拥有者和用户组。

更改权限,chmod

有两种设置权限的方法,分别是数字和符号

3.1用数字修改文件权限

Linux文件的基本属性有9个,分别是owner/group/others组的read/write/execute属性;

可以用数字来表示各个属性,各个属性的对照表如下:

r:4

w:2

x:1

将同一个组的3个属性相加,例如当属性为[-rwxrwx---]则是:

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

当设置属性时,该属性的数字就是770。更改属性的命令chmod可以这样:

[root@www ~]#chmod [-R] xyz文件或目录

参数:

xyz:就是刚提到的类型的权限属性,为rwx属性值的和。

-R:进行递归的持续更该,连同子目录下的所有文件、目录都更新为这个用户组。

如果要将.bashrc文件的所有属性都打开,执行下面的命令即可:

[root@www ~]# chmod 777 .bashrc

[root@www ~]#ls –al  .bashrc

-rwxrwxrwx     1     root        root     395   Jul     4     11:45     .bashrc

我们用vi编辑文字文件后,其属性通常是666-rw-rw-r--),如果我们要将它变成可执行文件,并且不能让其他人修改此文件,那么就要将它改为755(-rwxr-xr-x)的属性,此时就得要下达:chmod 755  test.sh 的指令! 

3.2符号类型改变文字

从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x啰!也就是可以使用底下的方式来看:

来实作一下吧!假如我们要设定一个档案的权限成为-rwxr-xr-x时,基本上就是:

user (u):具有可读、可写、可执行的权限; 

group 与 others (g/o):具有可读与执行的权限。

[root@www ~]# chmod u=rwx,go=rx  .bashrc

注意u=rwx,go=rx这一段文件之间并没有空格。

如果是不知道原文的文件属性,但是想增加每个人都可以写入的权限就用 a+w

[root@www ~]# chmod  a+w  .bashrc

[root@www ~]#ls –al  .bashrc

-rwxrwxrwx     1     root        root     395   Jul     4     11:45     .bashrc

如果想要去掉某个属性,而不更改其他属性,例如要去掉所有人的x属性 就用a-x,

+-的状态下,只要是没有指定到的项目,该属性不会变动

目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是cd (change directory)! 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值