文件和目录权限、更改所有者和所属组、umask、隐藏权限

简介:

一、文件或目录权限chmod

一个Linux目录或者文件,都会有一个所有者和所属组。所有者是指文件的拥有者,而所属组指的是这个文件属于哪一个用户组。


通过ls -l 可以查看文件的所有者、所属组、权限等信息。

[root@centos-01 ~]# ls -l /etc/passwd

-rw-r--r--. 1 root root 1008 10月 17 06:04 /etc/passwd


权限前2-4位是所有者权限,中间5-7位是所属组权限,最后8-10位是其他用户权限。r=-读权限,w=写权限,x=执行权限。

权限可以用数字表示

r=4 w=2 x=1  rwx=7  r--=4  ---=0

-rw-r--r-- = 644

-rwwrwxrwx = 777


[root@centos-01 ~]# chmod 700 /root/.ssh/  #给目录分配700权限,drwx------

[root@centos-01 ~]# ls -ld /root/.ssh/

drwx------. 2 root root 80 10月 19 22:00 /root/.ssh/

权限第十一位是个点,意味着这个文件受selinux控制。


[root@centos-01 ~]# getenforce  #查看selinux 状态

Enforcing #开启

[root@centos-01 ~]# setenforce 0  #临时关闭selinux

[root@centos-01 ~]# getenforce

Permissive #也是开启状态,只不过是打印一个警告

修改配置文件才可以永久修改

/etc/selinux/config

将SELINUX=enforcing 改成seling = disabled


chmod -R将目录下的子目录子文件一次性的批量更改文件权限


目录和目录下文件的原始权限:755,644

[root@centos-01 tmp]# ls -ld test2

drwxr-xr-x. 2 root root 19 10月 23 23:17 test2

[root@centos-01 tmp]# ls -l test2/1.txt

-rw-r--r--. 1 root root 0 10月 23 23:17 test2/1.txt


将目录文件改为777。之后可以发现,目录权限已改为777,但文件权限还是644。

[root@centos-01 tmp]# chmod 777 test2

[root@centos-01 tmp]# ls -ld test2

drwxrwxrwx. 2 root root 19 10月 23 23:17 test2

[root@centos-01 tmp]# ls -l test2

-rw-r--r--. 1 root root 0 10月 23 23:17 1.txt


加上-R 参数,并将目录权限改为700。之后可以发现目录权限和文件权限都被改成了700。

[root@centos-01 tmp]# chmod -R 700 test2

[root@centos-01 tmp]# ls -ld test2

drwx------. 2 root root 19 10月 23 23:17 test2

[root@centos-01 tmp]# ls -l test2

-rwx------. 1 root root 0 10月 23 23:17 1.txt


u=user  g=group  o=other  a=all

chmod u=rwx,g=r,o=r  a.txt #此时a.txt具有-rwxr--r--权限

chmod a=rwx a.txt  #此时a.txt具有-rwxrwxrwx权限

chmod u-x a.txt  #此时a.txt具有 -rw-rwxrwx权限

加号,等号同上。



权限对目录的重要性:

r:表示具有读取目录结构列表的权限,有r权限可以通过ls显示目录内容列表。

w:表示具有更改该目录结构列表的权限,如下:

  新建新的文件与目录

  删除已经存在的文件与目录(不论该我呢见的权限为何)

  将已存在的文件或目录重命名

  转移该目录内的文件、目录位置

总之,目录的w权限就与该目录下的文件名变动有关。

x:代表的是用户能否进入该目录成为工作目录的用途,所谓的工作目录就是你目前所在的目录。目录不具有x权限则不能切换(cd)到此目录内,

注意:要开放目录给任何人浏览时,至少要给r及x权限。



三、更改所有者和所属组chown

chown 更改文件(目录)所有者,也可以更改所属组


[root@localhost /]# ls -l /tmp/1.txt  #查看文件属性

-rw-r--r--. 1 root root 15 10月 24 14:12 /tmp/1.txt

#文件的所有者和所属组均为 root 。

[root@localhost /]# chown huang /tmp/1.txt  

#将文件的所有者改为 huang。

[root@localhost /]# ls -l /tmp/1.txt

-rw-r--r--. 1 huang root 15 10月 24 14:12 /tmp/1.txt

#文件的所有者由root变成了huang,而用户组依然是root 。


chown user1:group1 目录(文件) 

#可以将目录(文件)的所有者改为user1,所属组改为group1。

chown :group2 目录(文件)  

#可以将目录(文件)的所属组改为group2,而所有者没有改变。


chgrp 更改文件(目录)的所属组

[root@localhost /]# ls -l /tmp/test2.txt  #查看文件属性

-rw-r--r--. 1 root root 4 10月 24 14:16 /tmp/test2.txt

#文件的所有者和所属组均为 root 。

[root@localhost /]# chgrp huang /tmp/test2.txt

#将文件的所有组改成huang。

[root@localhost /]# ls -l /tmp/test2.txt

-rw-r--r--. 1 root huang 4 10月 24 14:16 /tmp/test2.txt

#文件的所有者没有改变,还是root。所属组变成了huang。


shown -R 可以批量修改目录及目录下文件的所有者和所属组。

shown -R user:group /tmp/test/

#可以将/tmp/test 目录及目录下文件的所有者改为user所属组改为group。


查看系统中有哪些用户可用命令cat /etc/passwd 查看。




四、umask

通过umask,可以确定文件和目录的默认权限。


默认情况下,目录最大权限为:777

默认情况下,文件最大权限为:666

我们新建文件和目录的权限都为文件最大权限-umask值。


查看umask值,直接输如 umask就可以查看

[root@localhost ~]# umask

0022


修改umask(临时)

[root@localhost ~]# umask 002

[root@localhost ~]# umask

0002


[root@localhost /]# mkdir /tmp/test

#在tmp目录下创建test目录

[root@localhost /]# touch /tmp/test/1.txt

#在test目录下创建1.txt文件

[root@localhost /]# ls -l /tmp/test/1.txt

-rw-r--r--. 1 root root 0 10月 24 15:45 /tmp/test/1.txt

#新建文件权限为644(rw-rw-rw- - ----w--w- = rw-r--r--)

[root@localhost /]# ls -ld /tmp/test

drwxr-xr-x. 2 root root 19 10月 24 15:45 /tmp/test

#新建目录权限为755(rwxrwxrwx - ----w--w- = rwxr-xr-x)

#默认情况下root的umask为022,普通用户为002


[root@localhost /]# umask 002

#将umask改成002

[root@localhost /]# mkdir /tmp/test2

#在tmp目录下创建test2目录

[root@localhost /]# touch /tmp/test/2.txt

#在/tmp/test/目录下创建2.txt

[root@localhost /]# ls -l /tmp/test/2.txt

-rw-rw-r--. 1 root root 0 10月 24 16:04 /tmp/test/2.txt

#新建文件权限为664(rw-rw-rw- - -------w- = rw-r-wr--)

[root@localhost /]# ls -ld /tmp/test2

drwxrwxr-x. 2 root root 6 10月 24 16:03 /tmp/test2

#新建目录权限为775(rwxrwxrwx - -------w- = rwxrwxr-x)


如果把umask改成003,如果用umask相减。理论上新建的文件权限为663(rw-rw--wx)。实际情况目录权限为664。

rw-rw-rw- - -------wx = rw-rw-r--

0权限减去任意权限都为0.

[root@localhost /]# umask

0003   #umask为003

[root@localhost /]# touch test.txt #新建文件test.txt

[root@localhost /]# ls -l test.txt

-rw-rw-r--. 1 root root 0 10月 24 16:15 test.txt

#文件权限为664


永久修改权限需要修改配置文件:

vi /etc/profile   71行为普通用户权限,73行为超级用户权限

vi /etc/bashrc    60行为普通用户权限,62行为超级用户权限

配置修改好需要刷新配置:

source /etc/profile

source /etc/bashrc



四、隐藏权限lsattr、chattr

隐藏权限用ls -l是查询不到的。


创建一个1.txt文件,用chattr给它加上i权限。

chattr +i 1.txt

vi编辑这个文件,进入后按i进入编辑模式,下方提示该文件为只读文件。

f6775d639a9bf96c42edcad0023f458d.png


虽然可以输入内容,但是保存的时候还是不能保存,即便是用wq!也不行。

67c7ac17291802fcc47cee49cbb2d24a.png


i权限可以让文件不能被删除、改名、追加、移动等。只有root用户能设置该属性。

a924fb1722281b5273ec44fbf3dcb71e.png

chattr -i 1.txt 可以将文件的i权限去掉。


chattr +a 5.txt a权限只能追加,不能修改、删除、重命名、重定向、编辑等。(可以touch,更改mtime)

730ee49c1d1b5b94c210d8a362ae0362.png

chattr -a 5.txt 可以将文件的a权限去掉


给目录加上i权限后,目录不能删除文件,不能移动、不能创建文件。目录下文件内容可以更改,但是文件不能删除,不能重命名。

cf1d9f12e497abe32e64158ec40721cc.png


给目录加上a权限,可以创建文件,但是不能删除、移动目录。

ceafd9d8170ae511fb20a4dbf8d8c03a.png


目录加上a权限,目录下的文本内容可以修改,但不能对目录下的文件进行重命名、删除操作。

33d5cfc6fdc4f1a2093cb746479b2eaf.png


lsattr 可以查询文件的特殊权限。

lsattr -a 可以查看所有文件的特殊权限,包括隐藏文件

lsattr -d 只列出当前目录的数据

lsattr -R 可以连同子目录的数据一并列出来

b5ab464cff7ba30eecb163838dd69b8b.png




本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/1976016



相关文章
|
数据安全/隐私保护
43Linux - 用户/权限管理(修改文件所属组:chgrp)
43Linux - 用户/权限管理(修改文件所属组:chgrp)
55 0
|
4月前
|
Linux 数据安全/隐私保护
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
查看权限控制信息,ls -l可以查看列表数据,展现权限细节,1号位表示权限细节,有10个槽位,第一个位置 -表示文件,d文件夹 | 软链接,前3部分表示所属用户权限,中间用户组权限,后部分其他用户权限
|
安全 Linux
6.4 文件与目录的默认权限与隐藏权限
6.4 文件与目录的默认权限与隐藏权限
85 0
|
Linux Go
linux中的usermod 修改用户、groupadd 新增组、groupdel 删除组、groupmod 修改组、cat /etc/group 查看创建了哪些组、文件权限类、rwx 作用文件和目录的不同解释、chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同, 如Linux下的用户属于与它同名的用户组,Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做 了不同的规定。[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前 提条件是对该文件所在的目录有写权第一种方式变更权限 chmod [{ugoa}{±=}{rwx}] 文件或目录。经验技巧 u:所有者 g:所有组 o:其他人 a:所有人(
291 1
linux中的usermod 修改用户、groupadd 新增组、groupdel 删除组、groupmod 修改组、cat /etc/group 查看创建了哪些组、文件权限类、rwx 作用文件和目录的不同解释、chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限
|
Linux Go
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
linux中的chmod改变权限、修改bigbig.txt文件使其所属主用户只有读权限、修改bigbig.txt文件使其所属组用户具有写权限linux中的文件权限类、rwx 作用文件和目录的不同解释
|
Linux 数据库
linux中的find查找文件或者目录、locate快速定位文件路径linux中的chgrp改变所属组、修改bigbig.txt文件所属主用户拥有读写权限,并使其他用户具有写执行权限
linux中的find查找文件或者目录、locate快速定位文件路径linux中的chgrp改变所属组、修改bigbig.txt文件所属主用户拥有读写权限,并使其他用户具有写执行权限
linux中的find查找文件或者目录、locate快速定位文件路径linux中的chgrp改变所属组、修改bigbig.txt文件所属主用户拥有读写权限,并使其他用户具有写执行权限
|
监控 NoSQL 安全
/文件和目录权限chmod /更改所有者和所属组chown/umask/隐藏权限lsattr/chattr
2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown2.16 umask2.17 隐藏权限lsattr/chattr     文件和目录权限chmod  文件权限: r     4       可读 w    2      可写 x     1    ...
1328 0