Linux——文件/目录的权限管理

Posted 陌上花开,静待绽放!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——文件/目录的权限管理相关的知识,希望对你有一定的参考价值。

文章目录

1. 查询用户登录

1.1 查询用户所属组group

groups命令

● 查询用户所属的组

groups命令格式:groups [用户名]

groups [用户名]命令:查看指定用户所属组

[root@clr ~]# gpasswd -a zhangsan root  #将用户zhangsan添加到root组中
正在将用户“zhangsan”加入到“root”组中
[root@clr ~]# gpasswd -a zhangsan mygirl  #将用户zhangsan添加到mygirl组中
正在将用户“zhangsan”加入到“mygirl”组中

[root@clr ~]# groups zhangsan  #查看用户zhangsan所属的组
zhangsan : zhangsan root mygirl

1.2 查询用户身份标识id

id命令

查询用户身份标识

id命令命令格式:id [用户名]

id [用户名]命令:查看指定用户的身份标识

[root@clr ~]# id zhangsan  #查看用户zhangsan的身份标识
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),0(root),2345(mygirl)

1.3 查询用户账号登录属性finger

● 查询用户账号的登录属性

注意:

需要先进行安装finger软件包

finger命令格式:finger [用户名]

finger [用户名]命令:查询指定用户账户的登录属性

[root@clr /etc/yum.repos.d]# finger zhangsan  #查询用户账户zhangsan的登录属性
Login: zhangsan       			Name: 
Directory: /home/zhangsan           	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

[root@clr /etc/yum.repos.d]# finger gaozhenyang #查询用户账户gaozhenyang的登录属性
Login: gaozhenyang    			Name: 
Directory: /home/gaozhenyang        	Shell: /bin/bash
Last login 日 42 20:28 (CST) on pts/1
No mail.
No Plan.

1.4 查询已登录主机用户信息w、who、user

w 、 who、users命令

● 查询已登录到主机的用户信息

w、who、users命令:查询登录到主机的用户信息

[root@clr ~]# w  #查询登录到主机的用户信息有3个
 23:35:17 up  6:27,  3 users,  load average: 0.02, 0.08, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               20:47   ?xdm?   3:38   0.35s /usr/libexec/gnome-session-binary --session gn
root     pts/1    192.168.80.1     19:45    2:47m  0.43s  0.16s -bash
root     pts/2    192.168.80.1     20:47    5.00s  0.62s  0.07s w

[root@clr ~]# who  #查询登录到主机的用户信息有3个
root     :0           2023-04-02 20:47 (:0)
root     pts/1        2023-04-02 19:45 (192.168.80.1)
root     pts/2        2023-04-02 20:47 (192.168.80.1)

[root@clr ~]# users #查询登录到主机的用户名
root root root

2.文件/目录的权限和归属

访问权限

● 读取r:允许查看文件内容显示目录列表

● 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

● 可执行x:允许运行程序、切换目录

归属(所有权)

● 属主:拥有该文件或目录的用户帐号

● 属组:拥有该文件或目录的组帐号

2.1 设置文件和目录的权限chmod

chmod [nnn] 文件或目录命令:修改指定文件或目录的权限

[root@clr ~]# touch clr.txt  #创建文件clr.txt
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 root root    0 43 00:06 clr.txt  #clr.txt默认文件权限为744
[root@clr ~]# chmod 755 clr.txt  #修改clr.txt文件权限为755
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod a+r clr.txt #给所有用户赋予对文件clr.txt的可读权限
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt

[root@clr ~]# chmod +x clr.txt   #给所有用户赋予对文件clr.txt的可执行权限
[root@clr ~]# ll
总用量 12
-rwxr-xr-x. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod +w clr.txt #给所有用户赋予对文件clr.txt的可写权限(写的情况比较特殊,需要指定对所有用户a+w,而读和可执行的情况,则直接+r 或者 +x 即可)
[root@clr ~]# ll
总用量 12
--w-------. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod go+r clr.txt  #给组和其他用户赋予对文件clr.txt的可读权限
[root@clr ~]# ll
总用量 12
----r--r--. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod ug+rw clr.txt  #给用户所有者和所属组赋予对文件clr.txt的可读可写权限
[root@clr ~]# ll
总用量 12
-rw-rw-r--. 1 root root    0 43 00:06 clr.txt
[root@clr ~]# chmod ugo=rw clr.txt  #给用户所有者和所属组以及其他用户赋予对文件clr.txt的可读可写和可执行权限
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 root root    0 43 00:06 clr.txt

chmod -R [nnn] 目录命令:递归修改指定目录下所有子目录权限

2.2 设置文件和目录的归属chown

[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 root root    0 43 00:06 clr.txt

[root@clr ~]# chown zhangsan clr.txt #修改文件clr.txt的属主为zhangsan
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 zhangsan root    0 43 00:06 clr.txt
root@clr ~]# chown :admin1 clr.txt #修改文件clr.txt的属组为admin1
[root@clr ~]# ll
总用量 12
-rw-rw-rw-. 1 zhangsan admin1    0 43 00:06 clr.txt

chgrp 【属组##】文件或目录:修改文件或目录的属组为##

[root@clr ~]# touch demon  #创建demon文件
[root@clr ~]# chgrp xiaozhang demon  #修改文件demon的属组为xiaozhang
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 root     xiaozhang    0 43 14:01 demon
[root@clr ~]# chown xiaozhang.xiaowang demon #修改文件demon的属主为xiaozhang,属组为xiaowang
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 xiaozhang xiaowang    0 43 14:01 demon
[root@clr ~]# touch abc.txt #创建文件abc.txt
[root@clr ~]# chown zhangsan:  abc.txt  #修改文件abc.txt的属主和属组都为zhangsan(当属主和属组都为同一用户时,可以使用简写形式zhangsan:效果和zhangsan:zhangsan相同)
[root@clr ~]# ll
总用量 12
-rw-r--r--. 1 zhangsan  zhangsan    0 43 14:14 abc.txt

2.3 特殊权限SBIT(t)

SBIT权限只能用于对目录进行设置,使指定目录中的文件或者目录只有所有者才能删除文件或者目录

没有添加SBIT权限的情况

[root@clr /opt]# mkdir test  #root用户创建test目录
[root@clr /opt]# chmod 777 test  #修改目录test的权限为777
[root@clr /opt]# ll
总用量 2104
drwxrwxrwx. 2 root        root              6 43 16:02 test

[root@clr /opt]# su xiaocai #切换到xiaocai用户
[xiaocai@clr /opt]$ touch test/abc.txt  #xiaocai用户在test目录下创建文件abc.txt
[xiaocai@clr /opt]$ ll test
总用量 0
-rw-rw-r--. 1 xiaocai xiaocai 0 43 16:05 abc.txt  

[xiaocai@clr /opt]$ su gaozhenyang #切换到gaozhenyang用户
密码:
[gaozhenyang@clr /opt]$ rm -f test/abc.txt  #在该用户下删除test目录下的abc.txt
[gaozhenyang@clr /opt]$ ll test #查看结果,删除成功
总用量 0

添加SBIT权限的情况

[root@clr /opt]# chmod 1777 test  #1777中的1代表添加SBIT权限,并修改test目录的权限为777
[root@clr /opt]# ll
总用量 2104
drwxrwxrwt. 2 root        root              6 43 16:06 test

[root@clr /opt]# su xiaocai #切换到用户xiaocai
[xiaocai@clr /opt]$ touch test/abc.txt  #用户xiaocai在test目录下创建文件abc.txt
[xiaocai@clr /opt]$ ll
总用量 2104
drwxrwxrwt. 2 root        root             21 43 16:17 test  #第一个字段中最后一个t代表添加了添加SBIT权限

[xiaocai@clr /opt]$ su gaozhenyang #切换到gaozhenyang用户
密码:
[gaozhenyang@clr /opt]$ rm -f test/abc.txt  #其他用户不允许执行删除操作
rm: 无法删除"test/abc.txt": 不允许的操作

[gaozhenyang@clr /opt]$ su xiaocai  #再次切换到xiaocai用户
密码:
[xiaocai@clr /opt]$ rm -f test/abc.txt  #xiaocai用户可以执行删除操作
[xiaocai@clr /opt]$ ll test
总用量 0

2.4 设置目录和文件的默认权限umask

umask作用

控制新建的文件或者目录的权限

新建的文件或者目录的权限为默认最大权限减去umask

普通文件的最大默认权限为6(rw),目录的最大默认权限为7(rwx)

umask的默认权限002

umask设置: umask 022

umask查看: umask

[xiaocai@clr /opt]$ cd test  #切换到test目录
[xiaocai@clr /opt/test]$ ll
总用量 0
[xiaocai@clr /opt/test]$ touch 1.txt #在test目录中创建文件1.txt
[xiaocai@clr /opt/test]$ mkdir abc  #在test目录中创建目录abc
[xiaocai@clr /opt/test]$ ll
总用量 0
-rw-rw-r--. 1 xiaocai xiaocai 0 43 16:36 1.txt #文件1.txt的权限为664(由来:文件默认权限666-002=664)
drwxrwxr-x. 2 xiaocai xiaocai 6 43 16:36 abc  #目录abc的权限为775(由来:目录默认权限777-002=775)
[xiaocai@clr /opt/test]$ umask  
0002   #文件和目录的umask权限为002

修改umask 000

[xiaocai@clr /opt/test]$ rm -rf * #删除test目录下的所有文件和目录
[xiaocai@clr /opt/test]$ ll
总用量 0
[xiaocai@clr /opt/test]$ umask 000 #修改umask的权限为000
[xiaocai@clr /opt/test]$ touch 1.txt
[xiaocai@clr /opt/test]$ mkdir abc
[xiaocai@clr /opt/test]$ ll
总用量 0
-rw-rw-rw-. 1 xiaocai xiaocai 0 43 16:46 1.txt #新创建的1.txt文件权限为666
drwxrwxrwx. 2 xiaocai xiaocai 6 43 16:46 abc   #新创建的abc目录权限为777

查询系统中是否存在某个用户(grep、id)

[xiaocai@clr /opt/test]$ grep zhangsan /etc/passwd #若能过滤中相关信息,则证明该用户存在,否则则表示系统中不存在该用户
zhangsan:x:2004:2004::/home/zhangsan:/bin/bash

[xiaocai@clr /opt/test]$ id zhangsan #查询系统中zhangsan的id号信息
uid=2004(zhangsan) gid=2004(zhangsan)=2004(zhangsan),0(root),2345(mygirl)

Linux文件目录权限管理

  开始我们服务的第一节内容文件属性与权限,我们知道Linux下一切皆文件。所以我把这个单独的讲解,什么是文件的属性呢?我这里用通俗点儿话给大家说下:一个文件特有的性质,其他文件所没有的,就是文件的属性。注意这里文件属性与文件类型是两个不同的概念。文件类型是根据不同类型的文件进行的划分,文件属性是单个文件所具有的特性。前面是一类后面是一个。概念我们弄清楚啦。现在我们就来看看文件属性包含哪些内容。技术分享

一个文件的属性包含以下内容:文件的类型,文件的打开方式,文件的大小,位置,文件的创建时间,修改时间,访问时间,只读,隐藏,存档。技术分享

有童鞋就说这个跟我们学习貌似没有多大的关系吧!我在这里可以负责任的告诉大家有,在关键的时候就有,我在这里说个简单的例子:某天公司的服务器遭黑客攻击了,不知道怎么的客户打开网站,就会有***广告页面弹出。这时我们就可以准确的判断是我们的网页文件被修改了,具体哪个文件被修改了呢?那就要查看我们的网页文件属性啦!看下最近的修改时间,找到被修改的文件,然后查看文件内容,查找出被修改的内容。然后删除黑客插入的内容。对就是这么简单!我们现在知道黑客在我们的网站插入内容,是更改了我们的文件,我们通过文件属性可以判断出来的,但是大家想过没黑客要在我们的服务器更改是不是要有这个文件的相应的权限。这就是我们接下来要说的问题啦—“权限技术分享

什么是权限呢?我们每个人都有银行卡对吧!并且我们的银行卡只有我们自己才能使用。这就是权限。同理我们的文件就好比那个银行卡,我们对文件的操作就是我们的权限。我们个人银行卡我们个人有使用权限,是不是这个银行卡属于我们个人的呀。同理文件也是有归属的,只不过Linux文件的归属划分三类:属主,属组,其他。属主就是这个文件是谁的,属组就是这个文件也属于哪个组的,其他就是外人对这个文件的权限。这个其他很容易理解,我们的银行卡我们个人可以使用,但是当我们拿出来的时候是不是别人有可以看的权限啊。就是这么个意思。属组就好比我们的亲人,我们可以给他保管或使用的权限。这样说想必大家应该容易理解吧!如果大家实在不理解,就先弄清我们银行卡原理在套用文件权限概念。技术分享

现在我们知道了对于用户划分我们有属主,属组,其他,三类划分。每类我们都可以给他相应的权限。我们怎么查看一个文件的权限呢?看下面:

技术分享

从上面看出我们用ls –l命令就可以查看出文件的权限信息。这个格式我们一定熟记,前一个是代表文件类型一栏,Linux下常用的文件类型有

技术分享技术分享

Linux权限的分类与表示方法有

技术分享技术分享从上面我们知道了权限的表示方法,那我们怎么更改一文件的权限呢?要想知道怎么更改文件权限,我们首先要知道Linux下的用户表示方法:

技术分享

现在权限和用户的表示方法我们都知道了,接下来就是我们更改权限的操作啦如下:

技术分享

现在我不想给他们哪些权限,那怎么去掉权限呢?看下面

技术分享

如果想同时给他们相同的权限就如下

技术分享

我们开始说了权限还可以用数字来表示,读的权限表示方法是4写的权限表示方法是2执行的权限表示方法是1.如果一个用户同时拥有这三种权限他们的之和是不是7啦,同理属组也是的。看看下面操作

技术分享

通过上面我们可以知道用数字表示方法也可以更改文件的权限如果不想要某个位置上的权限怎么办呢?同样的我们就减去即可如下

技术分享

到了吧!权限的更改有两种方法,都是小学运算踢是不是很简单呀!到这里文件的权限修改已不是问题,怎么更改一个文件属主和属组呢?同样也很简单看下面

技术分享

如果是更改文件属组呢看下面

技术分享

看到了吧同样也很简单,我总结下技术分享

更改用户权限:chmod 用户+-权限文件或目录名

更改文件属主命令:chown 用户目录或文件名

更改文件属组命令:chgrp 目录或文件名

我们说了那么多,现在我们来告诉下大家我们用户,组相对应的文件存放位置,前面我们说了/etc目录是配置文件目录,我们创建用户和组是不是就等于修改文件啦!所以用户文件和组文件就在/etc下面

技术分享

些文件我们一定要知道,为什么呢?因为他涉及到我们后面的系统优化。对于以后的学习我在这里想说一点儿个人经验,在本节开篇我用了银行卡原理来讲解文件属性与权限。最终目的是想大家弄清哪些词汇后面的意思及原理,这样大家操作起来就非常容易,如果连原理都不懂,你后面的操作那就没有任何意义,所以大家一定要弄懂我说的每个原理,这是我们操作的基础。本篇就到这里了大家只要掌握以上内容,我们文件与录的权限就不是问题啦!技术分享


本文出自 “乐乐快跑” 博客,请务必保留此出处http://10851431.blog.51cto.com/10841431/1744703

以上是关于Linux——文件/目录的权限管理的主要内容,如果未能解决你的问题,请参考以下文章

权限管理(Linux运维)

Linux运维笔记20180001-文件与目录管理权限

Linux运维初级教程文件及目录权限

Linux 运维基础

linux云自动化运维基础知识5.6(用户管理及文件权限)

Linux系统运维与架构设计