項目 | 內容 |
---|---|
這個作業屬於哪個課程 | 2020春季Linux系統與應用(南昌航空大學-信息工程學院) |
這個作業的要求在哪里 | 作業鏈接,點這里啦! |
學號-姓名 | 17041517-漆京 |
作業學習目標 | 1. 學習Linux系統用戶管理 2. 學習vim使用及配置 |
1,Linux用戶管理
簡答:Linux系統為什么應避免使用root用戶登錄?
答:任何系統都應避免使用root權限登錄,因為root具有全權管理權,可以做任何事。
其危害是:(1),權力大,自己誤操作的破壞性就大(主要危害);
(2),如果被黑,對方得到的是root的權限,即全權控制權。
操作
1),如何在與用戶有關的三個文件中查看當前用戶的信息?
cat /etc/passwd |grep crystal #查看當前用戶crystal的用戶配置文件(用戶信息)
cat /etc/group |grep crystal #查看當前用戶crystal的組配置文件(組信息)
sudo cat /etc/shadow |grep crystal #查看當前用戶crystal的口令配置文件(密碼和登錄信息,加密文件)
請簡要描述這三個文件?
(1),/etc/passwd該目錄文件存儲的是操作系統用戶信息,該文件為所有用戶可見;
(2),/etc/group 存儲有關本地用戶組的信息;
(3),/etc/shadow是在安裝了影子(shadow)口令軟件的系統上的影子口令文件。
2),用id命令查看當前用戶相關信息
請簡要描述輸出結果?
uid=1000(crystal) #(crystal)用戶id
gid=1000(crystal) #(crystal)組id
組=1000(crystal),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashshare)
#(crystal)組名稱
uid=0(root) #(root)用戶id
gid=0(root) #(root)組id
組=0(root) #(root)組名稱
3),創建兩個賬號,一個賬號為test,另外一個賬號以大寫E開頭加上你自己學號尾數4位,兩個賬號分別設置密碼及管理員權限,賬號設置完成后,切換賬號簡單查看信息后,刪除test賬號,保留另一賬號,以備后續操作。
a),創建賬號
sudo useradd -d /home/test -m test #創建用戶test並指定登陸目錄
sudo useradd -d /home/E1517 -m E1517 #創建用戶E1517並指定登陸目錄
b),設置密碼
c),設置權限
sudo usermod -a -G adm test #把用戶test添加到adm組當中
sudo usermod -a -G sudo test #把用戶test添加到sudo組當中
sudo usermod -a -G adm E1517 #把用戶E1517添加到adm組當中
sudo usermod -a -G sudo E1517 #把用戶E1517添加到sudo組當中
請簡要描述用戶組的概念?
答:類似於角色,系統可以對有共性的多個用戶進行統一的管理。
d),切換賬號
#用戶加入adm和sudo組后,上圖可看出用戶的adm和sudo添加成功
e),刪除賬號test
test@crystal:~$ sudo userdel -r test #當前用戶是test,自己不能刪除自己
exit #注銷test用戶
crystal@crystal:~$ sudo userdel -r test #crystal用戶刪除test用戶
2,VIM簡單配置
a),切換到保留的新創建賬號
b),在用戶主目錄創建一個VIM配置文件 .vimrc
c),打開並向文件中添加以下內容
set number "顯示行號
syntax on "語法高亮
set cursorline
set ruler " 顯示標尺
set showcmd " 輸入的命令顯示出來,看的清楚些
set scrolloff=3 " 光標移動到buffer的頂部和底部時保持3行距離
set novisualbell " 不要閃爍(不明白)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "狀態行顯示的內容
set nocompatible "去除VIM一致性,必須"
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencoding=utf-8
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件標題
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自動插入文件頭
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
""定義函數SetTitle,自動插入文件頭
func SetTitle()
"如果文件類型為.sh文件
if &filetype == 'sh'
call setline(1,"\#########################################################################")
call append(line("."), "\# File Name: ".expand("%"))
call append(line(".")+1, "\# Author: crystal")
call append(line(".")+2, "\# mail: 2359892950@qq.com ")
call append(line(".")+3, "\# Created Time: ".strftime("%c"))
call append(line(".")+4, "\#########################################################################")
call append(line(".")+5, "\#!/bin/bash")
call append(line(".")+6, "")
else
call setline(1, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Author: crystal")
call append(line(".")+2, " > Mail: 2359892950@qq.com ")
call append(line(".")+3, " > Created Time: ".strftime("%c"))
call append(line(".")+4, " ************************************************************************/")
call append(line(".")+5, "")
endif
if &filetype == 'cpp'
call append(line(".")+6, "#include<iostream>")
call append(line(".")+7, "using namespace std;")
call append(line(".")+8, "")
endif
if &filetype == 'c'
call append(line(".")+6, "#include<stdio.h>")
call append(line(".")+7, "")
endif
"新建文件后,自動定位到文件末尾
autocmd BufNewFile * normal G
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set autoindent " 自動縮進
set cindent
set tabstop=4 " Tab鍵的寬度
set softtabstop=4 " 統一縮進為4
set shiftwidth=4
set noexpandtab " 不要用空格代替制表符
set smarttab " 在行和段開始處使用制表符
set showmatch
set history=1000 " 歷史記錄數
set nobackup "禁止生成臨時文件
set noswapfile
set ignorecase "搜索忽略大小寫
set hlsearch "搜索逐字符高亮
set incsearch
set gdefault "行內替換
set langmenu=zh_CN.UTF-8 "語言設置
set helplang=cn
set laststatus=2 " 總是顯示狀態行
filetype on " 偵測文件類型
filetype plugin on " 載入文件類型插件
filetype indent on " 為特定文件類型載入相關縮進文件
set iskeyword+=_,$,@,%,#,- " 帶有如下符號的單詞不要被換行分割
set linespace=0 " 字符間插入的像素行數目
set wildmenu " 增強模式中的命令行自動完成操作
set backspace=2 " 使回格鍵(backspace)正常處理indent, eol, start等
set whichwrap+=<,>,h,l " 允許backspace和光標鍵跨越行邊界
set mouse=a " 可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位)
set selection=exclusive
set selectmode=mouse,key
"自動補全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
set completeopt=longest,menu "打開文件類型檢測, 加了這句才可以用智能補全
d),創建並打開一個以.c結尾的文件,如vim helloworld.c
新建的文件應顯示如下: