设为首页 收藏本站
查看: 702|回复: 0

[经验分享] Linux权限管理常用命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-9 12:29:56 | 显示全部楼层 |阅读模式
在Linux系统中,我们经常需要对文件改些权限,例如为了增加安全性改个属主属组啥的,或是访问权限,这是很常见的情况,所有我们需要了解一下几三个命令:chown,chgrp,chmod,umask

wKioL1Y8U8aTY5rMAAEYoJCBjRM463.jpg        在上篇博文(Linux文件管理常用命令)最后我们简单讲解了一下文件属性,如有的地方不是很明白,就看这篇博文中有介绍

一、chown(change owner)
1
2
3
4
5
6
7
8
9
10
11
chown - change file owner and group        # 修改文件的属主和属组

SYNOPSIS
       chown [OPTION]... [OWNER][:[GROUP]] FILE...
       chown [OPTION]... --reference=RFILE FILE...
       -R: 递归修改子目录属主和属组
       --reference=/path/to/somefile:依据某文件修改文件属主和属组

[iyunv@soysauce ~]# ll
total 8
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh



(1).只修改用户的属主
1
2
3
4
[iyunv@soysauce ~]# chown mysql iptables.sh     # 修改文件的属主为mysql
[iyunv@soysauce ~]# ll
total 4
-rwxr-xr-x 1 mysql root 518 Nov  1 20:02 iptables.sh



(2).同时修改属主和属组
1
2
3
4
[iyunv@soysauce ~]# chown apache.apache iptables.sh     # 修改文件的属主和属组都为apache
[iyunv@soysauce ~]# ll
total 4
-rwxr-xr-x 1 apache apache 518 Nov  1 20:02 iptables.sh



(3).递归修改目录及其子目录下所有文件的属主和属组
1
2
3
4
5
6
[iyunv@soysauce ~]# chown -R mysql:mysql  test/       # 递归修改test下所有文件的属主和属组
[iyunv@soysauce /]# ll /test/
total 4
-rw-r--r-- 1 mysql mysql   0 Nov  6 16:33 a
-rw-r--r-- 1 mysql mysql   0 Nov  6 16:33 b
-rw-r--r-- 1 mysql mysql 208 Jul  6 13:41 id_rsa_1024.pub



(4).参考其他文件来修改文件属组属组
1
2
3
4
5
6
7
8
9
10
[iyunv@soysauce test]# ll
total 4
-rw-r--r-- 1 mysql mysql 208 Jul  6 13:41 id_rsa_1024.pub        # 此文件原先的属主属组为mysql
[iyunv@soysauce /]# ll /etc/passwd               
-rw-r--r-- 1 root root 1592 Nov  5 15:55 /etc/passwd     # passwd文件属主和属组为root
[iyunv@soysauce test]# chown --reference=/etc/passwd  id_rsa_1024.pub # 参考passwd来修改id_rsa_1024.pub
[iyunv@soysauce test]# ll id_rsa_1024.pub
-rw-r--r-- 1 root root 208 Jul  6 13:41 id_rsa_1024.pub        # 此时属主属组都已经改为了root
[iyunv@soysauce ~]# chown  testuser iptables.sh  # 修改文件的属主为一个不存的用户testuser
chown: `testuser': invalid user




二、chgrp(change group)
1
2
3
4
5
6
7
8
9
10
chgrp - change group ownership        # 只能修改文件的属组

SYNOPSIS
       chgrp [OPTION]... GROUP FILE...
       chgrp [OPTION]... --reference=RFILE FILE...

[iyunv@soysauce ~]# chgrp root iptables.sh      # 修改文件的属组为root
[iyunv@soysauce ~]# ll
total 4
-rwxr-xr-x 1 apache root 518 Nov  1 20:02 iptables.sh




三、chmod(change mode)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
chmod - change file access permissions            # 修改文件的访问权限

SYNOPSIS
       chmod [OPTION]... MODE[,MODE]... FILE...
       chmod [OPTION]... OCTAL-MODE FILE...
       chmod [OPTION]... --reference=RFILE FILE...

[iyunv@soysauce ~]# ll
total 4
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh
r

权限分为3类:文件属主,文件属组,其他用户

例如rwxr-xr-x其中三位为一组权限,分别为
    文件属主的权限:rwx,可读,可写,可执行
    文件所属组的权限:r-x,可读,不可写,可执行
    其他用户的权限:r-x,可读,不可写,可执行

权限:read, write, execute
      r, w, x

      文件:
            r: 可以使用内容查看类的命令来显示其相关内容
            w: 可以使用文本编辑器修改其内容
            x: 可以将其发起一个进程

      目录:
            r: 可以使用ls命令查看目录内容的文件信息
            w: 可以创建、删除文件
            x: 可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换进此目录



(1).数字表示法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---:0    不可读不可写不可执行
--x:1    不可读不可写可执行
-w-:2    不可读可写不可执行
-wx:3    不可读可写可执行
r--:4    可读不可写不可执行
r-x:5    可读不可写可执行
rw-:6    可读可写不可执行
rwx:7    可读可写可执行

[iyunv@soysauce ~]# ll
total 4
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh   # 现在的权限换成数字表示就是755
[iyunv@soysauce ~]# chmod 600 iptables.sh     # 修改此文件的权限为600
[iyunv@soysauce ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh



(2).字母表示法
1
2
3
4
5
6
7
8
9
10
11
12
13
u:属主
g:属组
o:其他用户
a:所有用户

[iyunv@soysauce ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh
[iyunv@soysauce ~]# chmod +x iptables.sh  # 为所有用户添加可执行权限,此时可以a可以省略
[iyunv@soysauce ~]# chmod u=rwx,go=r  iptables.sh     # 修改iptables.sh文件权限为744
[iyunv@soysauce ~]# ll
total 8
-rwxr--r-- 1 root root  518 Nov  1 20:02 iptables.sh




四、umask(遮罩码)

(1).创建文件默认权限:666-umask
ps:文件默认决不允许出现执行权限,即使666-umask后算出来文件有执行权限的话,也会被去掉可执行权限
1
2
3
4
5
6
7
8
[iyunv@soysauce ~]# umask             # root用户默认umask为022,至于为什么看后面总结
0022        
[iyunv@soysauce ~]# umask 023         # 临时修改umask值为023
[iyunv@soysauce ~]# touch testfile
[iyunv@soysauce ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh
-rw-r--r-- 1 root root   0 Nov  6 16:01 testfile  # 本应该是643的权限,此时也会+1变为644



(2).创建目录默认权限:777-umask
1
2
3
4
5
6
7
[iyunv@soysauce ~]# umask             # 默认umask为022
0022
[iyunv@soysauce ~]# mkdir testdir        # 新建一个空目录
[iyunv@soysauce ~]# ll
total 8
-rw------- 1 root root  518 Nov  1 20:02 iptables.sh
drwxr-xr-x 2 root root 4096 Nov  6 16:05 testdir        # 此新目录权限为777-022为755





总结:
  • 修改属主和属组时,所对应的属主或者属组必须得存在,不存在时则会报错
  • 如果用户名和基本组组名一致的话,umask值为002;否则为022
  • chown和chmod都可以使用一下两个选项:①-R  ②--reference=/path/to/somefile
  • 权限应用模型:

        ①进程的属主,是否与文件的属主相同,如果相同,进程则以文件属主的权限来访问文件:否则②
        ②进程的属主所属的组,是否其中之一与文件的属性相同:如果相同,进程则以文件属组的权限来访问文件:否则③
        ③进程以文件的其他用户的权限来访问文件




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137018-1-1.html 上篇帖子: ubuntu关于pam_tally2计数器在每次sudo时都增加的bug 下篇帖子: RAID数据恢复故障注意事项 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表