admin管理员组文章数量:1794759
Linux——(关于权限常见的3个问题)
1.修改文件或者目录的拥有者和所属组
1.1chown指令
功能:修改文件的拥有者 格式:chown 【参数】用户名 文件名 实例:
代码语言:javascript代码运行次数:0运行复制[root@iZbp19b5lvg8xtpf1tzrenZ test]# ll
total 0
-rwxr-x--- 1 root root 0 Apr 26 11:59 test.txt
[root@iZbp19b5lvg8xtpf1tzrenZ test]# chown yui test.txt
[root@iZbp19b5lvg8xtpf1tzrenZ test]# ll
total 0
-rwxr-x--- 1 yui root 0 Apr 26 11:59 test.txt
可以看到我成功把拥有者从root改为yui。 注意:如果不能改成不存在的用户。
代码语言:javascript代码运行次数:0运行复制[root@iZbp19b5lvg8xtpf1tzrenZ test]# chown hehe test.txt
chown: invalid user: ‘hehe’
[root@iZbp19b5lvg8xtpf1tzrenZ test]# ll
total 0
-rwxr-x--- 1 yui root 0 Apr 26 11:59 test.txt
1.2chgrp指令
功能:修改文件的所属组 格式:chgrp 【参数】用户名 文件名
2.常见的权限三个问题
2.1对应一个目录,如果要进入,需要什么权限?
对应这个问题我们可以利用控制变量法。当然,我们要先切换成普通用户。
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ whoami
yui
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 375 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ ll
total 8
d-wxrwxr-x 2 yui yui 4096 Apr 25 19:56 newdr
-rw-rw-r-- 1 yui yui 5 Apr 25 19:57 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 575 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ ll
total 8
dr-xrwxr-x 2 yui yui 4096 Apr 25 19:56 newdr
-rw-rw-r-- 1 yui yui 5 Apr 25 19:57 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 675 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ ll
total 8
drw-rwxr-x 2 yui yui 4096 Apr 25 19:56 newdr
-rw-rw-r-- 1 yui yui 5 Apr 25 19:57 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr
bash: cd: newdr: Permission denied
通过控制变量的方法,我们发现了进入目录的权限为x,即可执行权限。
观察r与w的作用
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 377 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
ls: cannot open directory .: Permission denied
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ touch test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
ls: cannot open directory .: Permission denied
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ cd ..
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ chmod 577 newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ ~]$ cd newdr
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 0
-rw-rw-r-- 1 yui yui 0 Apr 28 15:46 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ rm -f test.txt
rm: cannot remove ‘test.txt’: Permission denied
总结 1.x决定是否可以进入目录 2.r决定是否可以进行对文件属性信息进行查看的权力 3.w决定是否可以在目录下新建和删除文件
2.2为什么我们创建的文件默认权限不是777
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ mkdir test
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test
-rw-rw-r-- 1 yui yui 0 Apr 28 15:46 test.txt
我们可以看到,目录的默认权限为775 普通文件的默认权限为664 这是为什么呢? 首先我们要知道一个目录被创造出来天生就是要被进入的,被查看的,被修改的。所有目录的默认权限一个是777啊。 然后普通文件,不一定可以执行,所有普通文件的默认权限为666。 这显然对不上吧。 为什么对不上呢?那是因为在Linux下存在权限掩码,它可以定制一个文件被创建的时候的默认权限。
2.2.1关于Linux下的权限掩码
指令 umask 功能:查看或修改文件的掩码 格式 :umask /umask 权限值 说明: 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。root用户默认权限掩码为0022,普通用户默认为0002. 实例: 普通用户
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0002
root用户
代码语言:javascript代码运行次数:0运行复制[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# whoami
root
[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# umask
0022
修改掩码
代码语言:javascript代码运行次数:0运行复制[root@iZbp19b5lvg8xtpf1tzrenZ newdr]# su yui
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0002
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0022
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask 001
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ umask
0001
修改掩码时,可以省略第一个0 计算文件创建时的默认权限。 公式: 文件的起始权限&(~umask) = 最终权限(默认) 解释:目录的起始权限为0777 普通文件为0666 下面我来计算一个看看,就目录文件test吧 umask为0002
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test
-rw-rw-r-- 1 yui yui 0 Apr 28 15:46 test.txt
计算过程
2.3文件能否被删除取决于什么
我们来看看一个权限全无的文件
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test
-rw-rw-r-- 1 yui yui 0 Apr 28 15:46 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ chmod 000 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test
---------- 1 yui yui 0 Apr 28 15:46 test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ rm -f test.txt
[yui@iZbp19b5lvg8xtpf1tzrenZ newdr]$ ll
total 4
drwxrwxr-x 2 yui yui 4096 Apr 28 15:49 test
即使我对这个文件的权限什么都没有,但是我却可以删除它。甚至root的文件也可以删。 所以我们明白了,一个文件能否被删除,不取决于文件本身,而是取决于文件所处于的目录,即拥有者是否具有w权限。 这样的话会不会很危险呢? 确实,不过在现实情况下,你不会去别人的目录下写文件。那么久催生出来了另一个问题,当需要小组合作时呢? 为了解决这个问题,来Linux下起始是有一个共享文件夹的。
2.3.1Linux下的共享文件夹
唯一根目录下。
代码语言:javascript代码运行次数:0运行复制[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ pwd
/
[yui@iZbp19b5lvg8xtpf1tzrenZ /]$ ll
total 72
lrwxrwxrwx. 1 root root 7 Jul 11 2019 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Apr 21 14:26 blog
-rw-r--r-- 1 root root 664 Apr 21 14:12 blog.zip
dr-xr-xr-x. 5 root root 4096 Jul 11 2019 boot
drwxr-xr-x 3 root root 4096 Apr 21 14:22 code
drwxr-xr-x 19 root root 2980 Feb 28 16:24 dev
drwxr-xr-x. 77 root root 4096 Apr 25 19:54 etc
drwxr-xr-x. 4 root root 4096 Apr 25 19:53 home
lrwxrwxrwx. 1 root root 7 Jul 11 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jul 11 2019 lib64 -> usr/lib64
drwx------. 2 root root 16384 Jul 11 2019 lost+found
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt
dr-xr-xr-x 91 root root 0 Nov 3 21:00 proc
dr-xr-x---. 9 root root 4096 Apr 21 15:29 root
drwxr-xr-x 23 root root 640 Apr 28 00:33 run
lrwxrwxrwx. 1 root root 8 Jul 11 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Dec 5 18:09 sys
drwxrwxrwt. 9 root root 4096 Apr 28 03:47 tmp /////////////// 共享文件夹tmp///////////////////////////
drwxr-xr-x. 13 root root 4096 Jul 11 2019 usr
drwxr-xr-x. 19 root root 4096 Jul 11 2019 var
在这个文件夹下就可以进行暂时的小组合作。细心的同学可能注意到了,tmp的权限中的t。 t作为一个粘滞位:给目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定。 该目录下的文件,只有root或者文件的拥有者有权利进行删除,其他人一概不允许!这样就有效的防止了其他人对自己文件的删除了。
完
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-04-28,如有侵权请联系 cloudcommunity@tencent 删除权限linuxroottxtyui本文标签: Linux(关于权限常见的3个问题)
版权声明:本文标题:Linux——(关于权限常见的3个问题) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754819400a1706871.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论