N26-第四周作業

一、復制/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

N26-第四周作業

十、顯示/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

(0)
lixinkuanlixinkuan
上一篇 2017-05-07
下一篇 2017-05-08

相關推薦

  • vim學習

    vim學習 認識與介紹   vim是一款linux下查看編輯文本文件的一款文本編輯器。一般用來查看修改配置文件、日志文件等文本類文件。 打開文件   vim [OPTIONS] [FILE …]     +#: 打開文件后,直接讓文件處于第#行     +/…

    Linux干貨 2016-10-09
  • centos下nginx啟動腳本和chkconfig管理

    在安裝完nginx后,要用/usr/local/nginx/sbin/nginx來啟動nginx,顯然十分不方便。如果能像apache一樣,直接通過腳本進行管理就方便多了。 vim /etc/init.d/nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27…

    Linux干貨 2017-09-27
  • 計算機的組成及其功能

    計算機由運算器,控制器、存儲器及輸入、輸出裝置五部分組成。 第一,運算器(Arithmetical and Logical Unit),也稱作算術邏輯單元,主要是對數據進行各種運算。 第二,控制器(Control Unit)是計算機的控制中心,協調各計算機各部分按照預先的目標和步驟有序的工作??刂破鲝拇鎯ζ髦兄饤l取出指令,分析每條指令規定的操作和所需數據的存…

    Linux干貨 2016-09-17
  • while until 循環用法和 case 條件base編程

    寫一個腳本: (1)能接受四個參數:start、stop、restart、status 輸入start輸出starting,腳本名為finished (2)其它任意參數均報錯退出 #!bin/bash #author:jian #date:2017-11-12 #discription: read -p “please input a strin…

    Linux干貨 2017-11-14
  • LAMP

    練習:編譯安裝amp,提供兩個基于主機名的虛擬主機      (1) https, 部署pma      (2) 部署wordpress 編譯安裝: mariadb: # wget 10.1.0.1:/pub/Sources/7.x86_64/mariadb/…

    Linux干貨 2016-10-12
  • linux 文件管理命令

    cp 復制文件或者路徑 單源復制: cp [OPTION]…[-T] SOUTCE DEST 如果DEST不存在:則事先創建此文件,并復制源文件的數據流到DEST中 如果DEST存在:   如果DEST是非目錄文件:則覆蓋目標文件; 如果DEST是目錄,就在這個目錄中創建一個同名的文件,把源數據復制到這個文件中。 多源復制: cp [O…

    Linux干貨 2017-08-28

評論列表(1條)

  • luoweiro
    luoweiro 2017-06-26 23:09

    學習進度要跟上了,第四周已經算是很落后了,很多學員的都開始10周作業了。

欧美性久久久久