`
onedada
  • 浏览: 100801 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Linux文件的访问权限及其控制(转)

 
阅读更多

出自     http://blog.csdn.net/tigerjb/article/details/6012343

 

 

 

Linux文件的访问权限及其控制

前面我们曾经说过,文件系统要实现对文件的保护,那么它是如何实现的呢?

主要是通过对用户访问权限的控制。

现在我们再来看一下我们上次所说的通过shell命令" ls" 来查看文件的属性时所出现的一串字符代表什么意思

drwxr-xr-x      3            root         root          4096           2010-08-02 14:18   .

drwxr-xr-x      48          ryan        ryan         4096            2010-08-20 17:04   ..

drwxr-xr-x      2            root         root          4096            2010-08-19 21:05   tiger

[属性]        [ 文件数]    [ 拥有者 ] [ 用户组 ]  [ 文件大小 ] [ 修改日期 ]             [ 文件名 ]

1> 第一项文件属性总共由10位构成,第一位表示文件类型。剩下的九位都是表示文件的访问权限,可以按照每3个一组分为3组,从左到右,第一组表示文件所有者 对该文件的操作权限,第二组表示与文件所有者同组(group)的用户对该文件的操作权限,第三组表示其他用户对该文件的操作权限。每组只可能出现3种字 母。

2>第二项表示文件个数。对于文件,这一项的值是1;对于目录这一项的值就是该目录中的目录文件个数(如果是空目录则系统只有默认的两个目录项:.(当前母录)和 ..(当前目录的子目录))

3>第三项表示该文件或目录的所有者

4>第四项表示文件所有者所属的组(group)

5>第五项表示文件的大小,默认为字节

6>第六项是最后一次的修改时间。以“月,日,时间“的格式表示。

7>最后一项表示文件名

--------------------------------------------

现在我们具体来说明第一项中的文件权限

一.文件权限

1. 先看一个实例         

d                         rwx                     r-x                  r-x       

[ 文件类型]    [owner权限]   [group权限]      [other权限]

1>第一个属性,文件类型 :[d]表示目录            

                                                  [-]表示文件             

                                                  [l]表示链接文件             

                                                  [b]表示设备文件中可供存储的接口设备(块设备)             

                                                  [c]表示设备文件中的串行端口设备

2>接下来的属性中,3个为一组,且群为rwx三个参数的组 合:                 

[r]表示可读             

[w]表示可写             

[x]表示执行

3>可以用八进制数字表示每个属性,每个属性对应的数字是  

r对应 4,w 对应 2 ,x 对应 1

我们可以将同一组的三个属性进行累加,例如当属性为 [-rwxrwxrwx] 则为 777.

2.那么如何通过shell 命令来更改文件权限呢

1>  chgrp :改变文件所属用户组。

2>  chown :改变文件拥有者。

3>  chmod :改变文件的属性 , SUID 等属性。

a.chgrp  [-r]    groupname       dirname/filename

需要注意的是,你要改成的用户组的名称,必须在 /etc/group 里存在,否则就会显示错误。(-r表示递归执行)

函数的实例:

sudo chgrp root 1 

把1的用户组权限该成root

b.chown [-r]     groupname    dirname/filename

函数的实例

sudo chown root 1 

把1的[owner权限]该为root

c.还有一种方法也可以修改文件权限    

                    u(用户)     + (加入)  r/w/x

  chmod      g(组)      -(除去)   w/r/x           +file/dir

                    o(other)    =(设置)   x/r/w
        
                   a(所用用户组) +        r/w/x  
   

我们一般比较常用chmod 来该文件的权限

 

现在我们来体验一下:

首先    :touch  tiger(创建一个tiger文件) 

然后用:ls -l   tiger(查看一下它的属性)

具体实现:

think@ubuntu:~/test$ touch tiger

think@ubuntu:~/test$ ls -l tiger

运行结果:

-rw-r--r-- 1 think think 0 2010-11-16 14:39 tiger

可以看到文件的属性是:用户具有读和写的权限

那么我们让用户具有执行的权限可以通过命令: chmod u+x 文件名来实现

具体实现:

think@ubuntu:~/test$ sudo chmod u+x tiger

think@ubuntu:~/test$ ls -l tiger

运行结果:

-rwxr--r-- 1 think think 0 2010-11-16 14:39 tiger

从显示的结果可以看出现在的用户具有了rwx的权限.

Tiger-John说明:

我们也可以通过8进制数子来实现文件权限的修改 例如:我们输入命令: sudo chmod 777   tiger

执行完后所有的用户都具有了读写执行的权限 (其中 7=4+2+1,4表示r,2表示w,1表示x)所以就表示它即有读,写,执行的权限。

3.下面对setuid ,setgid,stickybit的三个权限进行说明

1>一个文件都有一个所有者, 表示该文件是谁创建的。同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组。如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限 。

而setuid, setgid 可以来改变这种设置.

2>setuid ,setgid,stickybit的用法

a.setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

b.setgid: 该权限只对目录有效。目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

c.sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

3>那么如何操作这些标志 操作这些标志与操作文件权限的命令是一样的, 都是用 chmod命令。

有两种方法来操作

a.  

 chmod u+s  tiger       表示为tiger文件加上setuid标志. (setuid 只对文件有效)      

 chmod g+s  tigerdir   表示为tigerdir目录加上setgid标志 (setgid 只对目录有效)      

 chmod o+t   tiger        表示为tiger文件加上sticky标志 (sticky只对文件有效)

 

Tiger-John说明:

setuid 只对文件有效

setgid 只对目录有效

sticky只对文件有效

 

b.采用八进制方式。

对一般文件通过上面所说的方法用三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志,则在这组数字之外外加一组八进制数字。如 4666, 2777等. 这一组八进制数字三位的意义如下   

abc   

a - setuid位, 如果该位为1, 则表示设置setuid   

b - setgid位, 如果该位为1, 则表示设置setgid   

c - sticky位,  如果该位为1, 则表示设置sticky

设置完这些标志后, 可以用 ls -l 来查看。如果有这些标志, 则会在原来的执行标志位置上显示。

如  rwsrw-r--    表示有setuid标志

      rwxrwsrw-  表示有setgid标志

      rwxrw-rwt   表示有sticky标志

Tiger-John说明:

那么 原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

 

 

 

 

 

分享到:
评论

相关推荐

    实验10Linux文件系统运维实验201911181

    1.使ls命令查看文件及其属性 2.使chmod命令改变文件访问权限 3.使访问控制列表 4.使mv命令处理文件(文件移动和重命名) 5.安装并配置个基本的LD

    基于目录和用户或部门匹配的文件授权访问管理

    对windows或linux的目录及其子目录/文件进行按用户或部门进行授权(包括完全控制、读写、只读、不可访问),结果存放与一个数据库中,可供各种应用(比如sprint security的java软件)用于用户登录后对文件的访问控制...

    LINUX网站建设技术指南

    第4章 Linux文件及系统管理 4.1 文件和目录 4.1.1 文件和目录概述 4.1.2 文件类型 4.2 文件权限 4.2.1 文件权限的概念 4.2.2 文件权限的构成 4.2.3 文件权限的依赖性 4.2.4 改变权限 4.3 文件链接 4.3.1 硬链接 ...

    2010-2011华南理工大学操作系统课程设计(完整源代码和详细文档)

    copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到模拟...

    linux教程——很使用的那种

    linux中的文件(普通文件或设备文件等)都必须有挂在点,只有挂载到一个目录下才能访问,swap分区是不需要挂载点的,在分区的时候,将文件系统类型选为swap,挂载点自动会变为灰色。一般linux中的swap大小为内存的两倍。...

    清华大学Linux操作系统原理与应用

    8.1.4 文件访问权限 168 8.2 虚拟文件系统 168 8.2.1 虚拟文件系统的引入 168 8.2.2 VFS中的数据结构 170 8.2.3 VFS超级块数据结构 171 8.2.4 VFS的索引节点 173 8.2.5 目录项对象 174 8.2.6 与进程相关的文件结构 ...

    Linux FTP服务配置

    最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许...

    使用Cacls命令设置服务器文件访问权限

     /T——更改当前目录及其所有子目录中指定文件的 ACL;/E—— 编辑 ACL 而不替换;/C——在出现拒绝访问错误时继续;/G user:perm——赋予指定用户访问权限。Perm 可以是R(读取)、W(写入)、C(更改,写入...

    无需容器即可无痛地重定位Linux二进制文件及其所有依赖项。-Python开发

    如果您在计算机上没有root用户访问权限,或者软件包Exodus Exodus是使您可以轻松地将Linux ELF二进制文件从一个系统成功重定位到另一个系统的工具,则这很有用。 在您没有机器上的root访问权限或给定Linux发行版根本...

    LINUX系统管理白皮书

    17.2 限制NNTP访问权限 169 17.3 NNTP身份验证 170 17.4 nntpd与C-News的沟通 171 第18章 新闻阅读机的配置 172 18.1 tin配置 172 18.2 trn配置 173 18.3 nn配置 174 第19章 其他问题 176 19.1 PLIP的空...

    Linux管理员指南

    命令行 68 6.1 BASH简介 68 6.1.1 作业控制 69 6.1.2 环境变量 69 6.1.3 管道 70 6.1.4 重定向 70 6.1.5 BASH的命令行快捷键 71 6.2 文档工具 72 6.2.1 man命令 72 6.2.2 texinfo系统 73...

    Linux实验二

    3. 使用cd命令先转到/root目录再转到当前目录 4. 将/etc目录及其下所有内容复制到/home/test 5. 查看和访问/home/test 6. 更改权限和所有者,使用命令查看区别 7. 将/home/test/etc压缩成etc.tar.gz 8. 解压etc.tar....

    Linux基础(练习三)

    一、使用ACL控制对文件的访问二、 添加磁盘、分区和文件系统 一、使用ACL控制对文件的访问 cased目录及其内容应属于组bakerstreet。新增至cases目录中的文件应自动属于组bakerstreet。现有文件应针对用户和组设置为...

    LINUX与UNIX SHELL编程指南(很全)

    第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 ...

    Linux shell编程指南

    第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 ...

    Linux与unix shell编程指南

    第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 ...

    CentOS简易Linux命令行模拟器-C++

    简易Linux命令行模拟器,集成了常用文件和目录操作功能: 1. mypwd:pwd,获取并显示当前工作目录的路径。 2. mylist:ls,接收一个目录参数,列出其中的所有非隐藏(即名称不以.开头)文件和目录。 3. mycd:cd, ...

Global site tag (gtag.js) - Google Analytics