[CentOS 7系列]文件或目录的权限与属性

在开始今天的话题之前,我们首先来回顾下ls命令。在ls命令中参数“-l”会显示出来目标的详细信息,如下所示:

[root@server02~]#ls-l/tmp/
总用量4
-rwx------.1rootroot8365月2706:19ks-script-ogzDFA
drwxr-xr-x.5rootroot755月3005:26test
drwxr-xr-x.2rootroot65月3004:15test1
drwxr-xr-x.3rootroot175月3004:16test2
-rw-------.1rootroot05月2706:10yum.log
[root@server02~]#

在前几帖中,我们曾提到过第一列(上图的“-”和“d”等)标记的是对象的文件类型。而后面还有10位,最后一位“.”表示开启了selinux,当关闭后,这个标识位将会消失。而中间的“rwxr-xr-x”等9位字符标记的是对象的权限。

这9位字符中,前三位描述的是所有者(如上图某行的第一个root,表示所有者是root用户)的权限,中间三位描述的是所属组(如上图某行的第二个root,表示所属组是root组)的权限,最后三位则描述的是除所有者和所属组外其他人的权限。其中“r”表示可读,“w”表示可写,“x”表示可执行,而“-”则表示的是没有该项权限。

在使用时,我们把“r”规定值为4,“w”为2,“x”为1,以及“-”为0,如rwx=7、r-x=5等。这样也就方便我们描述对象的权限。


chmod

1、命令作用

赋予文件或目录权限

2、命令格式

chmod [options] file

3、参数

-R对目前目录下的所有文件和子目录进行相同的权限变更。

4、样例

[root@server02test]#ll
总用量0
-rw-r--r--.1rootroot05月3007:031.txt
-rw-r--r--.1rootroot05月3007:032.txt
drwxr-xr-x.2rootroot65月3007:04file1
[root@server02test]#chmod7771.txt
[root@server02test]#chmodu=rwx,g=rw,o=r2.txt
[root@server02test]#chmodg+wfile1
[root@server02test]#ll
总用量0
-rwxrwxrwx.1rootroot05月3007:031.txt
-rwxrw-r--.1rootroot05月3007:062.txt
drwxrwxr-x.2rootroot65月3007:04file1
[root@server02test]#

注:推荐使用数字的方式赋予权限。


chown

1、命令作用

更改文件或目录的所有者或所属组

2、命令格式

chown[options] file

3、参数

-R对目前目录下的所有文件和子目录进行相同的权限变更。

4、样例

[root@server02test]#ll
总用量0
-rwxrwxrwx.1rootroot05月3007:031.txt
-rwxrw-r--.1rootroot05月3007:032.txt
drwxrwxr-x.2rootroot65月3007:04file1
[root@server02test]#chownuser11.txt
[root@server02test]#chownuser2:user22.txt
[root@server02test]#chown:user3file1
[root@server02test]#ll
总用量0
-rwxrwxrwx.1user1root05月3007:031.txt
-rwxrw-r--.1user2user205月3007:032.txt
drwxrwxr-x.2rootuser365月3007:04file1
[root@server02test]#

注:chgrp命令也可以更改所属组,因为chown也可以更改,不推荐使用


通过chown和chgrp两条命令,我们可以赋予文件或目录权限,也可以更换其所有者和所属组。那么,当一个新的文件和目录被创建的时候,它们的权限是怎么设置的呢?

[root@server02test]#mkdirdirectory
[root@server02test]#touch1.txt
[root@server02test]#ll
总用量0
-rw-r--r--.1rootroot05月3007:291.txt
drwxr-xr-x.2rootroot65月3007:28directory
[root@server02test]#

可以看到默认生成的目录权限是755,文件权限是644。这样设置的原因是,目录需要执行权限才能cd进入目录下,而文件不需要执行权限,这样更安全些。而完成这个权限设置的功臣就是linux系统内的umask值。

[root@server02test]#umask
0022
[root@server02test]#

umask值默认为0022。目录采用777(rwxrwxrwx),文件采用666(rw-rw-rw-)的初始值,和umask值通过减权限(不是减法)的方式运算出目录和文件的初始权限。

例1:umask002002<-------w->
当创建一个文件666<rw-rw-rw->-002<-------w->=664<rw-rw-r-->
当创建一个目录777<rwxrwxrwx>-002<-------w->=775<rwxrwxr-x>
例2:umask033033<----wx-wx>
当创建一个文件666<rw-rw-rw->-033<----wx-wx>=644<rw-r--r-->
当创建一个目录777<rwxrwxrwx>-033<----wx-wx>=744<rwxr--r-->


chattr

改变文件或目录属性

chattr[options] file

-i不可以增加、追加、删除和更改,重命名任何内容和信息。

-a只可以追加内容,不可以删除、更改和重命名。

4、样例

[root@server02test]#chattr+i1.txt
[root@server02test]#chattr+a2.txt
[root@server02test]#chattr-i1.txt


lsattr

查看文件或目录属性

lsattr[options] file

-d列出目录的属性信息。

-a列出当前文件或目录下的所有文件(包含隐藏文件)的属性信息。

-R列出目录下的所有文件和子目录及其下的所有文件的属性信息。

4、样例

[root@server02test]#lsattr
----------------./directory
----i-----------./1.txt
-----a----------./2.txt
----i-----------./dir1
[root@server02test]#lsattr-a
----------------./.
----------------./..
----------------./directory
----i-----------./1.txt
-----a----------./2.txt
----i-----------./dir1
----------------./.3.txt
[root@server02test]#lsattr-d
----------------.
[root@server02test]#lsattr-Rdirectory
-----a----------directory/test.txt
----------------directory/dir2

directory/dir2:
-----a----------directory/dir2/100.txt

[root@server02test]#

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor&#160;1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep &#39;Time zone&#39;查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=&quot;static&quot; ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// &lt;summary&gt; /// 取小写文件名后缀 /// &lt;/summary&gt; /// &lt;param name=&quot;name&quot;&gt;文件名&lt;/param&gt; /// &lt;returns&gt;返回小写后缀,不带“.”&lt;/ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start &amp; nohup ./kibana &amp;
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的&#160;Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程,&#160;ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属