ubuntu文件权限解析

简介:

在 Ubuntu Linux 中用源码文件安装软件时经常都会用到chmod命令来更改文件的权限使其在安装时有执行的权限。由于 Ubuntu Linux 默认不能用root账户来登录所以在用chmod命令来更改文件的权限时往往需要结合sudo命令来使用

chmod

Linux/Ubuntu 系统中文件调用的权限分为三级:文件拥有者(u)、群组(g)、其他(o)。用chmod就可以更改文件的权限。chmod是一个相当灵活的命令,对同一个文件的权限的修改可以用多种风格的命令格式来实现。

◆方式一:

语法格式:

 
  1. chmod [-vR] mode 文件名 

参数说明:

mode 权限设置字串,格式为[ugoa] [+-=] [rwx]

u 表示文件的拥有者

g 表示与此文件拥有者属于一个组群的人

o 表示其他人

a 表示包含以上三者即文件拥有者(u)、群组(g)、其他(o)

+ 表示增加权限

- 表示取消权限

= 表示唯一设置权限

r 表示有读取的权限

w 表示有写入的权限

x 表示有执行的权限

-v 显示权限改变的详细资料

-R 表示对当前目录下的所有文件和子目录进行相同的权限更改

例:

我们要将当前目录下ownlinux这个文件的权限修为所有用户拥有该文件的读取、写入、执行的权限。在这里就需要结合sudo命令来使用

 
  1. sucre@sucre-ubuntu:~$ sudo chmod a+rwx ownlinux  
  2.  
  3. [sudo] password for sucre: (此时输入你的密码)  

或者使用 

 
  1. sucre@sucre-ubuntu:~$ sudo chmod ugo+rwx ownlinux  
  2.  
  3. [sudo] password for sucre: (此时输入你的密码)  

命令不一样,但执行后的效果是一样的。

◆方式二:

语法格式: 

 
  1. chmod [-vR] [No] 文件名 

参数说明:

No 三位代表相应权限的数字

-v 显示权限改变的详细资料

-R 表示对当前目录下的所有文件和子目录进行相同的权限更改

可能这种方式对于初学者来说有一定的难度,但这种方法学会后在更改文件权限就变得非常的简单。相信通过我的介绍大家会掌握种方法的:)

首先了解一下读取(r)、写入(w)、执行(x)相应的数字编号,如下图所示

ubuntu_ownlinux_chmod_1 

如果你记住了上图所示的数字和对应的权限就往下边看

刚才已经说过了,[No]参数 是三位代表相应权限的数字。从左向右,第一位数学代表文件拥有者(u)的权限、群组(g)的权限、其他(o)的权限。每一个数字就对应该级用户拥有的权限即为rwx相应的数字之和。这样说可能大家不是很明白,我画了一张表帮助大家了解

如上图可以看出来如果是所有用户拥有该文件的读取、写入、执行的权限就是拥有者(u)的权限(4+2+1=7)群组(g)的权限(4+2+1=7) 其他(o)的权限(4+2+1=7即为777。注意:如果没有读取的权限则”r”相应的数字编号就为”0″,写入(w)、执行(x)同理。

例:

就用刚才方式一的例子,我们要将当前目录下ownlinux这个文件的权限修为所有用户拥有该文件的读取(r)、写入(w)、执行(x)的权限。回顾一下方式一的命令格式。 

 
  1. sucre@sucre-ubuntu:~$  sudo chmod a+rwx ownlinux  
  2.  
  3. [sudo] password for sucre: (此时输入你的密码)  

方式二的命令 

 
  1. sucre@sucre-ubuntu:~$ sudo chmod 777 ownlinux  
  2.  
  3. [sudo] password for sucre: (此时输入你的密码)  

可以看出使用方式二的命令格式简洁明了

如果要让当前目录下ownlinux这个文件的权限修为该文件的拥有者(u)有该文件的读取(r)、写入(w)、执行(x)的权限,群组(g)和其他(o)的用户只有读取(r)和执行(x)的权限,运行以下命令: 

 
  1. sucre@sucre-ubuntu:~$ sudo chmod 755 ownlinux  
  2.  
  3. [sudo] password for sucre: (此时输入你的密码)  

相信通过我的介绍大家都已经对chmod这个命令有一定的了解了吧。我觉得方式二的命令风格一但了解了就很容易掌握,而且方式二的命令风格简单明了。

以上为改变用户

改变群组的命令是

超级用户

 

格式

   chgrp [选项] 组 文件
   或
   chgrp [选项]  --reference=参考文件 文件 
   将每个<文件>的所属组设定为<组>。 

 

参数

   -c, --changes :像 --verbose,但只在有更改时才显示结果。
   --dereference:会影响符号链接所指示的对象,而非符号链接本身。
   -h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
   -f, --silent, --quiet:去除大部分的错误信息。
   --reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。
   -R, --recursive:递归处理所有的文件及子目录。
   -v, --verbose:处理任何文件都会显示信息。 

 

应用说明

该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。<br />文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。 

 

应用实例

   改变/opt/local /book/及其子目录下的所有文件的属组为book,命令如下:
   $ chgrp - R book /opt/local /book 

最后是改变文件用户

 (2) chown
功能:改变文件拥有者
格式:chown [参数]<用户名><文件名>
参数:-R:递归改变目录的拥有者
-f:不显示拥有者的详细信息
实例:1)# chown user f1
2)# chown -R user1 /d1
(3)umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:# umask 044
计算公式:目录:777-umask



本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/386810,如需转载请自行联系原作者

相关文章
|
Ubuntu 网络协议
ubuntu配置方法DNS
ubuntu配置方法DNS
ubuntu配置方法DNS
|
4月前
|
网络协议 Ubuntu 数据安全/隐私保护
百度搜索:蓝易云【Ubuntu中解决E:Failed to fetch问题(修改DNS)】
现在,你可以尝试再次运行更新或安装软件包的命令,应该不再遇到 "E: Failed to fetch" 错误。通过修改DNS设置,你将使用新的DNS服务器解析域名,提高了系统连接互联网的稳定性和可靠性。
119 4
|
域名解析 网络协议
【亲测有效】Ubuntu18.04 sudo apt update无法解析域名的解决方案
【亲测有效】Ubuntu18.04 sudo apt update无法解析域名的解决方案
2901 1
|
网络协议 Ubuntu
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
216 0
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
|
安全 Shell Linux
用户、组和文件权限解析_学习笔记
时间:2017.11.16 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
908 0
|
网络协议 Ubuntu 开发工具
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
今天查看了一下自己电脑里的ubuntu14.04系统,发现无法上网,于是ping了一下百度,出现unknown host,查了一下/etc/resolv.conf中的DNS地址,却发现我之前的修改被清空了: 继续在该文件上添加DNS配置信息: nameserver 114.114.114.114 nameserver 8.8.8.8 nameserver 8.8.4.4 重启系统,再打开DNS配置文件,发现之前的添加“诡异”的消失了。
1756 0
|
网络协议 Ubuntu
如何在 Ubuntu 16.04 服务器上配置内网 DNS 服务
DNS 1. 简介   本文使用 BIND9,用尽量少的步骤,搭建出一个可用的内网 DNS 服务。另外要说明的一点是,本文不仅适用于 Ubuntu 16.04,也使用其后的 Ubuntu 系统(截止到目前位置,最新的 Ubuntu server 版本是 18.04,之后的版本无法保证)。
2486 0
|
网络协议 Ubuntu Linux
Ubuntu系统下静态DNS配置详解
1.DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。
2002 0
|
缓存 网络协议 Ubuntu
清除Ubuntu的DNS缓存
DNS缓存可以加快网站IP的解析速度,所以大多数系统都支持DNS缓存。DNS的缓存时间是24小时,也就是每隔24小时DNS缓存将被自动清除。
2442 0
|
网络协议 Ubuntu
ubuntu 15.10 设置静态ip 分配固定ip 设置dns 设置网关 命令行配置ip 固定ip不生效怎么办
要用到的文件: 配置接口信息 /etc/network/interfaces 配置内容: auto eth0 iface eth0 inet static address 192.168.216.
1304 0