1. 程式人生 > >【軟件工程】第六章 面向對象方法

【軟件工程】第六章 面向對象方法

執行 註意 csdn groupadd 存在 地方 ica 軟件 可執行

用戶權限的相關命令:
權限類型:
01 讀 read r 4
02 寫 write w 2
03 執行 excute x 1

組權限:
開發組:將所有開發人員添加到一個組中,這個組中所有人就有相同的權限

我們可以使用ls -l查看文件的詳細信息,就可以查看文件的權限
技術分享圖片
**硬鏈接:**即就是有多少種方式路徑,可以訪問到當前的目錄或者文件
對於文件來說
我們通過絕對路徑可以訪問到該文件,一般只有一個硬鏈接
對於目錄
示例1:
有這幾種情況比如說/d/b,我們要訪問b
1.如果我們當前就在b目錄種,到達b目錄的方式是cd .
2.如果我們直接使用絕對路徑即可到達
所以只有倆個硬鏈接
示例2:
再比如說我們在b下面添加一個c目錄: /d /b /c
1.絕對路徑可以到達
2.切換到b中,我們cd .也可以到達b目錄
3.我們可以切換到c目錄中,cd …返回到b,也可以到達b
(也就是說,這目錄的硬鏈接最少可以有2個,分別是當前和絕對路徑,然後再加上他的子目錄的個數,就是這個目錄硬鏈接數)

修改權限的命令:
chmod +/- r/wx 文件名
該操作會使得同組用戶和其他用戶得到或者失去相應的權限
目錄權限的含義:
對於目錄而言,如果失去可執行權限,該目錄就不能進去,不能訪問這個目錄的內容
如果失去rw權限,有執行權限,我們可以到目錄進去,但是不能查看目錄下文件的內容,也不能創建文件,因為對於目錄而言,寫權限相當於創建文件,或者修改文件內容

超級用戶 root
linux上root對操作系統的所有資源都有訪問權限
所以一般情況下,不推薦linux以管理員身份登陸系統,因為可能會刪除或者修改一些不可動的文件,導致系統崩潰
su:表示使用另一個用戶的身份,而linux預設的另外一個用戶就是root
sudo

:表示以其他的身份來執行命令,一般是指root用戶
用戶使用sudo後,必須要輸入密碼,但是五分鐘以內,我們再次執行需要sudo來執行,則不用輸入密碼。
如果未經授權的用戶使用sudo,系統會給管理員發送警告郵件

組管理:group相關命令
#以下命令需要通過sudo來執行,否則失敗:

groupadd 組名:添加組
groupdel 組名 :刪除組
cat /etc/group :確認組信息,看是否增加或者刪除了組
chgrp -R 組名 文件名/目錄名:修改文件/目錄的所屬組
(-R會將目錄下所有文件所屬遞歸的修改為對應的組)

(組的信息保存在 /etc/group文件中)
(/etc文件是用來保存系統配置的文件夾)

示例:創建一個目錄test,並且新建一個組ne,然後將test目錄的組修改為ne
技術分享圖片

#創建新目錄test
mkdir test
#新建一個組ne
sudo groupadd ne
#查看組是否創建成功,最後一行
cat /etc/group
#將test目錄的所屬修改為組ne所屬
chgrp -R ne  test
#查看目錄所屬,如上圖
ls -l 

4.1 用戶管理:user相關命令
useradd -m -g 組名:
添加新用戶 -m自動建立家目錄,-g指定用戶所在組,否則會給建立一個與用戶名相同的組
passwd 用戶名:
設置用戶密碼,如果是普通用戶,可以用passwd來修改自己的賬戶密碼
userdel 用戶名:
刪除用戶, -r 自動的刪除用戶的家目錄
cat /etc/passwd | grep 用戶名:
確認用戶信息修改狀態

(創建用戶時,如果忘記-m給新用戶建立家目錄,最好的辦法是刪除重新建立)
(創建用戶如果不指定組,默認生成一個和用戶名名字相同的組)
(用戶的信息保存在/etc/passwd文件中)

示例:建立一個新用戶名字為xx,屬於組ne,並查看用戶信息

#創建用戶並且指定組
sudo useradd -m -g ne xx
#給用戶設置密碼,切記不能忘,輸入以下密碼,回車
sudo passwd xx     
#查看用戶信息
ls -l  /home
#確認用戶信息
cat /etc/passwd  |  grep 用戶名 

4.2
查看用戶信息:id
id 用戶名 :查看用戶的UID和GID信息
who: 查看當前所有登陸的用戶列表(linux是多用戶的系統)
whoami:查看當前登陸用戶的賬戶名(我是誰)

passwd文件

grep king /etc/passwd |  cat -n

技術分享圖片
該文件由6個冒號組成7個信息,分別是:
1.用戶名
2.密碼:密碼是加密的,所以看到是個x
3.UID(用戶標識)
4.GID(組標識)
5.用戶全名或者本地賬號
6.家目錄
7.登陸使用的shell,即登陸後使用的shell,ubuntu默認是dash

4.3
設置指定用戶的主組/附加組和登陸shell的命令:usermod
什麽是主組:
通常是新建用戶時指定,在/etc/passwd的第四列GID(組標識)對應的那個組
什麽是附加組:
在/etc/group中最後一列表示該組的用戶列表,用於指定用戶的附加權限
技術分享圖片

cat -n /etc/group  | grep king
#從上圖看到king的附加組中有sudo,說明可以用管理員權限進行系統操作
#修改用戶的主組,一般用不到,一般創建的時候指定即可
usermod -g  組  用戶名
#修改用戶的附加組
usermod -G 組  用戶名
#修改用戶登陸的shell
usermod -s /bin/bash

如果用戶不可以進行sudo操作怎麽辦:說明用戶沒有在這個附加組中,需要添加

sudo usermod -G sudo 用戶名
# 命令執行以後退出重新登陸

使用useradd添加的用戶,默認沒有sudo的權限,所以我們應該使用上述命令來把該用戶添加到sudo的附加組中)

設置指定用戶使用的shell:
技術分享圖片
什麽是shell:如上圖
分別是: 用戶名@主機機器名:工作路徑 $

#給用戶指定shell為bash,因為ubuntu默認登陸的shell是dash,不怎麽好用
#這樣xshell登陸再次登陸主機後就可以使用bash為shell
usermod -s /bin/bash

查看執行命令所在的位置:which

技術分享圖片技術分享圖片

示例:
which ls
which pwd
which useradd

(註意區分/usr/bin/passwd是用來修改用戶密碼的可執行命令)
(/etc/passwd是用來保存用戶信息的文本文件)

擴展:/usr/bin和/usr/sbin的區別:
在linux上,絕大多數可執行文件是保存在/bin、/sbin、/usr/bin、/usr/sbin中
/bin(binary)是二進制執行文件目錄,主要用於具體的應用
**/sbin (system binary)**是系統管理員專用的二進制代碼存放的地方,主要用於系統管理
/usr/bin:(user command for applications):後期安裝的一些軟件
/usr/sbin:(super user commands for applications):超級用戶的一些管理程序

(cd命令是設置在系統的內核中的,沒有獨立的文件,所以用which無法找到)

6
用戶切換:su
su - 用戶名:切換用戶,並且切換目錄,-可以切換到用戶家目錄,否則位置保持不變,-可以忽略
exit:退出當前的用戶,返回到之前的用戶
技術分享圖片
(不輸入用戶名,將會切換到root su -)

修改文件權限

以下需要在sudo命令下執行:

#修改文件或者目錄的擁有者
chown  用戶名   文件名|目錄名
#把test文件所屬給張三
chown zhangsan test
#遞歸的修改文件或者目錄所屬的組
chgrp  -R   組名   文件名|目錄名
#遞歸的修改文件的權限
chmod -R  755 文件名|目錄名

擁有者 組 其他人
r w x r w x r w x
4 2 1 4 2 1 4 2 1

u 表示該檔案的擁有者 user
g 表示與該檔案的擁有者屬於同一個群體(group)者
o 表示其他以外的人 other
a 表示這三者皆是 all

chmod a +x test.txt

【軟件工程】第六章 面向對象方法