一、 更改文件9个属性:chmod

用这个命令修改文件属性有两种方式:数字或者符号

1. 数字类型改变文件权限 chmod

(1)类unix系统的文件有9个属性分别是owner/group/others 的read/write/excute 属性,这9个属性中3个为一组,可以用数字来表示各个属性:

r:4

w:2

x:1

每个权限代表一个数字,将同一组的3个权限累加,就是这一组权限的数字表示方式,

例如当文件属性是[-rwxrw-r--]时:

Owner:  4+2+1=7(rwx)

Group:  4+2+0=6(rw)

Others: 4+0+0=4(r)

因此该文件的属性用数字来表示就是764了。

(2)语法:chmod [-R] xyz filename

xyz:数字类型的权限属性,也就是rwx所代表数字的和

-R: 进行递归的持续修改,常用于修改某一目录

(3)例子。假定有一个名为test的文件,具有如下权限:

-rw-rw-r-- 1 root root  165 Nov 18 15:53 test

现在希望拥有者对该文件可读、写和执行,root组用户对该文件只读,其他人没有权限,可以键入:

$chmod 740 test

$ls -l

-rwxr----- 1 root root  165 Nov 18 15:53 test

 

2. 符号类型改变文件权限

(1) chmod命令的一般格式为:

chmod [who] operator [permission] filename

who的含义是:

u 文件属主权限。

g 属组用户权限。

o 其他用户权限。

a 所有用户(文件属主、属组用户及其他用户)。

operator的含义:

+ 增加权限。

- 取消权限。

= 设定权限。

permi ssion的含义:

r 读权限。

w 写权限。

x 执行权限。

s 文件属主和组set-ID。

t 粘性位*。

l 给文件加锁,使其他用户无法访问。

(这里只关注r、w、x权限,其他的后面解释)

(2) 例子:当创建test文件时,它具有这样的权限:

-rw-r--r-- 1 root root  165 Nov 18 15:53 test

如果要使属主和属组用户具有有执行权限,并取消其他用户的写权限,可以用:

$ chmod ug+x test

$ chmod o-w test

-rwxr-xr-- 1 root root  165 Nov 18 15:53 test

最后将属组的属性设置为rwx,其他人的属性设置为rw

$ chmod g=rwx,o=rw test (g=rwx,o=rw是在一起的,中间没有空格)

-rwxrwxrw- 1 root root  165 Nov 18 15:53 test

二、 更改文件拥有者chown

当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所有权,把它的所有权交给另外一个/etc/passwd文件中存在的合法用户。可以使用用户名或用户ID号来完成这一操作。

在改变一个文件的所有权时,相应的suid也将被清除,这是出于安全性的考虑。只有文件的属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于系统管理员了。

1. chown命令的一般形式

chown  [--cfhvR]  owner  file


2. 例子

# ls -l

drwxrwxr-x  2 sam  sam  4096 10月 26 19:48 sam

# chown gem sam

# ls –l

drwxrwxr-x  2 gem  sam  4096 10月 26 19:48 sam

文件sam的所有权现在由用户sam交给了用户gem。也可以将属主与属组一起修改:

# chown gem:gem sam

# ls –l

drwxrwxr-x  2 gem  gem  4096 10月 26 19:50 sam

三、 更改所属用户组chgrp

chgrp命令和chown命令的格式差不多,下面给出一个例子:

# ls -l

drwxrwxr-x  2 gem  sam  4096 10月 26 19:48 sam

# chgrp group sam

# ls -l

drwxrwxr-x  2 gem  group  4096 10月 26 19:48 sam

一般来说再将文件复制给另外一个用户的时候需要修改文件的所属者,不然那个用户无法打开这个文件。

四、 找出你或者其他人所属的用户组

如果你希望知道自己属于哪些用户组,可以用ID这个命令:

# su sam

$ id

uid=506(sam) gid=4(adm) groups=4(adm)

如果想看其他人的用户组,用#id 用户名,如:

# su sam

$ id gem

uid=507(gem) gid=507(group) groups=507(group),0(root),4(adm)

五、参考

1. 《shell十三问》

(完)

linux系统如何更改文件权限的更多相关文章

  1. linux系统中的文件权限详解(转)

    一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...

  2. Linux系统用户/用户组/文件权限相关

    目录一.Linux系统用户/用户组权限相关二.Linux系统文件权限相关 一.Linux系统用户/用户组权限相关 .命令:usermod 用法:usermod [-agGus] user args ‘ ...

  3. linux中chmod更改文件权限命令

    1. 命令格式: chmod [-cfvR] [--help] [--version] mode file 2. 命令功能: 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3. 命令参 ...

  4. 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.

    本文转自Linux社区作者为z-sm的文章 原文链接http://www.linuxidc.com/Linux/2016-07/133066.htm 之前一直使用的是ubuntu,后来安装了Cento ...

  5. Linux系统中的文件权限

    r(read)         4    可读 w(write)   2     可写 x()           1     可执行 644            755 rw-r-r        ...

  6. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  7. Linux更改文件权限(二)

    更改文件权限(二)============================== (参考于千锋教育教学笔记) 命令umask [root@aminglinux ~]# umask 0022 [root@ ...

  8. Linux更改文件权限(一)

    更改文件权限(一)============================== (参考于千锋教育教学笔记) 设置权限 1.更改文件的属主.属组chown (change owner)[root@ami ...

  9. linux 更改文件权限命令 chmod

    chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限. 更改文件权限的2种方式: 一 ...

随机推荐

  1. win7下安装ubuntu14.04lts 双系统

    首先,在win7下的硬盘管理 压缩出一块空闲的分区,即压缩卷之后,不做任何操作. 并且确保该空闲卷是“基本”类型     不是的话,参考http://www.jianshu.com/p/2f07312 ...

  2. linux tcpdump命令抓包

    tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27 ...

  3. p2p通信原理及实现(转)

    1.简介 当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信.这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还 ...

  4. 数组去重(初识ES6)

    较常见的一问题:数组去重. 方法一:利用hash数组的原理 var arr=[1,3,3,4,5,5,6,6,7,8,69,8,99,9,0,]; function unique(arry){ var ...

  5. Java程序员之JS(一) 之 JQuery.ajax

    背景:紧着现在项目的需要,先从JQuery.ajax出发,主要需求是通过 js 调用Java 代码,从而适应现在的项目. 先从几个概念开始讲解: 一. 什么是Deferred  Deferred 对象 ...

  6. 汇编_指令_CS与DS的区别

    cs是值cpu执行的当前指令的段地址,ds是数据开始的段地址. CS是告诉CPU,去哪个位置找内容当成指令去执行:DS是告诉CPU,去哪个位置找内容当成数据被使用. datastring =ds co ...

  7. 通过socket实现处理多个连接,send和resv都是有数量限制的

    我们现在先来实现,跟一个人来来回回不停的讲电话. 客户端,通过循环来输入多次命令: client.recv(1024)每次只接收1K的内容 服务端来改成多次接收:如果你写成如下的代码: 那么造成的结果 ...

  8. linux c下,从路径名中分离文件名

    首先介绍一些查找字符的函数 1.strrchr 头文件:#include <string.h> strrchr() 函数用于查找某字符在字符串中最后一次出现的位置,其原型为:     ch ...

  9. Windows远程桌面连接CentOS 7

    1. 安装tigervnc-server yum install tigervnc-server 2. 设置vncserver服务器 将默认提供的文件复制到/etc/systemd/system,命令 ...

  10. Java线程状态切换以及核心方法

    1.Java线程状态 1.1 线程主要状态 ①初始(NEW):新创建了一个线程对象,但还没有调用start()方法.②运行(RUNNABLE):Java线程中将就绪(ready)和运行中(runnin ...