賬號管理
簡介
Linux系統是一個多用戶多任務的分時作業系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統,
用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;另一方面也可以幫助用戶組織檔案,并為用戶提供安全性保護,
每個用戶賬號都擁有一個唯一的用戶名和各自的口令,
用戶在登錄時鍵入正確的用戶名和口令后,就能夠進入系統和自己的主目錄,
實作用戶賬號管理,要完成的作業主要有如下幾個方面:
- 用戶賬號的添加,洗掉,修改,
- 用戶口令的管理,
- 用戶組的管理
用戶賬號的管理
用戶賬號的管理作業主要涉及到用戶賬號的添加、修改、洗掉,
添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源,
useradd命令 添加用戶
-m:自動創建這個用戶的主目錄/home/qinjiang
-G: 給用戶分配組,
useradd -選項 用戶名
-
選項
- -c comment 指定一段注釋性描述
- -d目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄
- -g用戶組 指定用戶所屬的用戶組
- -G 用戶組,用戶組 指定用戶所屬的附加組
- -m 使用者目錄如不存在則自動建立 如/home/qinjiang
- -s Shell 檔案 指定用戶的登錄Shell
- -u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號,
[root@iZ2ze89bb9liyga2xuaaysZ home]# useradd -m qinjiang 創建一個用戶 [root@iZ2ze89bb9liyga2xuaaysZ home]# ls kuangshen qinjiang redis www [root@iZ2ze89bb9liyga2xuaaysZ home]#理解一下本質:Linux中一切皆檔案,這里的添加用戶就是往某一個檔案中寫入用戶的資訊,/etc/password

- -s Shell檔案 指定用戶的登錄Shell
- -u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號
-
用戶名:
- 指定新賬號的登錄名
洗掉用戶userdel
如果一個用戶的賬號不再使用,可以從系統中洗掉,
洗掉用戶賬號就是要將/etc/passwd等系統檔案中的該用戶記錄洗掉,必要時還洗掉用戶的主目錄,
洗掉一個已有的用戶賬號使用userdel命令,格式如下:
userdel 選項 用戶名
常用的選項是-r,它的作用是把用戶的主目錄一起洗掉,
此命令洗掉用戶kuangshen在系統檔案中(主要是/etc/password,/etc/shadow/,/etc/group等)
userdel -r qinjiang 洗掉用戶的時候將他的目錄頁一并刪掉,
[root@iZ2ze89bb9liyga2xuaaysZ home]# ls
kuangshen qinjiang redis www
[root@iZ2ze89bb9liyga2xuaaysZ home]# userdel -r qinjiang
[root@iZ2ze89bb9liyga2xuaaysZ home]# ls
kuangshen redis www
[root@iZ2ze89bb9liyga2xuaaysZ home]# cat cat /etc/passwd
修改用戶 usermod
修改用戶usermod 對應修改的內容 修改哪個用戶
修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶名、主目錄、用戶組、登錄Shell等,
修改已有用戶的資訊使用usermod命令,格式如下:
usermod 選項 用戶名
常用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項一樣,可以為用戶指定新的資源值,
[root@iZ2ze89bb9liyga2xuaaysZ home]# useradd -m qinjiang
[root@iZ2ze89bb9liyga2xuaaysZ home]# ls
kuangshen qinjiang redis www
[root@iZ2ze89bb9liyga2xuaaysZ home]# usermod -d /home/233 qinjiang 修改完畢之后查看組態檔即可
[root@iZ2ze89bb9liyga2xuaaysZ home]# ls
kuangshen qinjiang redis www
[root@iZ2ze89bb9liyga2xuaaysZ home]# cat /etc/passwd
使用 cat /etc/passwd查看到的內容:

切換用戶
1.切換用戶的命令為: su username【username 是自己的用戶名】
2.從普通用戶切換到root用戶,還可以使用命令: sudo su

3.在終端輸入exit或logout或使用快捷方式ctrl+d 可以退回到原來用戶,其實ctrl+d 也是執行的exit命令

4.在切換用戶時,如果想在切換用戶之后使用新用戶的作業環境,可以在su和username之間加-,例如: 【su - root】
$表示普通用戶
#表示超級用戶,也就是root用戶,



用戶的密碼設定問題
我們一般通過root創建用戶的時候,要配置密碼,
Linux上輸入密碼是不顯示的,正常輸入即可,并不是系統問題
如果是超級用戶的話:
passwd username:
new password:
re password:
如果是普通用戶:
passwd:
(current) UNIX password:
new password: # 密碼不能太過于簡單
re password
鎖定賬戶
root ,比如張三辭職,凍結這個賬號,一旦凍結,這個人就登錄不上系統了!
passwd -l qinjiang #鎖定了這個用戶之后就不能登錄了
passwd -d qinjiang # 把密碼清空 ,就不能登錄了

用戶組管理
屬主 屬組
每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理(開發、測驗、運維、root),不同Linux系統對用戶組的規定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創建用戶時同時創建,
用戶組的管理涉及用戶組的添加、洗掉和修改,組的增加、洗掉和修改實際上就是對/etc/group檔案的更新,
創建一個用戶組 groupadd

創建完用戶組后可以得到一個組的id,這個id是可以指定的,比如把這個組的id指定為520 命令為:-g 520,如果不指定就是自增1


洗掉用戶組 groupdel

修改用戶組的權限資訊和名字 groupmod

用戶如果要切換用戶組怎么辦呢?
# 登錄當前用戶 qinjiang
$ newgrp root
拓展:檔案的查看
/etc/passwd
完成用戶管理的作業有許多種方法,但是每一種方法實際上都是對有關的系統檔案進行修改,
與用戶名和用戶組相關的資訊都存放在一些系統檔案中,這些檔案包括/etc/passwd ,/etc/shadow, /etc/group等,
下面分別介紹這些檔案的內容,
/etc/passwd檔案是用戶管理作業涉及的最重要的一個檔案,
Linux系統中的每個用戶都在/etc/passwd檔案中有一個對應的記錄行,它記錄了這個用戶的一些基本屬性,
這個檔案對所有的用戶都是可讀的,它的內容類似下面的例子
[root@kuangshen ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
從上面的例子我們可以看到,/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為7個欄位,器格式和具體含義如下:
用戶名:口令(登錄密碼,我們不可見):用戶標識號(是自增的):組標識號:注釋性描述:主目錄:登錄Shell
這個檔案中的每一行都代表著一個用戶,我們可以從這里看出這個用戶的主目錄在哪里,可以看到屬于哪一個組!
1)"用戶名"是代表用戶賬號的字串,
通常長度不超過8個字符,并且由大小寫字母和/或數字組成,登錄名中不能有冒號(😃,因為冒號在這里是分隔符,
為了兼容起見,登錄名中最好不要包含點字符(.),并且不使用連字符(-)和加號(+)打頭,
2)“口令”一些系統中,存放著加密后的用戶口令字,
雖然這個欄位存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd檔案對所有用戶都可讀,所以這仍是一個安全隱患,因此,現在許多Linux 系統(如SVR4)都使用了shadow技術,把真正的加密后的用戶口令字存放到/etc/shadow檔案中(保證我們密碼的安全性),而在/etc/passwd檔案的口令欄位中只存放一個特殊的字符,例如“x”或者“*”,
3)“用戶標識號”是一個整數,系統內部用它來標識用戶,
一般情況下它與用戶名是一一對應的,如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等,
通常用戶標識號的取值范圍是0~65 535,0是超級用戶root的標識號,1~99由系統保留,作為管理賬號,普通用戶的標識號從100開始,在Linux系統中,這個界限是500,
4)“組標識號”欄位記錄的是用戶所屬的用戶組,
它對應著/etc/group檔案中的一條記錄,
5)“注釋性描述”欄位記錄著用戶的一些個人情況,
例如用戶的真實姓名、電話、地址等,這個欄位并沒有什么實際的用途,在不同的Linux 系統中,這個欄位的格式并沒有統一,在許多Linux系統中,這個欄位存放的是一段任意的注釋性描述文字,用作finger命令的輸出,
6)“主目錄”,也就是用戶的起始作業目錄,
它是用戶在登錄到系統之后所處的目錄,在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名,各用戶對自己的主目錄有讀、寫、執行(搜索)權限,其他用戶對此目錄的訪問權限則根據具體情況設定,
7)用戶登錄后,要啟動一個行程,負責將用戶的操作傳給內核,這個行程是用戶登錄到系統后運行的命令解釋器或某個特定的程式,即Shell,
Shell是用戶與Linux系統之間的介面,Linux的Shell有許多種,每種都有不同的特點,常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等,
系統管理員可以根據系統情況和用戶習慣為用戶指定某個Shell,如果不指定Shell,那么系統使用sh為默認的登錄Shell,即這個欄位的值為/bin/sh,
用戶的登錄Shell也可以指定為某個特定的程式(此程式不是一個命令解釋器),
利用這一特點,我們可以限制用戶只能運行指定的應用程式,在該應用程式運行結束后,用戶就自動退出了系統,有些Linux 系統要求只有那些在系統中登記了的程式才能出現在這個欄位中,
8)系統中有一類用戶稱為偽用戶(pseudo users),
這些用戶在/etc/passwd檔案中也占有一條記錄,但是不能登錄,因為它們的登錄Shell為空,它們的存在主要是方便系統管理,滿足相應的系統行程對檔案屬主的要求,
常見的偽用戶如下所示:
偽 用 戶 含 義
bin 擁有可執行的用戶命令檔案
sys 擁有系統檔案
adm 擁有帳戶檔案
uucp UUCP使用
lp lp或lpd子系統使用
nobody NFS使用
/etc/shadow
1、除了上面列出的偽用戶外,還有許多標準的偽用戶,例如:audit, cron, mail, usenet等,它們也都各自為相關的行程和檔案所需要,
由于/etc/passwd檔案是所有用戶都可讀的,如果用戶的密碼太簡單或規律比較明顯的話,一臺普通的計算機就能夠很容易地將它破解,因此對安全性要求較高的Linux系統都把加密后的口令字分離出來,單獨存放在一個檔案中,這個檔案是/etc/shadow檔案,有超級用戶才擁有該檔案讀權限,這就保證了用戶密碼的安全性,
2、/etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的資料自動產生
它的檔案格式與/etc/passwd類似,由若干個欄位組成,欄位之間用":"隔開,這些欄位是:
登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
- "登錄名"是與/etc/passwd檔案中的登錄名相一致的用戶賬號
- "口令"欄位存放的是加密后的用戶口令字,長度為13個字符,如果為空,則對應用戶沒有口令,登錄時不需要口令;如果含有不屬于集合 { ./0-9A-Za-z }中的字符,則對應的用戶不能登錄,
- "最后一次修改時間"表示的是從某個時刻起,到用戶最后一次修改口令時的天數,時間起點對不同的系統可能不一樣,例如在SCO Linux 中,這個時間起點是1970年1月1日,
- "最小時間間隔"指的是兩次修改口令之間所需的最小天數,
- "最大時間間隔"指的是口令保持有效的最大天數,
- "警告時間"欄位表示的是從系統開始警告用戶到用戶密碼正式失效之間的天數,
- "不活動時間"表示的是用戶沒有登錄活動但賬號仍能保持有效的最大天數,
- "失效時間"欄位給出的是一個絕對的天數,如果使用了這個欄位,那么就給出相應賬號的生存期,期滿后,該賬號就不再是一個合法的賬號,也就不能再用來登錄了,
/etc/group
用戶組的所有資訊都存放在/etc/group檔案中,
將用戶分組是Linux 系統中對用戶進行管理及控制訪問權限的一種手段,
每個用戶都屬于某個用戶組;一個組中可以有多個用戶,一個用戶也可以屬于不同的組,
當一個用戶同時是多個組中的成員時,在/etc/passwd檔案中記錄的是用戶所屬的主組,也就是登錄時所屬的默認組,而其他組稱為附加組,
用戶要訪問屬于附加組的檔案時,必須首先使用newgrp命令使自己成為所要訪問的組中的成員,
用戶組的所有資訊都存放在/etc/group檔案中,此檔案的格式也類似于/etc/passwd檔案,由冒號(:)隔開若干個欄位,這些欄位有:
組名:口令:組標識號:組內用戶串列
- "組名"是用戶組的名稱,由字母或數字構成,與/etc/passwd中的登錄名一樣,組名不應重復,
- "口令"欄位存放的是用戶組加密后的口令字,一般Linux 系統的用戶組都沒有口令,即這個欄位一般為空,或者是*,
- "組標識號"與用戶標識號類似,也是一個整數,被系統內部用來標識組,
- "組內用戶串列"是屬于這個組的所有用戶的串列/b],不同用戶之間用逗號(,)分隔,這個用戶組可能是用戶的主組,也可能是附加組,
磁盤管理
df(列出檔案系統整體的磁盤使用量) du(檢查磁盤空間使用量)
df

du



Mac或者想使用Linux掛載我們的一些本地磁盤或者檔案
使用mount命令

卸載:umount
umount -f [掛載位置] 強制卸載
除了這個之外,以后安裝了JDK,其實可以使用java中的一些命令來查看,
行程管理
Linux 中一切皆檔案==(檔案:讀寫執行(查看,創建,洗掉,移動,復制,編輯),權限(用戶,用戶組),系統:(磁盤,行程))==
對于開發人員來說,其實Linux更多偏向于使用即可!
基本概念
1.在Linux中,每個程式都是有自己的一個行程,每個行程都有一個id號!
2.每一個行程,都會有一個父行程!
3.行程可以有兩種存在方式:前臺! 后臺運行!
4.一般的話服務都是后臺運行的,基本的程式都是前臺運行的!
命令
ps:查看當前系統中正在執行的各種行程的資訊!
ps -xx :
- -a 顯示當前終端運行的所有的行程資訊(當前的行程)
- -u 以用戶的資訊顯示行程
- -x顯示后臺運行行程的引數!
# ps -aux 查看所有的行程
ps -aux|grep mysql # 查看mysql的行程
ps -aux|grep redis # 查看redis的行程
# | 在Linux這個叫管道符 A|B:把A的結果作為一個輸出去執行B
# grep 查找檔案中符合條件的字串
目前只需要記住一個命令即可ps =xx|grep 行程名字: 過濾行程資訊!
ps -ef:可以查看到父行程的資訊
ps -ef|grep mysql # 看父行程我們一般可以通過目錄樹結構來查看!
pstree -pu
-p 顯示父id
-u 顯示用戶組

結束行程:等價于window結束任務,
kill -9 行程id
平時寫的Java代碼死回圈了,可以選擇結束行程!也叫殺行程
kill -9 行程id
表示強制結束該行程
nohup代表后臺執行程式
環境安裝
安裝軟體一般有三種方式:
-
rpm(Jdk: 在線發布一個SpringBoot專案)
-
解壓縮(tomcat ,啟動并通過外網訪問,發布網站)
-
yum在線安裝(docker:直接安裝運行跑起來docker就可以)
JDK安裝
開發java程式必要的環境!
1.下載JDK rpm,去oralce官網下載即可!
官網網址:Java SE Development Kit 8 - Downloads (oracle.com)
2.安裝java環境
# 檢測當前系統是否存在java環境 java -version
# 如果有的話就需要卸載
# rpm -qa|grep jdk
# rpm -e --nodeps jdk_ 強制洗掉
# 卸載完畢后即可安裝jdk
# rpm -ivh rpm 包
# 配置環境變數
在原本沒有java環境下的安裝

原本有java環境的先卸載:卸載的是我們查出來的版本號

卸載完成后進行安裝:

配置環境變數:/etc/profile
先進入vim:

**遇到的問題:-bash: /usr/java/jdk1.8.0_291-amd64/jre/bin: Is a directory -bash: ls: command not found **
解決辦法:使用以下命令就可以使用常用命令
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
然后按住i 進行插入配置
JAVA_HOME=/usr/java/jdk1.8.0_291-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
另外打開一個視窗查看java的環境配置:

讓這個組態檔生效!source /etc/profile這里不要使用這個命名,不然后面其他命令就執行不了
先按住esc鍵 然后:wq保存退出
發布一個專案,現在IDEA里面跑起來,看測驗的埠是否能打開,然后在maven里面進行clean 然后再package:

在target下可以看到打的包

然后在本地進行運行,看是否能運行

然后把包傳到Xftp上:

查看防火墻埠號:
firewall-cmd --list-ports

在防火墻里面開啟埠號:
firewall-cmd --zone=public --add-port=埠號/tcp --permanent

重啟防火墻的命令:
systemctl restart firewalld.service
查看所有開啟的埠,如果是阿里云,需要配置安全組規則:
firewall-cmd --list-ports


啟動這個專案:

**最后訪問是:公網IP+ 埠號 **

B站學習網址:【狂神說Java】Linux最通俗易懂的教程阿里云真實環境學習_嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/283222.html
標籤:java
上一篇:登錄綜合案例01,前端使用vue+elementui+axios 后端 springboot+mybatis-plus+swagger2
