1 Star 0 Fork 37

楚建芳 / Linux权限管理拓展训练

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Linux权限管理拓展训练

一、基础权限拓展练习

  1. 用户基础权限为9位,每三位为一组,每组代表着谁的权限?

    第一组代表拥有者的权限
    第二组代表所属用户组当中的用户的权限
    第三组代表其它用户(即不是拥有者,也不是文件用户组当中的用户)的权限
  2. 权限中的rwx-,每个字符所代表什么意思?对应的数字是什么?

    r代表读,数字4
    w代表写或修改,数字2
    x代表执行,数字1
    -代表无权限,数字0
  3. -rwxr-xr-x,写出对应数字权限

    755
  4. -rwxr--r--,写出对应数字权限

    744
  5. -r-xr-x--x,写出对应数字权限

    551
  6. -rw-r-xr-x,写出对应数字权限

    655
  7. -r--r--r--

    444
  8. -r-xr-----,写出对应数字权限

    540
  9. ---x-w-r--,写出对应数字权限

    124
  10. -rwxr--rw-,写出对应数字权限

    746
  11. -rw-r--r--,写出对应数字权限

    644
  12. ---xr--rwx,写出对应数字权限

    147
  13. 777,写出对应字母权限

    rwxrwxrwx
  14. 545,写出对应字母权限

    r-xr--r-x
  15. 744,写出对应字母权限

    rwxr--r--
  16. 600,写出对应字母权限

    rw-------
  17. 641,写出对应字母权限

    rw-r----x
  18. 711,写出对应字母权限

    rwx--x--x
  19. 700,写出对应字母权限

    rwx------
  20. 555,写出对应字母权限

    r-xr-xr-x
  21. 733,写出对应字母权限

    rwx-wx-wx
  22. 713,写出对应字母权限

    rwx--x-wx
  23. 建一个目录/test,查看这个目录的默认权限是?

    mkdir /test
    ls -al /test
    默认权限是755
  24. 进入/test目录中,建一个文件abc,查看其默认的权限为?

    cd /test
    touch abc
    ls -l
    644
  25. 创建一个文件test.txt,并其将权限改为600.

    touch test.txt
    chmod 600 test.txt
  26. 将test.txt文件的权限改为755.

    chmod 755 test.txt
  27. 将test.txt文件的权限改为000.

    chmod 000 test.txt
  28. 修改test.txt文件的权限为644.

    chmod 644 test.txt
  29. 给test.txt文件的属主加上x权限。

    chmod u+x test.txt
  30. 给test.txt文件的其他用户加上x权限。

    chmod o+x test.txt
  31. 去除test.txt文件的所有执行权限。

    chmod a-x test.txt
  32. 给/test目录及目录下的所有文件或目录的权限统一改为744。

    chmod -R 744 /test
  33. 给/test目录及目录下的所有文件或目录加上x权限(属主、属组、其他用户都执行权限)。

    chmod -R a+x /test
  34. 使用stat命令查看test.txt文件的权限,并使用awk将权限取出来,比如:755

  35. 使用stat命令查看test.txt文件的权限,并使用sed将权限取出来,比如:755

二、特殊权限拓展练习

  1. 创建目录/web01,所有者是user01,所属组是user02;

    mkdir  /web01
    useradd user01
    groupadd user02	创建组
    chown user01.user02 /web01
  2. 复制/etc/fstab文件到/opt下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限

    [root@oldboy ~]# cp /etc/fstab /opt/fstab
    [root@oldboy ~]# groupadd apps
    [root@oldboy ~]# useradd tomcat
    [root@oldboy ~]# chown tomcat.apps /opt/fstab
    [root@oldboy ~]# chmod g+w,o-r /opt/fstab
    [root@oldboy ~]# ll /opt
    total 4
    -rw-rw----. 1 tomcat apps 501 Jul  2 15:12 fstab
  3. 将以下权限翻译成数字,将数字权限用字母表示

    rw-r-xr--
    654
    rw-r--r--
    644
    rwx--x--x
    711
    rw-------
    600
    rwxr--r--
    744
    rw-rw-r--
    664
    rwxrwxrwx
    777
    751			
    rwxr-x--x
    771			
    rwxrwx--x
    632		
    rw--wx-w-
    551			
    r-xr-x--x
    622			
    rw--w--w-
    746		
    rwx-w-rw-
    644			
    rw--r--r-
    755	
    rwxr-xr-x
  4. 假设公司研发部的用户David和Peter属于组A,财务部的用户life和laowang属于组B,根据要求创建用户及组。

    [root@oldboy ~]# groupadd A
    [root@oldboy ~]# groupadd B
    [root@oldboy ~]# useradd David -g A
    [root@oldboy ~]# useradd Peter -g A
    [root@oldboy ~]# useradd life -g B
    [root@oldboy ~]# useradd laowang -g B
  5. 接第4题,建立目录file1,该目录里面的文件只能由研发部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何操作

    [root@oldboy ~]# mkdir file1
    [root@oldboy ~]# ll -d file1
    drwxr-xr-x. 2 root root 6 Jul  2 15:44 file1
    [root@oldboy ~]# chown .A file1
    [root@oldboy ~]# ll -d file1
    drwxr-xr-x. 2 root A 6 Jul  2 15:44 file1
    [root@oldboy ~]# chmod 770 file1
    [root@oldboy ~]# ll -d file1
    drwxrwx---. 2 root A 6 Jul  2 15:44 file1
  6. 接第题,建立目录file2,该目录里面的文件只能由财务部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何操作

    [root@oldboy ~]# mkdir file2
    [root@oldboy ~]# chown .B file2
    [root@oldboy ~]# chmod 770 file2
    [root@oldboy ~]# ll -d file2
    drwxrwx---. 2 root B 6 Jul  2 15:49 file2
  7. 接第4题,建立目录file3,该目录里面的文件研发部人员可以读取、增加、删除、修改以及执行,其他部门只能做查看操作

    [root@oldboy ~]# mkdir file3
    [root@oldboy ~]# chown .A file3
    [root@oldboy ~]# chmod 775 file3
    [root@oldboy ~]# ll -d file3
    drwxrwxr-x. 2 root A 6 Jul  2 15:56 file3
  8. 接第4题,建立目录file4,该目录里面的文件只有研发部的经理David拥有所有操作权限,研发部的其他人只有查看权限,其他部门不能进行任何操作

    [root@oldboy ~]# mkdir file4
    [root@oldboy ~]# chown David.A file4
    [root@oldboy ~]# chmod 750 file4
    [root@oldboy ~]# ll -d file4
    drwxr-x---. 2 David A 6 Jul  2 15:59 file4
  9. 新建用户组,shengchan,demo,要求如下:

    • tom是shengchan组的附加成员
    • leo是demo组的附加成员
    • 新建用户admin不属于以上任何一个组
    [root@oldboy ~]# groupadd  shengchan
    [root@oldboy ~]# useradd tom -G shengchan
    
    [root@oldboy ~]# groupadd demo
    [root@oldboy ~]# useradd leo -G demo
    
    [root@oldboy ~]# useradd admin
    [root@oldboy ~]# id admin
    uid=1137(admin) gid=1137(admin) groups=1137(admin)
  10. 新建目录要求如下:

    • /pub/目录为公共存储目录,所有用户可以读写执行
    • /sc目录是生产部的目录,生产部的成员读写执行,并且生产部人员建立的文件自动归属到shengchan组中
    • admin用户可以在/sc目录中可以读
    [root@oldboy ~]# mkdir /pub
    [root@oldboy ~]# chmod 777 /pub
    [root@oldboy ~]# ll -d /pub
    drwxrwxrwx. 2 root root 6 Jul  2 16:28 /pub
    [root@oldboy ~]# mkdir /sc
    [root@oldboy ~]# chown -R  .shengchan /sc
    [root@oldboy ~]# chmod  2775 /sc
    chmod 775 /sc
  11. 新建目录/www01,/www02,/www03

    [root@oldboy ~]# mkdir /www{01..03}
  12. 接第11题,更改/www01目录的权限,使其他用户对它没有任何权限;

    [root@oldboy ~]# chmod 750 www01
    [root@oldboy ~]# ll -d www01
    drwxr-x---. 2 root root 6 Jul  2 16:40 www01
  13. 接第11题,更改/www02目录的权限,使所属组对它拥有读写执行权限;

    [root@oldboy ~]# chmod 770 www02
  14. 接第11题,更改/www03目录的权限,任何用户都可以读写,但是在/www03目录中创建的任何文件都属于grp1组

    [root@oldboy ~]# groupadd grp1
    [root@oldboy ~]# chown .grp1 /www03
    [root@oldboy ~]# chmod 2777 /www03
    [root@oldboy ~]# ll -d /www03
    drwxrwsrwx. 2 root grp1 6 Jul  2 16:40 /www03
  15. 新建用户zhangsan,lisi,wangergou,三个用户都属于同一个用户组f4,密码都为oldboy

    [root@oldboy ~]# groupadd f4
    [root@oldboy ~]# useradd zhangshan -g f4
    [root@oldboy ~]# useradd lisi -g f4
    [root@oldboy ~]# useradd wangergou -g f4
    [root@oldboy ~]# echo oldboy|passwd --stdin zhangshan
    Changing password for user zhangshan.
    passwd: all authentication tokens updated successfully.
    [root@oldboy ~]# echo oldboy|passwd --stdin lisi
    Changing password for user lisi.
    passwd: all authentication tokens updated successfully.
    [root@oldboy ~]# echo oldboy|passwd --stdin wangergou
    Changing password for user wangergou.
    passwd: all authentication tokens updated successfully.
  16. 接15题,上述用户和组都能在/data/code目录,访问,创建,删除文件,其他用户无法访问该目录

    [root@oldboy ~]# mkdir /data/code
    [root@oldboy ~]# chown .f4 /data/code
    [root@oldboy ~]# chmod 770 /data/code
    [root@oldboy ~]# ll -d /data/code
    drwxrwx---. 2 root f4 6 Jul  2 16:59 /data/code
  17. 接15题,/data/code目录下创建的所有文件自动归属于f4组所有

    [root@oldboy ~]# chmod g+s /data/code
    [root@oldboy ~]# ll -d /data/code
    drwxrws---. 2 root f4 6 Jul  2 16:59 /data/code
  18. 接15题,现在新增了一批用户,属于默认组,需要开放其他用户在code目录的读权限

    [root@oldboy ~]# chmod o+rx /data/code
    [root@oldboy ~]# ll -d /data/code
    drwxrwsr-x. 2 root f4 6 Jul  2 16:59 /data/code
  19. 接15题,新增的所有其他用户在code目录下创建的文件自动归属f4组

    [root@oldboy ~]# chmod 777 /data/code
  20. 有两个用户组,分别为python组、linux组,python组的人可以修改读取python组的文件,但不能让linux组的人读取;linux组的人可以修改读取linux组的文件,但不能让python组的人读取。

    [root@oldboy ~]# groupadd python
    [root@oldboy ~]# touch python
    [root@oldboy ~]# chmod g=rwx,o=- python
    [root@oldboy ~]# chown .python python
    
    
    [root@oldboy ~]# groupadd linux
    [root@oldboy ~]# touch linux
    [root@oldboy ~]# chown .linux linux
    [root@oldboy ~]# chmod g=rwx,o=- linux
  21. 在当前目录中新建文件text,假设该文件的权限为614。现要求设置该文件属主(u)增加执行权限,属组(g)增加写权限,其他用户(o)删除读权限,应该如何操作,另外修改后的权限用字母应该如何表示

    [root@oldboy ~]# chmod u+x,g+w,o-r text
    -rwx-wx---
  22. 在当前目录中创建目录aaa,并把该目录的权限设置为只有文件属主有读、写和执行权限

    [root@oldboy ~]# mkdir aaa
    [root@oldboy ~]# chmod 700 aaa
    [root@oldboy ~]# ll -d aaa
    drwx------. 2 root root 6 Jul  2 19:14 aaa
  23. 设某文件myfile的权限为-rw-r--r--,若要增加所有人可执行的权限,应该怎么做

    chmod +x myfile
  24. 登录到普通用户user01,删除/opt这个目录,提示权限不足,如果要删除/opt这个目录,不使用root用户删除的话,你该怎么解决?

    chmod u+s /usr/bin/rm
  25. 创建目录/test,要求所有用户对这个目录有所有权限,现在只想让每个用户在这个目录只能对属于自己的文件进行操作,怎么实现?

    mkdir /test
    chmod 777 /test
    chmod o+t /test
  26. 创建一个文件/opt/file.txt,这个文件很重要,现要求所有人只能查看和追加内容进去,不允许有其他的操作,怎么实现?

    touch /opt/file.txt
    chmod o=rw /opt/file.txt
    chattr +a /opt/file.txt
  27. 取消上题的设置,现要求所有人只能查看此文件,不允许有其他的操作,怎么实现?

    chattr -a /opt/file.txt
    chattr +i /opt/file.txt
  28. 请问在当前系统中新创建的目录和文件,权限各是多少,为什么?

    目录:755,0777-0022(umask)
    文件:644,0666-0022
  29. 如果我想要在系统中新创建的目录权限为555,文件为444,怎么实现?

    umask 222
  30. umask怎么计算目录及文件权限的?

    目录:777-umask
    文件:666-umask,若umask有奇数位,则对应的权限为数字+1
  31. 输入last,统计当前连接本机的每个远程终端IP的连接总次数

    [root@oldboy ~]# last|awk '/pts/ {print $3}'|uniq -c
    38 10.0.0.1
    32. 输入lscpu,取出当前系统的cpu核心数
    [root@oldboy ~]# lscpu|awk -F '[: ]+' 'NR==7{print $4}'
    1
  32. 输入df -h,取出当前系统根分区剩余可用磁盘空间

    [root@oldboy ~]# df -h|awk -F ' ' 'NR==2{print $4}'
    
    18G 
  33. 显示/proc/meminfo文件中以s开头的行(忽略大小写)

    [root@oldboy ~]# grep -i '^s' /proc/meminfo
    SwapCached:            0 kB
    SwapTotal:       1048572 kB
    SwapFree:        1048572 kB
    Shmem:             14048 kB
    Slab:              94176 kB
    SReclaimable:      46988 kB
    SUnreclaim:        47188 kB
  34. 扩展题:在你修改了test.txt文件之后,如何知道在你下次要修改这个文件时,这个文件有没有被别人修改过?

    [root@centos7 ~]# touch test.txt
    [root@centos7 ~]# echo 123 > test.txt
    [root@centos7 ~]# md5sum test.txt > figer.txt
    [root@centos7 ~]# md5sum -c figer.txt
    test.txt: OK

三、默认权限umask

umask 用于设置默认去掉的权限,通常为0022,第一位为特殊权限位,后面的三位表示:给同一组的用户和其它用户都去掉写权限

而文件夹的默认权限是:777 -022 755 rwxr-xr-x
而文件的默认权限是:666 - 022 644  rw-r--r--

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/chujianfang/linux-permission-extension-practice.git
git@gitee.com:chujianfang/linux-permission-extension-practice.git
chujianfang
linux-permission-extension-practice
Linux权限管理拓展训练
master

搜索帮助