1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
Linux的权限管理:
文件的权限主要针对三类对象进行管理:
owner:属主 u
group:属组 g
other:其它 o
每个文件针对每类访问者都定义了三种权限:
r:Readable
w:writable
x:eXcutable
文件:
r:可使用文件查看类工具获取其内容
w:可修改其内容
x:可以把此文件提请内核启动为一个进程
目录:
r:可以使用ls查看此目录中文件列表
w:可在此目录中创建文件,也可删除此目录中的文件
x:可以使用ls -l 查看此目录中文件列表,可以cd进入此目录
用八进制表示权限的方式:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
chmod命令:更改文件权限
用法: chmod [OPTION]... MODE[,MODE]... FILE...
or: chmod [OPTION]... OCTAL-MODE FILE... //通过八进制更改文件权限
or: chmod [OPTION]... --reference=RFILE FILE...
mode: 权限设定字串,格式如下 : [ugoa...][[+-=][rwx]...][,...],其中
u:属主
g:属组
o:其它
a:所有用户
+:添加权限
-:删除权限
=:赋值权限
常用选项:
-c,--changes
只输出被改变文件的信息
-f,--silent,--quiet
当chmod不能改变文件模式时,不通知文件的用户
--help
输出帮助信息。
-R,--recursive
可递归遍历子目录,把修改应到目录下所有文件和子目录
--reference=filename
参照filename的权限来设置权限
-v,--verbose
无论修改是否成功,输出每个文件的信息
[root@localhost home]# cp -r /etc/skel/ ./tuser1/ //-r复制目录 [root@localhost home]# chmod -R go= tuser1/ [root@localhost tuser1]# ll -a total 16 drwx------. 3 root root 74 Aug 26 23:01 . drwx------. 9 root root 4096 Aug 26 23:01 .. -rw-------. 1 root root 18 Aug 26 23:01 .bash_logout -rw-------. 1 root root 193 Aug 26 23:01 .bash_profile -rw-------. 1 root root 231 Aug 26 23:01 .bashrc drwx------. 4 root root 37 Aug 26 23:01 .mozilla
2、编辑/etc/group文件,添加组hadoop。
hadoop:x:3005:
3、手动编辑/etc/passw d文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
hadoop:x:3005:3005::/home/hadoop:/bin/bash
4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
[root@localhost home]# chmod -R go= hadoop [root@localhost home]# ll total 8 drwx------. 3 root root 74 Aug 27 02:10 hadoop drwx------. 3 hadoop 3006 74 Aug 27 02:06 june drwx------. 15 jun_shao jun_shao 4096 Aug 26 21:26 jun_shao drwx------. 3 mageia mageia 74 Aug 20 08:06 linux drwx------. 3 1005 distro 74 Aug 20 08:05 mandriva drwx------. 5 openstack clouds 4096 Aug 21 00:56 openstack drwx------. 3 slackware distro 74 Aug 20 08:25 slackware drwx------. 3 root root 74 Aug 26 23:01 tuser1 drwx------. 3 user1 user1 74 Aug 21 10:36 user1
5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
chown命令:更改文件的属主属组
用法:chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
选项:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
[root@localhost home]# chown -R hadoop hadoop/
6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
[root@localhost home]# cat /proc/meminfo | grep '^[s|S]' //[]匹配括号中的单个字符,^括号外面表示以某个字符开头,|表示或 SwapCached: 72 kB SwapTotal: 2097148 kB SwapFree: 2094544 kB Shmem: 5952 kB Slab: 83580 kB SReclaimable: 31844 kB SUnreclaim: 51736 kB [root@localhost home]# cat /proc/meminfo | grep '\<[S|s]' //\<锚定字符串的开始 SwapCached: 64 kB SwapTotal: 2097148 kB SwapFree: 2094552 kB Shmem: 5960 kB Slab: 83580 kB SReclaimable: 31844 kB SUnreclaim: 51736 kB
7、显示/etc/passw d文件中其默认shell为非/sbin/nologin的用户;
[root@localhost home]# cat /etc/passwd | grep -v '/sbin/nologin\>' //-v取反 \>锚定字符串的结束 root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash jun_shao:x:1000:1000:jun_shao:/home/jun_shao:/bin/bash mageia:x:1100:1100::/home/linux:/bin/bash slackware:x:2002:2016::/home/slackware:/bin/tcsh openstack:x:3003:2019::/home/openstack:/bin/bash user1:x:3004:3004::/home/user1:/bin/bash hadoop:x:3005:3005::/home/hadoop:/bin/bash [root@localhost home]# cat /etc/passwd | grep -v '/sbin/nologin\>' | cut -d: -f1 root sync shutdown halt amandabackup jun_shao mageia slackware openstack user1 hadoop
8、显示/etc/passw d文件中其默认shell为/bin/bash的用户;
[root@localhost home]# grep '/bin/bash\>' /etc/passwd | cut -d: -f1 root amandabackup jun_shao mageia openstack user1 hadoop
9、找出/etc/passw d文件中的一位数或两位数;
[root@localhost ~]# grep -o '\<[0-9]\{1,2\}' /etc/passwd //-o显示匹配的内容,{}表示区间,匹配[0-9]两次 0 0 1 1 2 2 3 4 4 7 5 0 6 0 7 0 8 12 11 0 12 10 14 50 99 99 17 17 99 99 99 99 81 81 99 99 17 17 59 59 99 99 11 11 99 99 33 6 99 76 99 99 99 98 32 32 99 98 17 17 38 38 10 10 29 29 65 65 75 75 99 98 98 98 17 17 42 42 98 98 70 70 89 89 74 74 72 72 10 10 11 11 20 20 30 20 98 98 30 30 30 30 30 30 30 30 30 30 30 30
10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
[root@localhost home]# grep '^[[:space:]]\+' /boot/grub2/grub.cfg //[:space:]表示空白字符,+表示匹配0次或多次 load_env set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true set default="${saved_entry}" menuentry_id_option="--id" menuentry_id_option="" set saved_entry="${prev_saved_entry}" save_env saved_entry set prev_saved_entry= save_env prev_saved_entry set boot_once=true if [ -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi set timeout_style=menu set timeout=5 set timeout=5 source ${prefix}/user.cfg if [ -n ${GRUB2_PASSWORD} ]; then set superusers="root" export superusers password_pbkdf2 root ${GRUB2_PASSWORD} fi load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' be50a901-277e-4252-b8be-717299df19f5 else search --no-floppy --fs-uuid --set=root be50a901-277e-4252-b8be-717299df19f5 fi linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 initrd16 /initramfs-3.10.0-327.el7.x86_64.img load_video insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' be50a901-277e-4252-b8be-717299df19f5 else search --no-floppy --fs-uuid --set=root be50a901-277e-4252-b8be-717299df19f5 fi linux16 /vmlinuz-0-rescue-5c7c63d6669b43fa947518735648b83b root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet initrd16 /initramfs-0-rescue-5c7c63d6669b43fa947518735648b83b.img source ${config_directory}/custom.cfg
11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
[root@localhost home]# grep '^#[[:space:]]\+[^[:space:]]' /boot/grub2/grub.cfg # DO NOT EDIT THIS FILE # It is automatically generated by grub2-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # Fallback normal timeout code in case the timeout_style feature is # unavailable. # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.
12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
[root@localhost home]# netstat -tan | grep 'LISTEN[[:space:]]*$' tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;
[root@localhost home]# grep "^\(\<[[:alnum:]]\+\>\).*\1$" /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt bash:x:3006:3006::/home/bash:/bin/bash nologin:x:3009:3009::/home/nologin:/sbin/nologin