博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
chmod命令、chown命令、chgrp命令、umask命令、chattr命令、lsattr命令
阅读量:6117 次
发布时间:2019-06-21

本文共 4982 字,大约阅读时间需要 16 分钟。

hot3.png

第二章 文件、目录管理

2.14 文件或目录属性、权限及chmod命令

  • 属性
    用ls命令查看文件信息的时候共显示了9列内容(用空格划分),其代表的含义如下图:
    mark
    文件类型在前面章节讲到,有:d,-,l,c,s,b等。
    补充:
# ls -l /etc/总用量 1088-rw-r--r--.  1 root root       16 5月  22 01:29 adjtime-rw-r--r--.  1 root root     1518 6月   7 2013 aliases-rw-r--r--.  1 root root    12288 5月  22 01:38 aliases.db    "."表示该文件受SELinux控制(SELinux防火墙未完全关闭时显示)
  • 权限
    上图中‘rwxr-xr-x’即为文件或目录的权限,分别代表所有者(user)权限——前三位,所属组(group)权限——中间三位,其他非本群组(others)权限——最后三位。其中,r(read)代表可读,w(write)代表可写,x(execute)代表可执行。
  • chmod命令
    Linux中可以用数字代替rwx来更改权限,具体规则:r=4,w=2,x=1,-=0,eg:‘-rwxrwxrw-’用数字表示就是770,计算规则:rwx=4+2+1=7,rwx=4+2+1=7,---=0+0+0=0。
    语法: chmod [-R] xyz [filename] (在此xyz代表数字)
    -R 选项作用表示级联更改。
    注: 在Linux系统中,root用户默认一个目录的权限为755,而一个文件的权限为644。
    eg1:
[root@adai002 ~]# mkdir test[root@adai002 ~]# touch ./test/test2[root@adai002 ~]# ls -ld testdrwxr-xr-x 2 root root 19 6月   6 21:22 test[root@adai002 ~]# ls -l test总用量 0-rw-r--r-- 1 root root 0 6月   6 21:22 test2[root@adai002 ~]# chmod 750 test  更改test的权限为750[root@adai002 ~]# ls -ld testdrwxr-x--- 2 root root 19 6月   6 21:22 test [root@adai002 ~]# ls -l test/test2  查看test2的权限,未发生改变-rw-r--r-- 1 root root 0 6月   6 21:22 test/test2[root@adai002 ~]# chmod 755 test/test2  更改test2 的权限为755[root@adai002 ~]# ls -l test/test2-rwxr-xr-x 1 root root 0 6月   6 21:22 test/test2[root@adai002 ~]# chmod -R 700 test   级联更改test、test2的权限为700[root@adai002 ~]# ls -ld testdrwx------ 2 root root 19 6月   6 21:22 test[root@adai002 ~]# ls -l !$ls -l test总用量 0-rwx------ 1 root root 0 6月   6 21:22 test2!!! test和test2的权限均改为700

eg2:

[root@adai002 ~]# ls -ld testdrwx------ 2 root root 19 6月   6 21:22 test[root@adai002 ~]# ls -l test总用量 0-rwx------ 1 root root 0 6月   6 21:22 test2[root@adai002 ~]# chmod u=rwx,g=rx,o=rw test  更改test的所有者权限u=rwx,所属组权限g=rx,其他非群组权限o=rw[root@adai002 ~]# ls -ld testdrwxr-xrw- 2 root root 19 6月   6 21:22 test[root@adai002 ~]# chmod a+x test/test2  更改test2所有权限(包含u,g,o)增加x权限(此处a=all)[root@adai002 ~]# ls -l test总用量 0-rwx--x--x 1 root root 0 6月   6 21:22 test2

2.15 chown命令、chgrp命令

  • chown命令
    更改目录或文件的所有者以及所属组。
    chown=change owner
    语法:
    chown [-R] 账户名 filename 更改所有者
    chown [-R] 账户名:组名 filename 更改所属组
    选项: -R的作用是级联更改
    eg:
[root@adai001 tmp]# ls -l总用量 0drwxr-xr-x 2 root root 22 6月   7 07:23 adai001drwx------ 3 root root 17 6月   7 07:16 systemd-private-bd8a94da330a4bc1984e8c95d8651460-vmtoolsd.service-ewuptl[root@adai001 tmp]# ls -l adai001总用量 0-rw-r--r-- 1 root root 0 6月   7 07:21 adai.txt[root@adai001 tmp]# chown adai adai001/adai.txt  更改所有者(user)[root@adai001 tmp]# ls -l adai001总用量 0-rw-r--r-- 1 adai root 0 6月   7 07:21 adai.txt[root@adai001 tmp]# chown :user1 adai001/adai.txt 更改所属组(group)[root@adai001 tmp]# ls -l adai001总用量 0-rw-r--r-- 1 adai user1 0 6月   7 07:21 adai.txt[root@adai001 tmp]# chown root:root adai001/adai.txt  同时更改所有者(user)和所属组(group),该命令还可以写成‘chown root.root adai001/adai.txt’[root@adai001 tmp]# ls -l adai001总用量 0-rw-r--r-- 1 root root 0 6月   7 07:21 adai.txt
  • chgrp命令
    更改文件或目录的所属组。
    chgrp=change group

语法: chgrp [-R] [组名] filename (-R表示级联更改,只针对目录文件)

eg1: 更改文件的所属组

[root@adai001 ~]# groupadd testgroup  添加组testgroup[root@adai001 ~]# touch test1  创建文件test1[root@adai001 ~]# ls -l test1-rw-r--r-- 1 root root 0 6月   7 10:39 test1[root@adai001 ~]# chgrp testgroup test1  更改文件test1的所属组为testgroup[root@adai001 ~]# ls -l test1-rw-r--r-- 1 root testgroup 0 6月   7 10:39 test1

eg2: 更改目录的所属组

[root@adai001 ~]# ls -l dirb/总用量 0drwxr-xr-x 2 root root 6 6月   7 10:51 adaidrwxr-xr-x 2 root root 6 6月   7 10:50 dirc[root@adai001 ~]# ls -ld !$ls -ld dirb/drwxr-xr-x 4 root root 30 6月   7 10:51 dirb/[root@adai001 ~]# chgrp testgroup dirb/  更改目录dirb的所属组为testgroup[root@adai001 ~]# ls -ld !$ls -ld dirb/drwxr-xr-x 4 root testgroup 30 6月   7 10:51 dirb/[root@adai001 ~]# ls -l !$ls -l dirb/总用量 0drwxr-xr-x 2 root root 6 6月   7 10:51 adaidrwxr-xr-x 2 root root 6 6月   7 10:50 dirc[root@adai001 ~]# chgrp -R  testgroup dirb/  级联更改目录的所属组(目录下内容的所属组同时跟着改变)[root@adai001 ~]# ls -l !$ls -l dirb/总用量 0drwxr-xr-x 2 root testgroup 6 6月   7 10:51 adaidrwxr-xr-x 2 root testgroup 6 6月   7 10:50 dirc

注: 因为chown命令可以替代chgrp命令,所以chgrp命令使用的并不多。

2.16 umask命令

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限"补码",而chmod设置的是文件权限码。umask的默认值可以更改,但是只有在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值,否则只是临时更改。

语法: umask xxx (此处xxx代表三个数字)

[root@adai002 ~]# umask   查看umask值0022   即:umask的预设是0022[root@adai002 ~]# umask 020  预设umask值为020[root@adai002 ~]# umask0020[root@adai002 ~]# umask 022[root@adai002 ~]# umask0022

注: 默认状态下,文件umask+chmod=666;目录umask+chmod=777(限于权限位加减法)。

2.17 chattr命令、lsattr命令

只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性。

  • chattr命令
    chattr=change attribute(属性)
    语法: chattr [+-=][选项] [文件或者目录名称]
    +、-、=:分别为增加、减少、设定
    选项:
    A 增加该属性后,文件或目录的atime将不能被修改
    S 增加该属性后,会将数据同步写入磁盘中
    a 增加该属性后,只能追加不能删除,非root用户不能设定该属性
    c 自动压缩该文件,读取时会自动解压
    i 增加该属性后,使文件不能被删除、重命名、设定链接、写入、新增数据
  • lsattr命令
    该命令用于查看文件或者目录的特殊权限。
    语法: lsattr [-aR] [文件/目录名]
    选项:
    -a =all,即连同隐藏文件一同列出
    -R 连同子目录的数据一同列出

转载于:https://my.oschina.net/adailinux/blog/916591

你可能感兴趣的文章
HDU 4377 Sub Sequence[串构造]
查看>>
云时代架构阅读笔记之四
查看>>
WEB请求处理一:浏览器请求发起处理
查看>>
Lua学习笔记(8): 元表
查看>>
PHP经典算法题
查看>>
LeetCode 404 Sum of Left Leaves
查看>>
醋泡大蒜有什么功效
查看>>
hdu 5115(2014北京—dp)
查看>>
数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)...
查看>>
PHP读取日志里数据方法理解
查看>>
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
第二周例行报告
查看>>
多线程条件
查看>>
黄聪:VMware安装Ubuntu10.10【图解】转
查看>>
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
vue实现点击展开,点击收起
查看>>