Linux项目权限管理及LVM习题

本文发布时间: 2019-Mar-22
注意:如果题目中用到的目录没有就要自己手动去建立。场景一:某公司要新建一个项目,此项目文档,必须要符合以下要求,你是其请来的一个系统管理员,要按照如下要求去设计项目的框架,你该如何建立。1.此项目叫program12.该项目的主要管理员叫tom,该项目的管理组织叫project。3.该项目的管理员拥有对此项目所有的权限。组织的人员对此项目有读取,修改的权力。为保证项目的安全运作,此组织的以为的一律不能对此项目有读写执行的权力。所以有操作均由root在root的home文件夹下完成,当然也可以换其它不同的文件夹。(因权限问题建议在根目录下进行)创建项目组和项目目录[root@www ~]#groupadd project[root@www ~]#mkdir program1添加管理员tom账号[root@www ~]#useradd tom因管理员对这个项目有所有的权限,设置这个项目所有者为tom项目要支持组织project的读取和修改,设置项目的group为project [root@www~]# chown -R tom:project program1 #参数-R为递归,表示这个文件下面的所有都是所有者为tom,group为project设置项目为为管理员和这个组织都有r,w,x的权限 [root@www~]# chmod -R 770 program1/最后将这个项目的人员加入到这个组中。以添加xpl这个账号为例: [root@www~]# usermod -G project xpl查看/etc/group如果最后的:后面有刚才加入的账号名说明添加成功了。[root@www ~]# cat /etc/group | grep projectproject:x:1007:xpl【完成】测试下看看是不是符合要求。Tom管理员的测试: [tom@www program1]$ pwd/root/program1[tom@www program1]$ mkdir program-test[tom@www program1]$ lsprogram-test更换成project这个组中的xpl看看[xpl@www program1]$ pwd/root/program1[xpl@www program1]$ lsprogram-test[xpl@www program1]$ mkdir program-test-xpl[xpl@www program1]$ lsprogram-test program-test-xpl更换与项目无关的人员看看[xupanlong@www ~]$ cd /root/program1-bash: cd: /root/program1: Permission denied测试完成没有问题,正确的。场景二:某大学的计算机应用专业的教授,分配给某个班级一项作业。把班级分成四个小组。1.分成ABCD四组。四个组同做一个项目,带项目完成,有教授打分。2.A组由班长(monitor)为第一个组的领导。管理第一个组(group1)的项目(program1)。3.B组由副班长(vicemonitor)为第二组的领导,管理第二个组(group2)的项目(program2)。4.C组由学习委员(CISOS)为第三个组的领导,管理第三个组(group3)的项目(program3)。5.D组有纪律委员(CICOD)为第四个组的领导,管理第四个组(group4)的项目(program4)。6.教授必须要能对他们四个组的内容进行可读可写,可修改的权限。组与组之间一律不能干扰或查看对方的项目的内容。和场景一类似,不再细说1,2,3,4四个组的情况和上面的一样,只是最后教授要看这四个全部的东西要有全部的修改权限用ACL(access control list)来实现。直接代码正题,这里只说第一组的,其它三个组的都类似。这里我们指定教授使用的是teacher这个账号先把这账号创建好:[root@www ~]# useradd teacher第一组: [root@www~]# useradd monitor[root@www ~]# mkdir program1 #这个上面已经建立过这个目录了所以再次建立会出错是正常的,所以出错不管下面了直接修改权限就好了。[root@www ~]# groupadd group1[root@www ~]# chown -R monitor:group1 program1[root@www ~]# chmod -R 770 program1真正要使用时,到这里要把使用的在这个组中的账号加上,参考场景一[root@www ~]# setfacl -m u:teacher:rwx program1第二、三、四组同上。1.创建名为student的用户,并将其uid设为1001,创建名为private的组,private的gid为400,并将student的私有组设成private。[root@www ~]#useradd -u 1001 -g private student查看是是否正确[root@www ~]#cat /etc/passwd | grep studentstudent:x:1001:400::/home/student:/bin/bash #uid=1001,gid=400没有问题2.查找出在etc目录下所有大小为10K的文件,并将其复制到/tmp/findfiles目录中。[root@www ~]#find /etc/ -size 10k -exec cp {} /tmp/findfiles \;3.查找所有已student用户为拥有者的文件,并复制到/tmp/student目录中。[root@www ~]# find/ -user student -exec cp {} /tmp/student \; #会的错误提示,提示省略目录,因为我们是复制文件,所以有这个错误是正常的。4.创建一个大小为500M的交换分区,并使其永久挂载。先用fdisk /dev/sda来建立一个新的分区,我这儿磁盘没有空间了所以这个就不做了,我操作的大体给你看下流程吧:[root@www ~]#fdisk /dev/sdaWARNING:DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') andchange display units to sectors (command 'u').Command (m forhelp): p #查看当前分区情况,输入?查看帮助,n为新建。你可以man fdisk 下看看使用,如果只是笔试考试写这些完全够了,如果上机自己还是实践下。分区不太清楚的话可以再问下我。Disk /dev/sda:21.5 GB, 21474836480 bytes255 heads, 63sectors/track, 2610 cylindersUnits =cylinders of 16065 * 512 = 8225280 bytesSector size(logical/physical): 512 bytes / 512 bytesI/O size(minimum/optimal): 512 bytes / 512 bytesDisk identifier:0x0003d0c5 Device Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 doesnot end on cylinder boundary./dev/sda2 26 791 6144000 83 LinuxPartition 2 doesnot end on cylinder boundary./dev/sda3 791 1428 5120000 83 Linux/dev/sda4 1428 2611 9501696 5 Extended/dev/sda5 1429 1939 4096000 8e Linux LVM/dev/sda6 1939 2194 2048000 83 Linux/dev/sda7 2194 2321 1024000 82 Linux swap / Solaris/dev/sda8 2322 2415 755023+ 8e Linux LVM/dev/sda9 2416 2537 979933+ 83 Linux建立一个分区后格式化为swap专用的,以/dev/sda9为例:[root@www ~]#mkswap /dev/sda9 #格式化[root@www ~]#swapon /dev/sda9 #现在就直接挂载使用永久挂载要写入/etc/fstab中[root@www ~]#vim /etc/fstab #在这个文件中加入下面这一行/dev/sda9 swap swap defaults 0 05.以大文件的方式创建一个大小为500M的交换空间,并使其永久挂载。基本同上:[root@www ~]# ddif=/dev/zero of=/tmp/swap_file bs=1M count=500[root@www ~]#mkswap /tmp/swap_file[root@www ~]#vim /etc/fstab #在这个文件中加入下面这一行/tmp/swap_file swap swap defaults 0 06.建立一个计划任务,内容是,在2013年的5月30日4点30分重启你本地的系统。[root@www ~]# at04:30 2013-05-30at>/sin/rebootat><EOT> #这里按Ctrl+D来结束输入,可以写多个命令,要写绝对路径,一个命令写完回车换行job 6 at2013-05-30 04:307.创建一个目录,名为test,并设置其权限为777,要求,此目录下的所有文件只能由root与这些文件本身的拥有者才能删除。通过SBIT来实现[root@www ~]# mkdirtest[root@www ~]#chmod 1777 test8.创建一个目录,名为test1,设置其拥有者为root,拥有组为student。要求在此目录下所创建的任何东西都自动继承test1目录的拥有组。通过SGID来实现[root@www ~]#groupadd student[root@www ~]#mkdir test1[root@www ~]#chown root:student test1[root@www ~]#chmod 2770 test19.创建一个逻辑卷lv0,此逻辑卷是属于vg0的。要求,vg0的最大大小为500M,逻辑卷的大小为300M。并挂载到/data目录中,并使其在系统重启后自动挂载。总体流程:建立实体磁盘分区,建立pv,建立vg,建立lv,格式化lv,挂载mount建立pv时都要先建立相应的磁盘[root@www ~]#pvcreate /dev/sda{5,8,9}[root@www ~]#pvscan #查看自己都建立了哪些pvPV /dev/sda5 VG vg_www lvm2 [3.90 GiB/ 0 free]PV /dev/sda8 VG vg_www lvm2 [736.00MiB / 0 free]PV /dev/sda9 lvm2 [956.97 MiB]Total: 3 [5.56 GiB] / in use: 2 [4.62 GiB] /in no VG: 1 [956.97 MiB][root@www ~]#vgcreate vg_name /dev/sda{5,8,9} #在具体的这个题目中你只用建立一个500M的分区,写的时候写一个设备就好,如:vgcreate vg_name /dev/sda12我这里………………没空间了,没办法去实践[root@www ~]#vgdisplay--- Volume group ---VG Name vg_www #这个是我装系统时自己建立的vg名字,也就是上面一个命令中写的名字可以自己随便写System ID Format lvm2Metadata Areas 2Metadata Sequence No 10VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 2Act PV 2VG Size 4.62 GiBPE Size 4.00 MiBTotal PE 1183Alloc PE / Size 1183 / 4.62 GiBFree PE/ Size 0 / 0 #看这个数量是多少下面建立时的那个数就写的多少,我的VG全部放在lv了,所以为0VG UUID drQ8xf-2A34-Eqb2-s97G-1TnF-4tnu-Z0hNjg[root@www ~]#lvcreate -l 上面说到pe的数-n lv_name vg_name #lv_name这个可以随便写[root@www ~]#mkfs.ext4 /dev/vg_name/lv_name #格式化[root@www ~]#vim /etc/fstab #加入下面的东西/dev/vg_name/lv_name /data ext4 defaults 1 210.扩展lv0,把lv0大小扩展为700M,并且无数据丢失。流程:fdisk建立磁盘分区, pvcreate建立pv, vgextend扩大vg, lvresize调整lv大小,Resize2fs变更的大小投入实际使用[root@www ~]#fdisk/dev/sda #建立一个200M的分区,参考上面的分区建立[root@www ~]#pvcreate/dev/sda10 #刚才建立的200M的分区[root@www ~]#vgextendvg_name /dev/sda10 #加入刚建立的pv[root@www ~]#vgdisplay #同上面说的找到free pe的数量下面要用[root@www ~]#lvresize–l +上面的free pe数量 /dev/vg_name/lv_name #因为这里是要增加大小所以在free pe前面有个+号[root@www ~]#resize2fs/dev/vg_name/lv_name11.缩小lv0,把lv0的大小缩小到400M,并无数据丢失。[root@www ~]#umout/data #先卸载再调整大小[root@www ~]#resize2fs/dev/vg_name/lv_name 400M12.为lv0制作一个快照名为snaplv0,大小为50M,并挂载到/snaplv目录中,并使其永久挂载。流程和上面的差不多[root@www ~]#fdisk/dev/sda #假设建立在为/dev/sda11大小50M[root@www ~]#pvcreate/dev/sda11[root@www ~]#vgextendvg_name /dev/sda11 #快照的建立必须是在同一个vg里面才能建立所要的快照,所以用/dev/sda11建立/dev/vg_name/lv_name的快照必须是用/dev/sda11建立类似/dev/vg_name/lv_snapshot[root@www ~]#vgdisplay #因为vg_name中新加入了/dev/sda11所以用这个查看加入后vg_name有多少新的可用的free pe,同上面说的下面要用的[root@www ~]#lvcreate–l 上面看的free pe的数量–s –n lv_snapshot/dev/vg_name/lv_name #lv_snapshot是快照的名字,可以随便写,这一行和上面的是一行,这是直接指定大小是多少所以在free pe前面就没有+号了。完成了写入/etc/fstab中吧,还是老样子[root@www ~]#vim/etc/fstab加入下面这些/dev/vg_name/lv_snapshot /snaplv ext4 defaults 1 2


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表