路漫漫其修远兮
吾将上下而求索

linux文件目录权限管理

  8. 测试模拟用户:

      a. root:jerry

      b. user: andy, alex, bob, dave, john, mary, zhao

  9. 权限管理:

      a. -rw-r–r– 1 root root 37367 Jul  4 14:36 install.log

          i. 左三:定义user权限,中三:定义属组权限,右三,other权限

          ii. 每个文件都有属主属组和其他权限,

          iii. 进程的属主与文件的属主是否相同,如果相同,则应用属主权限(左三位),

          iv. 否则,检查进程的属主是否属于文件的属组,如果是,则应用属组权限,

          v. 否则,就只能应用other权限

      b. 文件:测试前注意将上一级目录权限更改为777来验证里面的文件

          i. r:可以使用文件查看类工具获取其中的内容

          ii. w:可修改文件的数据

          iii. x:可将此文件运行为进程

          iv. -w-:文件只有读权限,可以使用echo追加数据到文件,但是看不到文件的内容,用vim打开也是空的,显示不出来

      c. 目录:

          i. r:可使用ls命令获取其下所有文件列表

          ii. w:可修改此目录下的文件列表,创建或删除文件,只有rw,和只有r一样。只有w,不能看目录,不能创建,不能删除

          iii. x:可cd至此目录,可使用ll获取所有文件的详细属性信息

      d. 权限组合机制:mode:rwxrwxrwx

          i. — 000:0

          ii. –x 001:1 

          iii. -w- 010:2 

          iv. -wx 011:3 

          v. r– 100:4 

          vi. r-x 101:5 

          vii. rw- 110:6

          viii. rwx 111:7

      e. 默认权限

          i. 普通用户在/tmp/下创建目录默认权限

              1. drwxrwxr-x. 2 zhao zhao      6 Jul 24 09:16 /tmp/zhao

          ii. root在/tmp/下创建目录默认权限

              1. drwxr-xr-x. 2 root root      6 Jul 24 09:20 /tmp/jerry

  10. 权限管理命令:

      a. 注意:用户只能修改属主为自己的那些文件的权限

      b. 注意:属主属组只能管理员才能改

      c. 注意:管理员可以创建目录,而不管文件的权限配置,

      d. 注意:管理员可以更改属主为用户的文件的权限配置

      e. 文件设置为000时,连用户都不能做任何修改

      f. chmod命令:change file mode bits

          i. 三类用户:

              1. u:user,属主

              2. g:group,属组

              3. o:other,其他

              4. a:all,所有

          ii. chmod [OPTION]… MODE[,MODE]… FILE…   直接操作一类用户的所有权限位rwx

              1. chmod执行权限关掉了,可以复制出来的时候重新制定权限来重新设置权限

              2. 赋权表示法:u=rw  a=r  

                  a. chmod u=rwx,g=rw,o= /tmp/jerry   则权限为:drwxrw—-.

              3. 授权表示法:直接操作一类用户的一个权限

                  a. chmod o+rx, og-x   /tmp/jerry   +:添加,-去除

                  b. chmod +w  /tmp/jerry  表示只有用户属主增加写权限

[root@localhost /hello]#ll

total 0

———-. 1 root root 0 Aug 30 12:55 a

[root@localhost /hello]#chmod +w a

[root@localhost /hello]#ll

total 0

–w——-. 1 root root 0 Aug 30 12:55 a

                  c. chmod +r /tmp/jerry  表示所有的类都添加了读权限

                  d. chmod +x /tmp/jerry  表示所有的类都添加了执行权限

                  e. 示例

[root@localhost /etc]#ll yum.conf 

-rw-r–r–. 1 root root 970 Dec  3  2015 yum.conf

[root@localhost /etc]#chmod +x yum.conf

[root@localhost /etc]#ll yum.conf 

-rwxr-xr-x. 1 root root 970 Dec  3  2015 yum.conf

              4. chmod [OPTION]… OCTAL-MODE FILE…    8进制直接赋值,要全写,不能省略

                  a. chmod 234 /tmp/jerry

              5. chmod [OPTION]… –reference=RFILE FILE…    和参考文件的属性一样

                  a. chmod –reference=/,,,  /tmp/jerry

                      i. chmod –reference=/etc/passwd /tmp/jerry

              6. 选项:

                  a. -R: –recursive 递归修改,一般用于授权表示法,其他不建议使用

                      i. chmod -R 0 /tmp

              7. X:一般是递归修改权限时,为防止文件夹里面的二进制程序拥有执行权限,而文件夹可以查看,用 X ,只给目录x加权限,不给文件加x,当文件有x时无影响,只给目录加执行权限,为了安全

                  a. # chmod -R o=rwX /test  目录下的文件权限rw-   目录权限rwx  

              8. 当用户设置目录权限为000,连自己都不能看里面的文件,复制文件

      g. 思考:用户对目录有写权限,但对目录下的文件没有写权限,能否修改此文件内容?能否删除此文件?

          i. 不能修改此文件内容,但是能删除此文件

      h. umask: 文件的权限反向掩码,

          i. umask:# umask 027 设置

          ii. umask -p >> ~/ .bashrc   添加umark到配置文件中

          iii. 全局设置:/etc/bashrc  用户设置:~/,bashrc

          iv. 新建文件:

              1. 666-umask 

                  a. 用户默认:002   666-002=664

                      i. -rw-rw-r–. 1 zhao zhao 0 Aug  3 21:40 i

                  b. root默认:022   666-022=644

                      i. -rw-r–r–. 1 root root  0 Aug  3 21:39 h

          v. 新建目录:

              1. 777-umask 

                  a. 用户默认:002    777-002=775

                      i. drwxrwxr-x. 2 zhao zhao 6 Aug  3 21:40 h

                  b. root默认:022    777-022=755

                      i. drwxr-xr-x. 2 root root  6 Aug  3 21:39 g

          vi. 之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得结果中有执行权限位,则需要将该位加1,

              1. umask: 125  设置umask125,更新设置,新建文件和目录

              2. 666-125=541  理论 r-xr—-x

                  a. -rw-r—w-. 1 andy andy 0 Aug  3 21:51 file   实验得642

              3. 777-125=652  理论 rw-r-x-w-

                  a. drw-r-x-w-. 2 andy andy 6 Aug  3 21:51 file1  实验得652

              4. 如果所得结果某位有执行(奇数)权限,将其权限+1

              5. mask意思为按位屏蔽,1为该位要屏蔽。

                  a. 666   110   110   110

                  b. 125   001   010   101   umask  

                  c. 642   110   100   010   真实的结果

                  d. 屏蔽位为1,则该位上有1,则屏蔽为0,因为666已经将执行权限删除了,所有结果中不应该有执行权限。不应该用减,直接减不对,这种又不容易计算,所以用直接计算和+1来方便计算

          vii. umask 查看当前,umask越大,得出的默认权限越小,别的用户不能随意访问,为了安全起见,文件即使没有权限,root也能访问

              1. 用户默认:002 

              2. root默认:022

          viii. 注意:此类设定仅对当前shell进程有效。如果要永久有效,需写入用户家目录下的.bashrc

      i. install: copy files and set attributes 复制目录的同时修改权限

          i. 单源复制

              1. install [OPTION]… [-T] SOURCE DEST

          ii. 多源复制

              1. install [OPTION]… SOURCE… DIRECTORY

              2. install [OPTION]… -t DIRECTORY SOURCE…

          iii. 创建目录

              1. install [OPTION]… -d DIRECTORY…

          iv. 常用选项:

              1. -m,–mode==MODE: 设置目标文件权限,默认755

              2. -o,–owner==OWNER: 设置目标文件属主

              3. -g,–group=GROUP: 设置目标文件属组

                  a. install -g zhao /etc/virc /tmp/v  复制文件修改文件名,修改文件属组

          v. # install -m 640 /etc/inittab /root 复制的同时设置属性

      j. chown:change file owner and group

          i. chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。命令中的:可以用 . 来代替

          ii. chown mail:group1 log2012.log log2013.log   将两个文件的属主改为mail,属组改为group1

          iii. chown zhao:group1 /tmp/{v,virc}

          iv. chown -R :mail test6  递归修改组

      k. chgrp – change group ownership  更改属组

          i. # chgrp group file  将file的属组更换为group

      l. mktemp:create a temporary file or directory

          i. mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存

          ii. mktemp /tmp/mytmp.XXXXXXX

          iii. # myfile=$(mktemp /tmp/mytmp.XXXXXXXX)  应该是变量赋值

          iv. # echo $myfile   显示变量的值 

————————————————————————————–

    chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

        Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。

  文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。

  有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。

  每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。

[root@localhost ~]#ll

total 12

drwxr-xr-x 2 root root 4096 Mar 17 00:09 source

drwxr-xr-x 3 root root 4096 Mar 17 01:12 target

-rw-r–r– 1 root root   53 Mar 19 00:44 test.txt

1、

未经允许不得转载:江哥架构师笔记 » linux文件目录权限管理

分享到:更多 ()

评论 抢沙发

评论前必须登录!