概念:linux目录或者文件,都会有一个全部者和所属组;
全部者是指文件的拥有者;所属组指是这个文件属于哪个用户组;
linux这样设置文件属性的目的是为了文件的安全;
全部者(user) 所属组(group) 其余用户(others)linux
-算法
目录或文件权限九个字节分为三段,每段三个字节;例:以下表示
第一段表示:全部者的权限;
第二段表示:所属组的权限;
第三段表示:其余用户。
r:表示是否可读 (数字表示4)
w:表示是否可写 (数字表示2)
x:表示是否可执行 (数字表示1)
-rw-r--r--
拿这个作例子,最一开始"rw"前面的“-”这个表示文件或目录类型
1.假设:rw-r--r-x=645,第一段4+2=6,第二段4,第三段5.
这样的话,全部者有可读可写不可执行;所属组拥有可读不可写不可执行,其余用户可读可写可执行安全
ls -l 命令能够来查看这些属性ssh
例:查看/tmp/zhang/1这个目录的属性
[root@zhangzhen-01 ~]# ls -l /tmp/zhang/1
-rw-r--r--. 1 root root 0 3月 27 00:07 /tmp/zhang/1
(权限)(目录名)(全部者)(所属组)( 日期 )post注:第一个root是全部者 ,第二个root是所属组
建立一个.txt文件spa
[root@zhangzhen-01 ~]# touch /tmp/zhang/1.txtcode
查看这个文件的属性ci
[root@zhangzhen-01 ~]# ls -l /tmp/zhang/1.txt
-rw-r--r--. 1 root root 0 3月 28 00:50 /tmp/zhang/1.txt
这个文件(644)全部者可读可写,所属组可读,其余用户可读同步
如今我想把这个文件修改为全部者可读可写可执行(rwx 700),其余的没有权限,以下:io
[root@zhangzhen-01 ~]# ls -l /tmp/zhang/1.txt
-rw-r--r--. 1 root root 0 3月 28 00:50 /tmp/zhang/1.txt
[root@zhangzhen-01 ~]# chmod 700 /tmp/zhang/1.txt
[root@zhangzhen-01 ~]# !ls
ls -l /tmp/zhang/1.txt
-rwx------. 1 root root 0 3月 28 00:50 /tmp/zhang/1.txt
若是想把目录及目录下的子文件批量修改权限,在这里用到大“R”
[root@zhangzhen-01 tmp]# ls -l zhang
总用量 0
-rw-r--r--. 1 root root 0 3月 28 01:15 1.txt
-rw-r--r--. 1 root root 0 3月 28 01:15 2.txt
[root@zhangzhen-01 tmp]# chmod -R 770 zhang
[root@zhangzhen-01 tmp]# !ls
ls -l zhang
总用量 0
-rwxrwx---. 1 root root 0 3月 28 01:15 1.txt
-rwxrwx---. 1 root root 0 3月 28 01:15 2.txt
-R 这个表示文件下全部的文件包括目录修改统一的权限
chmod还有一个“a+”“a-”选项参数,给三段都加上权限
[root@zhangzhen-01 tmp]# chmod a+x zhang
[root@zhangzhen-01 tmp]# ls -ld zhang
drwxrwxr-x. 2 root root 32 3月 28 01:15 zhang
[root@zhangzhen-01 tmp]# chmod a-x zhang
[root@zhangzhen-01 tmp]# ls -ld zhang
drw-rw-r--. 2 root root 32 3月 28 01:15 zhang
概念:chown命令能够更改文件的全部者 命令格式以下: chown [-R] 帐户名(root) 文件名 更改文件全部者 chown [-R] 帐户名(root):组名(root,中间不加空格) 文件名 -R 选项只适合于目录,做用是级联更改,不只更改当前目录,连目录里的目录或文件也所有更改
示例命令以下:
[root@zhangzhen-01 ~]# ls
anaconda-ks.cfg
[root@zhangzhen-01 ~]# mkdir dior #建立一个dior目录
[root@zhangzhen-01 ~]# useradd user1 #建立一个用户user1
[root@zhangzhen-01 ~]# touch dior/test1 #在dior下建立一个test1文件
[root@zhangzhen-01 ~]# ls -ld dior/ #查看dior这个目录全部者和所属组是谁
drwxr-xr-x. 2 root root 19 3月 28 21:59 dior/
[root@zhangzhen-01 ~]# chown user1 dior/ #修改dior全部者为user1
[root@zhangzhen-01 ~]# ls -ld dior/ #查看dior文件全部者是谁
drwxr-xr-x. 2 user1 root 19 3月 28 21:59 dior/
文件所属组修改,示例命令以下:
[root@zhangzhen-01 ~]# mkdir dior #建立一个dior目录
[root@zhangzhen-01 ~]# groupadd user1 #建立一个组名
[root@zhangzhen-01 ~]# chown root:user1 dior/ #修改全部者为root,所属组为user1 后面跟文件名
[root@zhangzhen-01 ~]# ls -ld dior/ #查看dior文件的详细信息
drwxr-xr-x. 2 root user1 19 3月 28 21:59 dior/
目录及文件级联更改,不只修改目录,还有目录下全部的文件,示例以下,-R:
[root@zhangzhen-01 ~]# mkdir dior #建立一个dior目录
[root@zhangzhen-01 ~]# touch dior/test1 #建立2个文件
[root@zhangzhen-01 ~]# touch dior/test2
[root@zhangzhen-01 ~]# tree dior/ #查看这个目录树是否建立成功
dior/
├── test1
└── test2
[root@zhangzhen-01 ~]# ls -l dior/ #查看两个文件的属性及全部者,所属组
总用量 0
-rw-r--r--. 1 root root 0 3月 28 22:44 test1
-rw-r--r--. 1 root root 0 3月 28 22:44 test2
[root@zhangzhen-01 ~]# chown -R root:user1 dior/ #“-R”能够更改当前目录,连目录里的目录或文件所有修改。
[root@zhangzhen-01 ~]# !ls #查看是否修改为功
ls -l dior/
总用量 0
-rw-r--r--. 1 root user1 0 3月 28 22:44 test1
-rw-r--r--. 1 root user1 0 3月 28 22:44 test2
概念:chgrp能够修改目录或文件的所属组 命令格式:chgrp [组名] [文件名]
示例命令以下:
[root@zhangzhen-01 ~]# groupadd user1
[root@zhangzhen-01 ~]# tail -5 /etc/group
postfix:x:89:
sshd:x:74:
chrony:x:996:
zhangzhen-03:x:1000:
user1:x:1001:
概念:默认状况下,目录的权限制是755;普通文件的权限制为644. 那么这个值是谁来规定的呢,就是umask。
查看umask默认值:
[root@zhangzhen-01 dior2]# umask #查看系统默认值
0022 #只看后三位
[root@zhangzhen-01 dior2]# umask 002 #修改umask默认值为002
0002
在umask不自定义前,目录权限值为:755,普通文件权限值为:644 umask的值是能够自定义的,假设umask为002,你再建立目录或者文件时,默认权限分别为: rwx rwx rwx - --- --- -w- (目录的权限) 777 rw- rw- rw- - --- --- -w-(文件的权限)666
示例以下:
[root@zhangzhen-01 dior2]# umask 002 #设置umask默认值为002
[root@zhangzhen-01 dior2]# mkdir dior3 #建立个dior3目录
[root@zhangzhen-01 dior2]# ls -ld dior3/ #查看dior3目录的权限775
drwxrwxr-x. 2 root root 6 3月 28 23:25 dior3/
[root@zhangzhen-01 dior2]# touch test1 #在dior3下建立个test1文件
[root@zhangzhen-01 dior2]# ls -l test1 #查看lest1文件的权限664
-rw-rw-r--. 1 root root 0 3月 28 23:26 test1
拿上述命令为例,目录算法以下:
[root@zhangzhen-01 dior2]# mkdir dior3/ #建立个dior3目录
[root@zhangzhen-01 dior2]# ls -ld dior3/ #查看dior3目录的权限775
drwxrwxr-x. 2 root root 6 3月 28 23:25 dior3/
咱们用默认权限(777)减去你所设定的权限(002),目录算法应该是:
rwx(7) rwx(7) rwx(7) 减去所设定的权限 ---(0) ---(0) -w-(2) =775
一样拿上述命令为例,文件算法以下:
[root@zhangzhen-01 dior2]# touch test1 #在dior3下建立个test1文件
[root@zhangzhen-01 dior2]# ls -l test1 #查看lest1文件的权限664
-rw-rw-r--. 1 root root 0 3月 28 23:26 test1
咱们用默认权限(666)减去你所设定的权限(002),文件算法应该是:
rw-(6) rw-(6) rw-(6) 减去你所设定的权限 ---(0) ---(0) -w-(2) =664
概念:chattr设置隐藏文件;lsattr查看隐藏文件
命令chattr格式 : chattr [+-=] [Asaci] [文件或者目录名],其中,+ - =分别表示增长、减小和设定。 各个选项的含义以下: A :增长该属性后,表示文件或目录的atime(时间)将不可修改 s:增长该属性后,会将数据同步写入磁盘中 a:增长该属性后,表示只能追加不能删除,非root用户不能设定该属性。 c:增长该属性后,表示自动压缩该文件,读取时会自动解压 i:增长该属性后,表示文件不能删除、重命名、设定连接、写入以及新增数据。
以上选项中,经常使用的为“i”选项,示例命令以下:
[root@zhangzhen-01 ~]# mkdir dior3 #建立一个目录
[root@zhangzhen-01 ~]# chattr +i dior3 #添加不能删除重命名等操做
[root@zhangzhen-01 ~]# touch dior3/test1 #建立文件
touch: 没法建立"dior3/test1": 权限不够 #设定成功,建立不了文件
[root@zhangzhen-01 ~]# chattr -i dior3 #给该权限取消
[root@zhangzhen-01 ~]# !touch #继续建立文件
touch dior3/test1
[root@zhangzhen-01 ~]# ls dior3/test1 #ok,取消成功,正常建立文件
dior3/test1
[root@zhangzhen-01 ~]# chattr +i dior3
[root@zhangzhen-01 ~]# rm -fv dior3/test1 #在这里,若是目录有了“i”权限之后,里面的文件也是删除不了的
rm: 没法删除"dior3/test1": 权限不够
概念:该命令用于读取文件或目录的特殊权限 格式:lsattr [-aRd] [文件/目录名] 选项: -a:相似于ls -a选项,目录里隐藏文件一同列出 -R:连同子目录的数据一并列出。 -d 查看目录自己
-a 使用方法: 查看所有的(包括隐藏的文件)全都显示出来
[root@zhangzhen-01 ~]# lsattr -a dior
---------------- dior/.
---------------- dior/..
---------------- dior/test1
---------------- dior/test2
-R 使用方法:连同目录下的子目录的数据一并列出 能够看见N层目录
[root@zhangzhen-01 ~]# lsattr -R dior
---------------- dior/test1
---------------- dior/test2
-d 使用方法:查看目录自己
[root@zhangzhen-01 /]# lsattr -d root/ ---------------- root/