實驗三 linux系統用戶管理及VIM配置


項目 內容
這個作業屬於哪個課程 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

新建的文件應顯示如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM