Unix系统文件使用chmod的一些例子

系统 其他OS
文件在创建的时候,Unix系统使用掩码来决定文件的权限,掩码的二进制对应位为1的,文件属性的对应位就设置为0,例如当掩码的八进制表示为022时,创建的文件权限就为755。

Unix系统文件的属性和管理员可以使用命令chmod来设置或改变文件的权限。chmod有几种不同的使用方法,可以直接使用八进制的权限表示方式设置属性,或者使用属性字母来设置或更改文件的属性,不同的使用方法要求不同的 chmod参数,下面是使用chmod的一些例子:

  1. chmod 750 a.out :改变a.out的权限为750;  
  2. chmod a+x a.out :对所有用户增加a.out的执行权限,  
  3. a(All)表示所有用户;  
  4. chmod u=rwx a.out :设置属主的权限为读、写和执行  
  5. u(user)表示属主用户;  
  6. chmod g+rw a.out :增加同组用户的读写权限,  
  7. g(group)表示同组用户;  
  8. chmod o-w a.out :减少其他用户的写权限,  
  9. o(others)表示其他用户;  
  10. chmod goa.out :清除同组和其他用户的所有权限;  
  11. chmod o=u-w a.out :设置其他用户的权限为减去写权限的属主权限; 

权限755是最常见的文件权限设置,这种属性的文件允许其他用户可以访问这个文件,但不可以更改,如果不打算让其他用户访问文件,文件的存取权限可以设置为700。文件在创建的时候,Unix系统使用掩码来决定文件的权限,掩码的二进制对应位为1的,文件属性的对应位就设置为0,例如当掩码的八进制表示为022时(二进制为000010010),创建的文件权限就为755(111101101)。

文件掩码使用umask命令来设置,例如使用 “umask 027 ” 设置掩码为027,则创建的文件权限为750,其他用户将对这个文件没有任何权限。可以在启动资源文件或者在登录类别中设置中设置用户的掩码。

目录需要设置执行位,以允许用户能使用cd命令进入这个目录中。

当一个文件的权限设置完毕之后,在一个进程试图访问这个文件时,Unix系统就比较这个进程的属主和属组与文件的属主和属组,判断这个进程是否具备访问权限。由于每个进程的属主和属组标识是由启动这个进程的用户决定的,因此一个用户启动的进程就具备其本身对文件的访问权限。

除了读、写和执行权限以外,对于可执行的程序还有另外两个非常重要的属性:设置属主身份(setuid, Set User ID)权限和设置组身份(setgid, Set Group ID)权限,这两个属性允许某个程序可以更改自己的进程标识为程序文件属主或组,因而就可以具备该程序文件属主或属组的访问权限,而不再仅仅是启动进程的用户的访问权限,这样就能完成特定的任务。

很多Unix系统程序,例如su,就是通过这个特性来完成从执行进程时的普通用户身份到root用户身份的转化的,因此这两个属性对于Unix系统安全至关重要。不是必要的Unix系统程序,不能具备这些属性。

【编辑推荐】

  1. InterNet上常见的Unix系统种类概述
  2. Unix FreeBSD的开发者取得很大成功
  3. Unix系统逐渐商业化趋势的讲解
  4. 关于Unix系统的版权事件讲解
  5. BSD Unix在Unix领域内影响更大
责任编辑:小霞
相关推荐

2010-05-11 19:01:11

Unix系统

2010-05-10 18:18:46

Unix系统

2010-04-07 16:55:14

Unix命令

2010-05-10 14:51:56

Unix系统

2010-04-21 18:38:36

Unix网络

2016-11-16 21:18:42

android日志

2022-11-09 19:02:10

Linux

2014-05-04 11:17:39

Unix命令Linux命令

2021-10-12 23:10:58

UnsafeJavaJDK

2009-07-21 09:29:27

iBATIS使用

2022-12-27 09:56:34

架构系统

2024-07-05 11:05:47

2010-05-10 19:03:00

Unix文件

2023-11-10 08:48:09

Lombok库Java8

2022-04-02 14:43:59

Promethues监控

2015-08-17 15:53:58

Linux桌面

2023-10-09 08:14:10

Helm管理应用

2020-02-03 09:09:23

机器学习ML深度学习

2013-03-18 10:24:50

系统架构

2010-01-13 08:51:20

Windows 7系统开发
点赞
收藏

51CTO技术栈公众号