首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >看了还想看—普通权限及umask

看了还想看—普通权限及umask

作者头像
小小科
发布于 2018-05-04 03:59:16
发布于 2018-05-04 03:59:16
1.3K0
举报
文章被收录于专栏:北京马哥教育北京马哥教育

权限在操作系统是尤为重要的,无论是windows和linux中,都少不了权限这么一说,权限的大小决定了你能操作些什么,在linux中,权限对目录和文件的意义是不同的,并且还有特殊权限。今天,我们就来说说一说权限在linux中的重要性以及权限操作命令。

权限:

权限决定用户对文件或目录的使用范围,权限如果设定的不恰当会带来很大安全隐患。其中root的权限最大,能做任何事,之所以设定root用户权限为最大是为了方便与管理用户或系统重要信息的,而不是在工作中用来维护服务器的,所以在生产环境中基本没人拿root来操作,只是必要时才使用,因为root用户带来的后果是非常严重的。下面先来说说权限位,再说权限对于文件或目录的作用

我们先来看一下权限位:

使用`ls -ld / ` 命令查看根目录的文件类型,再做分析

[root@localhost ~]# ls -ld /

dr-xr-xr-x. 24 root root 4096 Jul 25 11:43 /

其中第一段(dr-xr-xr-x. ),里面有11个字符位,第一位(d)为文件类型,d 表示为目录,紧接着为(r-xr-xr-x),里面有九个字符,而每三个字符又分为一个独立的权限位。

分别代表为:

第一个三个字符(r-x)表示对于此目录属(owner)的操作权限;

第二个三个字符为(r-x),表示针对于此目录的属组(group)的操作权限;

第三个三个字符也为(r-x),它则表示为除属主属组以外的其他用户(other)的操作权限。

所以,这三段权限一共9个字符分别针对于属主、属组、其他用户

(dr-xr-xr-x. )这其中之后的 " . " 则表示特殊控制权限位,有则表示为" + ",无则表示为" . "

(dr-xr-xr-x. 24 root root 4096 Jul 25 11:43 / ) 此中两个root分别依次代表属主和属组,其他用户则表示属主属组除外的的用户。

下面来细分一下(rwx)各代表的含义,而每三位(rwx)这表示为一组权限,每一位权限对于文件的和目录的含义又是不同的。

r=read //读

w=write //写

x=executable //执行

对文件的含义:

r(可读权限):可以使用类似cat等命令查看其文件的内容

w(可写权限):可以编辑或删除其文件

x(可执行) :可以运行此文件

对目录的含义:

r: 可以对此目录查看目录内的文件内容,如 ls

w:可以在此目录创建文件或目录,但必须有x权限的前提下

x:可以使用cd切换进此目录或 ls -l 查看目录内文件的详细信息

而每一位权限都可已使用八进制来表示,每三位为一组;下面来看一下怎么表示的:

一组权限为rwx,用八进制来表示一下; 注意:此排序是不能乱排序的。

权限 二进制 八进制

rwx 111 7

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

如此一来,则每三位权限为一组就可以直接用数字来表示了,上面的 / 的权限用八进制表示则为555 吧! 慢慢去练习吧!

说了那么多,你应该对权限位和用八进制表示权限有了了解吧!

怎么修改文件或目录的权限:

文件和目录的权限其含义则是不同的,我们对文件上的三组九位权限进行设定就可对用户进行控制。

更改文件或目录权限命令

chmod :更改权限

更改权限并不是任何人都可以更改的,root除外,其余用户只能更改属主为自己的文件或目录的权限

chmod有4种更改方式,分别为赋权、授权、八进制更改和参照文件更改。

要更改指定的用户或组或其他用户的权限,有几类用户,则表示为:

o(other):更改其他用户权限

g(group):更改属组权限

u(user) : 更改属主权限

a(all) :更改所有用户权限(以上三种一起更改权限)

chmod权限表示法:

1.赋权表示法

用 “=”来进行赋权更改,所谓赋权更改就是直接更换其原有的权限,直接更改为指定的权限。

2.授权表示法

用 “ + ” “ – ” 来进行授权更改,其含义为在原有的权限上增加或减少权限

3.八进制表示法

用八进制 如:“777” 直接对目录或文件进行更改

4.参照文件更改

使用选项“ –reference=/SOMEFILE ”来进行更改,其含义为参照指定文件的权限来对当前指定文件进行更改,其权限则和参照的文件一样。

注意:第一种和第二种可以只针对其中一类用户进行更改,第三种和第四种则不能单独更改一类用户。

chmod使用:

chmod [OPTION]… MODE[,MODE]… FILE… //

此用法针对赋权表示法和授权表示法使用

1.赋权表示法使用

#chmod u=rx /etc/passwd

//这表示改变/etc/passwd文件的属主权限为rx,其中要更改的权限rwx顺序可以不同,也可以使用任意一类用户进行授权

2.授权表示法

//这表示将/etc/passwd文件的属主权限减去“x”执行权限 其中要更改的权限rwx顺序可以不同 ,也可以使用任意一类用户进行授权

chmod [OPTION]… OCTAL-MODE FILE…

八进制表示法

#chmod 777 /etc/passwd

//表示对passwd文件的三类用户(属主、属组、其他用户)的权限都设置成为777(每一类用户的权限都为rwx)当然可以更改为其他的,自行转换

chmod [OPTION]… –reference=RFILE FILE…

参照文件更改

#chmod --reference=/etc/inittab /etc/passwd

//表示将/etc/passwd文件的权限设定为和inittab文件一样的权限, 前面一个文件为被参照的文件,后一个为被修改的文件

注意:如果对目录进行更改权限时,如果也要修改目录下的文件和目录一样的权限,则使用 -R 选项,代表递归修改目录下的文件,以上所有方法都可加R选项。

注意:在更改时后面的作用文件或目录可以是多个

更改文件或目录的属主属组

chown:改变文件属主属组

修改文件或目录的属主和属组,root用户可以对所有文件或目录进行属组属主更改,普通用户只能更改属主是自己的才能使用该命令,该命令也可以使用参照文件更改法。

使用方法:

1.chown [OPTION]… [OWNER][:[GROUP]] FILE…

改变文件的属主属组,中间用冒号分割,后面为要作用的文件

#chown user1:group1 /etc/passwd

// 将passwd文件的属主修改为user1,属组修改为group1

2.chown [OPTION]… –reference=RFILE FILE…

#chown --reference=/etc/inittab /etc/passwd

//表示将/etc/passwd文件的属主属组设定为和inittab文件一样的属主属组, 前面一个文件为被参照的文件,后一个为被修改的文件

3.如果对目录进行更改属主属组时,如果也要修改目录下的文件和目录一样的属主属组,则使用 -R 选项,代表递归修改目录下的文件,所有方法都可加R选项

注意:第一种方法更改文件或目录的属主属组有一些小技巧:

1.如果我们想对文件只修改属组时,则直接使用冒号+属组名

#chown :magedu /etc/fstab

//只对该文件进行属组更改,属主不变

2.如果我们想对文件只修改属主时,直接写上属主用户名即可

#chown root /etc/fstab

//修改该文件的属主为root属组不变

注意:在更改时后面的作用文件或目录可以是多个

针对于文件或目录的属组还有命令

chgrp:更改组

chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。也可以使用参照文件更改法更改

chgrp [OPTION]… GROUP FILE…

#chgrp magedu /testdir/magedu.txt

//将文件的属组更改为指定的组名,其中组名可用其GID代替

chgrp [OPTION]… –reference=RFILE FILE…

#chown --reference=/etc/inittab /etc/passwd

//表示将/etc/passwd文件的属组设定为和inittab文件一样的属组, 前面一个文件为被参照的文件,后一个为被修改的文件

注意:在更改时后面的作用文件或目录可以是多个。

很多人都没有注意到当我们在创建文件或目录时都会自动设有权限,root用户默认创建文件的权限是644,目录权限默认是755,普通用户创建文件是默认是664,目录默认权限是775,但这些权限是怎么规定的呢?是谁在作怪呢?

下面我们就来说一下新建文件或目录时的默认权限。

在命令行输入umask即可看到返回的值,这是什么呢?没错,就是umask(反掩码)值在作怪,就是它决定了用户在新建文件或目录时的默认权限,配置文件在/etc/bashrc,这里面定义了我们在创建文件或目录时的权限

[root@localhost testdir

0022

他是怎么计算的呢?首先,系统规定,所有用户在创建文件是默认是使用666为权限,目录是777为权限,然后当用户创建文件或目录时会和相应的umask值进行减法运算,最后的出的结果即为文件或目录的权限。

要注意,umask值是/etc/bashrc里定义的,他是用一个判断语句来决定的,当登录的用户UID小于0时使用022作为umask值,否则使用002作为umask值,然后在与系统默认创建文件和目录的值(666/777)进行减法运算,最后得出的就是文件或目录的值。

//这就是判断umask值的if else语句

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

怎么减呢?没错就是当系统判断完之后给出umask值来减

例如:当前用户为root,umask为022(第一个0不用管),然后我们创建一个文件,查看其权限是644,当我们创建目录时其默认权限是755,怎么算的呢,系统默认创建文件是权限是666然后减去当前用户umask值,就得到创建文件的权限值。目录则是777减去umask值得出755就是目录的权限值。so…that's it.

[root@localhost testdir]# umask

0022

[root@localhost testdir]# touch umask.txt

[root@localhost testdir]# ls -l umask.txt

-rw-r--r-- 1 root root 0 Jul 25 16:49 umask.txt

[root@localhost testdir]# ls -ld umask.dir

drwxr-xr-x 2 root root 4096 Jul 25 16:51 umask.dir

我们来看一下普通用户创建文件和目录时的权限,看一看是不是我们说的这样!

//普通用户umask值为002,然后用系统默认的666和777减去umask值之后就得出文件和目录的权限值(664、775)

[magedu@localhost ~]$ umask

0002

[magedu@localhost ~]$ touch umask.txt

[magedu@localhost ~]$ ls -l umask.txt

-rw-rw-r-- 1 magedu magedu 0 Jul 25 16:55 umask.txt

[magedu@localhost ~]$ mkdir umask.dir

[magedu@localhost ~]$ ls -ld umask.dir/

drwxrwxr-x 2 magedu magedu 4096 Jul 25 16:55 umask.dir/

那么系统为什么要经过umask值来创建文件或目录呢?

因为系统默认创建文件或目录是权限是666和777,这样岂不是不太不安全,所有文件和目录权限都那么大万一使用root用户误操作不就完蛋了。所以引入umask值来控制用户在创建文件或目录是的权限问题。

umask的定义与使用:

1.在命令行中直接输入umask + 值 就会定义当前的用户创建文件或目录是更改了原有的权限。

[root@localhost testdir]# umask

0022

[root@localhost testdir]# umask 002

[root@localhost testdir]# umask

0002

//当我们再创建文件或目录时权限就不是原来的权限的。因为umask值改变了。

[root@localhost testdir]# touch umask2.txt

[root@localhost testdir]# ls -l umask2.txt

-rw-rw-r-- 1 root root 0 Jul 25 17:16 umask2.txt

注意:我们在命令行中定义的umask值使用的是数字,我们也可以使用直接定义的方法“umask u=rw,g=r, o= ” 系统umask值会自动转换为137,系统使用777减去给定的各类权限的八进制数,得到umask码。这里需要再次注意的是当我们更改umask值之后如果文件默认的666减去我们更改umask值得到的结果如果有奇数,则统一加1,目录则不用管。

2. 把umask值写入配置文件中。

可以调用umask -p 选项的执行结果来重定向追加到配置文件。

[root@localhost testdir]# umask -p

umask 0033

//使用umask -p 查看当前的umask值并显示umask值本身的 字符串,这不就可以让我们调用了吗?

[root@localhost testdir]# umask 022 //定义umask值为022

[root@localhost testdir]# umask -p //用-p 显示值

umask 0022

[root@localhost testdir]# echo `umask -p` >> /etc/bashrc //使用echo 调用命令的执行结果然后追加到配置文件中(这里也可以更改为家目录的文件中)

[root@localhost testdir]# source /etc/bashrc //重新读取配置文件让umask生效

[root@localhost testdir]# umask

0022

3.使用umask -p 将umask值以rwx方式显示

[root@localhost testdir]# umask

0022 //原来的值

[root@localhost testdir]# umask -S

u=rwx,g=rx,o=rx //将原来的值用777减去之后转换为rwx形式

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux基础(day8)
2.14 文件和目录权限chmod 文件属性 [root@localhost ~]# ls -l 总用量 12 -rw-r--r--. 1 root root 0 10月 25 16:06 1.txt -rw-------. 1 root root 1422 10月 21 00:17 anaconda-ks.cfg -rw-r--r--. 1 root root 0 10月 25 16:06 1.txt -表示文件的类型,rw-r--r--后面的九位,表示文件的权限 r (read)表示可
运维小白
2018/02/06
1.1K0
Linux 文件权限、系统优化(初识)
ps:若用 chmod 4755 filename 可使此程序具有 root 的权限。
HammerZe
2022/03/25
1.9K0
Linux 文件权限、系统优化(初识)
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
Linux下文件/目录的权限和归属 访问权限 读取(r): 允许查看文件内容,显示目录列表 写入(w): 允许修改文件内容,允许在目录中新建、删除、移动文件或者子目录 可执行(x): 允许运行程序,切换目录 无权限(-): 没有权限 权限介绍 rw-r--r-- . 1 root root 1258 Jun 3 2019 initial-setup-ks.cfgd rwxr-xr-x . 2 root root 6 Jun 3 2019 Music - 代表普通文件 d 代表目录 c
ruochen
2021/02/07
1.1K0
Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理
第七章 权限管理
Linux中,对于用户使用系统资源,如:CPU、内存、磁盘空间等,都可以做出限制,需要在相关的配置文件中做设置:
晓天
2019/07/04
7690
第七章  权限管理
Linux(二)用户和文件权限
什么是liunx用户 :本质就是可以登录系统并使用系统资源(如运行程序、操作文件)的实体。使用操作系统的人都是用户。
落幕
2025/06/11
1210
Linux(二)用户和文件权限
掌握Linux文件权限,看这篇就够了
#前言 我们知道,无论什么东西,涉及到安全性的,比如文件、文件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的文件权限。
老油条IT记
2020/09/04
2.7K0
掌握Linux文件权限,看这篇就够了
Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
Linux文件及目录的权限设定,除了我们孰知的读写执行(rwx)之外,还有一些特殊的权限设定用来满足特定的目录。这些特殊权限的设定主要是SUID,SGID以及SBIT。这几个值并非一个单独的rwx,而是在文件或目录上的x权限上做动作,来达到实现文件或目录特殊权限的目的。本文主要描述这3个特殊权限的用法以及umask。
Leshami
2018/08/13
2.7K0
Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
10. Linux 介绍与工具使用(七:查看、创建、编辑用户)
拥有了自己的服务器,其中很重要的一步就是配置用户。毕竟要都是root 的话,删库跑路警告!
北野茶缸子
2021/12/17
5430
10. Linux 介绍与工具使用(七:查看、创建、编辑用户)
Linux笔记6.权限及用户
每个用户对其拥有的文件具有控制权,同时,用户又属于由一个或多个用户组成的用户组。用户组成员由文件和目录的所有者授予对文件和目录的访问权限。如此设计可保证每个用户的操作是独立的,不会影响到其他用户。 i
章鱼喵
2018/06/27
8270
Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
IT可乐
2018/01/04
5.8K0
Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
Linux系统安全 | Linux下的用户、组和权限
注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0
谢公子
2022/01/19
3.2K0
Linux系统安全 | Linux下的用户、组和权限
Linux 权限管理
介绍一下 Linux 的权限管理。Linux 是多用户的操作系统,允许多个用户同时登录和工作,Linux 权限是操作系统用来限制不同用户对资源的访问机制。这里暂且将 Linux 中的权限分为三类:
OwenZhang
2021/12/08
3.7K0
linux RWX权限的解读
Linux的权限不是很细致,只有RWX三种 r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有 浏览 目录的权限。 w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。 x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有 进入 目录的权限。 1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。 2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。 3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
全栈程序员站长
2022/07/01
3.8K0
100个linux命令(3)-权限管理
文件权限附属在文件所有者 u,文件所属组 g 和其他用户o 上。使用字符修改权限需要指明操作谁的权限,另外还要使用"+"或"-"指定增加权限还是删除权限,也可以使用"="。
懒人的小脑
2019/01/09
1K0
100个linux命令(3)-权限管理
Linux权限管理
之前在用户管理中提到用户和组的概念,服务器添加多账户的作用之一是可以针对不同用户分配不同的权限,从而根据不同权限限制用户可以访问到的系统资源。那么这次就来说一下Linux权限管理的相关内容,这部分也是非常重要的。如下。
reload
2024/02/04
4770
Linux权限管理
轻松掌握 Linux 权限(一文搞懂)
要从普通⽤户user切换到root⽤⼾则使⽤su root(root可以省略),此时系统会提⽰输⼊root⽤户的⼝令。
用户11375356
2025/05/09
2930
轻松掌握 Linux 权限(一文搞懂)
Linux系统文件权限管理
Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作,本章主要内容就是围绕着权限来讲解的,我会讲解Linux系统中的所有常用权限包括,普通权限/隐藏权限/特殊权限/ACL/SUDO/SELinux,等的设置与使用技巧.
王 瑞
2022/12/28
4.9K0
默认权限umask、文件系统权限、特殊权限
该文章介绍了如何通过执行top命令来查看Linux系统的实时性能,包括CPU、内存、I/O等各方面的信息。此外,还介绍了如何使用top命令来查看Linux系统中各个进程的性能,并给出了常见进程的PID和命令名称。同时,还讲解了如何通过kill命令结束进程,以及如何使用top命令查看Linux系统中各个进程的实时性能。
惨绿少年
2017/12/28
4.2K0
文件基本权限与特殊权限
默认权限需要换算成字母再相减,所有建立文件之后的默认权限,为666减去umask的值
全栈工程师修炼指南
2022/09/28
5.2K0
文件基本权限与特殊权限
【Linux】掌握Linux系统编程中的权限与访问控制
✨Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情
大耳朵土土垚
2024/05/07
2850
【Linux】掌握Linux系统编程中的权限与访问控制
相关推荐
Linux基础(day8)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档