一、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
思路:先用遞歸操作復制文件,再用chmod改變文件及其下目錄權限。
方法一:
[root@promote ~]# cp -r /etc/skel /home/tuser1 #復制文件并改名
[root@promote ~]# chmod -R 700 /home/tuser1 #改變文件權限
[root@promote ~]# ll -d /home/tuser1 #長格式查看文件權限
drwx——. 3 root root 74 5月 7 14:25 /home/tuser1
[root@promote ~]#
方法二:
[root@promote skel]# rm -rf /home/tuser1 #刪除/home/tuser1文件
[root@promote ~]# cp -r /etc/skel /home/tuser1 #復制文件并改名
[root@promote ~]# chmod -Rv 700 /home/tuser1 #改變文件權限并輸出文件信息
mode of “/home/tuser1” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla/extensions” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla/plugins” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.bash_logout” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/tuser1/.bash_profile” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/tuser1/.bashrc” changed from 0644 (rw-r–r–) to 0700 (rwx——)
[root@promote ~]#
方法三:
[root@promote ~]#rm -rf /home/tuser1 #刪除/home/tuser1文件
[root@promote ~]#cp -r /etc/skel /home/tuser1 #復制文件并改名
[root@promote ~]#chmod -Rv +rwx,go-rwx /home/tuser1 #改變文件權限并輸出文件信息
mode of “/home/tuser1” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla/extensions” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.mozilla/plugins” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/tuser1/.bash_logout” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/tuser1/.bash_profile” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/tuser1/.bashrc” changed from 0644 (rw-r–r–) to 0700 (rwx——)
[root@promote ~]#
二、編輯/etc/group文件,添加組hadoop。
方法一:[root@promote ~]# nano /etc/group
打開文件之后,在文件末行添加hadoop:x:1050: ,保存退出即可。
方法二:[root@promote ~]# echo “hadoop:x:1050:” >> /etc/group #按文件格式編輯組信息,追加重定向至/etc/group文件中
[root@promote ~]# tail -4 /etc/group #查看文件
clouds:x:2019:
nova:x:2020:openstack
mysql:x:983:
hadoop:x:1050:
[root@promote ~]#
三、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
方法一:[root@promote ~]# vim /etc/passwd #vim打開文件
在文件尾添加一行hadoop:x:1050:1050::/home/hadoop:/bin/bash
方法二:[root@promote ~]# echo “hadoop:x:1050:1050::/home/hadoop:/bin/bash” >> /etc/passwd #通過輸出重定向功能添加帳戶
[root@promote ~]# tail -3 /etc/passwd
nologin:x:1008:1008::/home/nologin:nologin
llxk:x:1051:1051::/home/llxk:/bin/bash
hadoop:x:1050:1050::/home/hadoop:/bin/bash
[root@promote ~]#
PS:現在只是添加了用戶,沒給用戶創建家目錄,su用戶至hadoop之后,命令提示符變的不一樣了,通過查看PS1值可以看出。
[root@promote ~]# echo $PS1
[\u@\h \W]\$
[root@promote ~]# su hadoop
bash-4.2$ echo $PS1
\s-\v\$
bash-4.2$ export PS1='[\u@\h \W]\$’ #通過export命令臨時修改命令提示符
[hadoop@promote root]$
可以通過定義環境變量改變用戶命令提示符的格式。不過這個定義只對當前shell有效。也可以通過修改用戶家目錄下.bash_profile文件改變命令提示符格式(但是我改了半天改不對?。?!不過看了第四題,復制/etc/skel文件為/home/hadoop之后,再試就可以了。)
四、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
[root@promote ~]# cp -r /etc/skel /home/hadoop
[root@promote ~]# chmod -Rv 700 /home/hadoop
mode of “/home/hadoop” changed from 0755 (rwxr-xr-x) to 0700 (rwx——)
mode of “/home/hadoop/.bash_logout” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/hadoop/.bash_profile” changed from 0644 (rw-r–r–) to 0700 (rwx——)
mode of “/home/hadoop/.bashrc” changed from 0644 (rw-r–r–) to 0700 (rwx——)
[root@promote ~]#
與第一題一樣,不再贅述其他方法。
五、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
[root@promote ~]# chown hadoop.hadoop /home/hadoop #屬主和屬組之間可用:也可用.。
[root@promote ~]# stat /home/hadoop
文件:”/home/hadoop”
大?。?9 塊:0 IO 塊:4096 目錄
設備:fd02h/64770d Inode:134217875 硬鏈接:2
權限:(0700/drwx——) Uid:( 1050/ hadoop) Gid:( 1050/ hadoop)
環境:unconfined_u:object_r:home_root_t:s0
最近訪問:2017-05-07 19:10:26.619631840 +0800
最近更改:2017-05-07 19:09:15.191227895 +0800
最近改動:2017-05-07 19:16:46.318042439 +0800
創建時間:-
[root@promote ~]#
六、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
方法一:利用 –i參數忽略字符大小寫
[root@promote ~]# grep -i “^s” /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 6828 kB
Slab: 63660 kB
SReclaimable: 20788 kB
SUnreclaim: 42872 kB
方法二:直接指定行首為S或s開頭。
[root@promote ~]# grep “^[Ss]” /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 6828 kB
Slab: 63660 kB
SReclaimable: 20788 kB
SUnreclaim: 42872 kB
[root@promote ~]#
方法三:利用-v選項顯示不能被匹配到的行
[root@promote ~]# grep -v “^[^Ss]” /proc/meminfo
SwapCached: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Shmem: 6828 kB
Slab: 63660 kB
SReclaimable: 20788 kB
SUnreclaim: 42872 kB
[root@promote ~]#
七、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
利用grep命令中-v選項反向顯示命令,查找行結尾不為nologin用戶的行,再用cut命令剪切出用戶名。
[root@promote ~]# cat /etc/passwd |grep -v “nologin$” |cut -d : -f1
root
sync
shutdown
halt
lxk
001
002
003
004
bash
testbash
basher
llxk
hadoop
[root@promote ~]#
八、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
直接匹配結尾為/bin/bash的行,利用cut命令剪切出用戶名
方式一:
[root@promote ~]# grep ‘/bin/bash$’ /etc/passwd |cut -d : -f 1
root
lxk
001
002
003
004
bash
testbash
basher
llxk
hadoop
[root@promote ~]#
方式二:[root@promote home]# grep “\/bin/bash$” /etc/passwd | cut –d : -f 1
方式三:[root@promote home]# grep -E “/bin/bash$” /etc/passwd | cut -d : -f 1
以上三種方式結果完全相同。
方式一中,grep后用單引號,強引用,直接引用引號內的內容。方式二中加雙引號,/需要轉義,所以前面加\,方式三中,直接用egrep更加簡單。
九、找出/etc/passwd文件中的一位數或兩位數;
[root@promote ~]# grep ‘\<[[:digit:]]\{1,2\}\>’ /etc/passwd
十、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
[root@promote ~]# ll /boot/grub/grub.conf
ls: 無法訪問/boot/grub/grub.conf: 沒有那個文件或目錄
[root@promote ~]#
沒有這個文件,只好換個文件了。
換成/etc/virc這個文件,然后文件好多行,刪除了一部分,重要的不是文件是哪個,而是命令對不對。
方式一:直接grep匹配字符查找
[root@promote home]# grep “^[[:space:]]\+” /tmp/virc
set fileencodings=ucs-bom,utf-8,latin1
” than 50 lines of registers
augroup redhat
autocmd!
” autocmd BufRead *.txt set tw=78
” When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ exe “normal! g’\”” |
\ endif
” don’t write swapfile on most commonly used directories for NFS mounts or USB sticks
” start with spec file template
[root@promote home]#
方式二:用egrep匹配字符查找
[root@promote home]# grep -E “^[[:space:]]+” /tmp/virc
set fileencodings=ucs-bom,utf-8,latin1
” than 50 lines of registers
augroup redhat
autocmd!
” autocmd BufRead *.txt set tw=78
” When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ exe “normal! g’\”” |
\ endif
” don’t write swapfile on most commonly used directories for NFS mounts or USB sticks
” start with spec file template
[root@promote home]#
十一、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
這個文件也沒有,換/etc/rc.d/rc.local
方法一:grep直接查找
[root@promote rc.d]# grep ‘^#[[:space:]]\+[^[:space:]]’ rc.local
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
# that this script will be executed during boot.
方法二:也可用egrep去掉轉義符查找
[root@promote ~]# grep -E “^#[[:space:]]+[^[:space:]]” /etc/rc.d/rc.local
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
# that this script will be executed during boot.
[root@promote ~]#
十二、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
方法一:用grep查找
[root@promote rc.d]# netstat -tan |grep ‘LISTEN[[:space:]]\+$’
tcp 0 0 0.0.0.0:22 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:25 :::* LISTEN
[root@promote rc.d]#
方法二:用egrep查找
[root@promote ~]# netstat -tan | grep -E “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
[root@promote ~]#
十三、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;
[root@promote ~]# useradd bash
[root@promote ~]# useradd testbash
[root@promote ~]# useradd basher
[root@promote ~]# useradd -s /sbin/nologin nologin
[root@promote ~]# 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:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[root@promote ~]# grep ‘^\([[:alnum:]]\{1,\}\):.*\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:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[root@promote ~]#
[root@promote ~]# grep -E ‘^([[: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:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[root@promote ~]#
吐槽一下,我在WORD排版排的挺好的,復制到這上面來完全亂了。項目編號縮進各種不能看。只好粘貼成無格式文本。
原創文章,作者:lixinkuan,如若轉載,請注明出處:http://www.www58058.com/74987
學習進度要跟上了,第四周已經算是很落后了,很多學員的都開始10周作業了。