1、用戶組管理
每個用戶都屬于一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理,
在創建用戶時,如果未指定組,則系統會創建一個與用戶名同名的組,
以下是關于用戶組管理的一些基本命令:
-
新建用戶組
$ groupadd <組名> -
洗掉用戶組
$ groupdel <組名> -
修改組名
$ groupmod -n <新的組名> <現在的組名> -
查看用戶組的創建資訊
用戶組的資料保存在 /etc/group 檔案中(不包含已洗掉的組),因此可以在該檔案中查看所有的用戶組資訊````:
# 創建一個名為"family"的組 $ sudo groupadd family # 查看 /etc/group 檔案,已有了 family 組的資訊 $ tail -n 1 /etc/group family:x:1002: # 將 family 組重命名為 "family1" $ sudo groupmod -n family1 family # 再次查看 /etc/group 檔案,組名已更改 $ tail -n 1 /etc/group family1:x:1002:
2、用戶管理
-
創建用戶
$ useradd [-g <已存在的組名>] <用戶名>創建用戶時可以指定該用戶所在的組,如果省略,則系統會默認創建一個與用戶名同名的組,
創建了一個用戶后,在 /home/ 目錄中就會生成一個與用戶名同名的目錄作為用戶主目錄,如:
# 創建一個用戶名為"zhangsan"的用戶 $ sudo useradd zhangsan # 在 /home/ 目錄下自動生成了名為"zhangsan"目錄 $ ls /home/ zhangsan # 同時系統也自動創建了一個名為"zhangsan"的用戶組 $ tail -n 1 /etc/group zhangsan:x:1001: -
設定用戶密碼
$ passwd [<用戶名>]所有用戶均可使用 passwd 命令修改自己的密碼,修改時需要先輸入當前的密碼,再輸入新的密碼,且密碼中不能包含當前用戶名,如當前用戶為 alice:
$ passwd 更改用戶 alice 的密碼 , 為 alice 更改 STRESS 密碼, (當前)UNIX 密碼:xxxxxxxx 新的 密碼:xxxxxxxx 重新輸入新的 密碼:xxxxxxxx passwd:所有的身份驗證令牌已經成功更新,也可以為指定用戶設定密碼,默認只有 root 用戶才有該權限:
$ sudo passwd zhangsan 更改用戶 zhangsan 的密碼 , 新的 密碼:xxxxxxxx 重新輸入新的 密碼:xxxxxxxx passwd:所有的身份驗證令牌已經成功更新,這時是不需要輸入舊密碼的,
-
洗掉用戶
$ userdel [-r] <用戶名>前面已經提到,在創建新用戶時,會在 /home/ 目錄中生成一個與用戶名同名的目錄作為用戶主目錄,在洗掉用戶時,可以選擇是否保留該用戶主目錄:
# 這樣的操作會洗掉用戶 zhangsan,但會保留 /home/zhangsan 目錄 $ sudo userdel zhangsan # 這樣的操作會洗掉用戶 zhangsan,同時也會洗掉 /home/zhangsan 目錄 $ sudo userdel -r zhangsan特別地,如果系統自動生成了與用戶名同名的用戶組,則在洗掉用戶時,該同名的用戶組也會被洗掉,
-
查看創建用戶的歷史資訊
在 /etc/passwd 檔案中保存了用戶的創建資訊(不包含已洗掉的用戶):
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ... ... zhangsan:x:1001:1001::/home/zhangsan:/bin/bash -
切換用戶(switch user)
$ su [-] <用戶名>默認切換用戶后只能獲得用戶的執行權限,不能獲取其環境變數,如果需要同時獲取其環境變數,則可以加上引數"-":
# 輸出當前用戶的環境變數 $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alice/.local/bin:/home/alice/bin # 切換到 root 用戶 $ su root 密碼:xxxxxxxx # 輸出當前用戶的環境變數,可以發現與之前的相同 $ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alice/.local/bin:/home/alice/bin $ exit exit # 退出后重新切換到 root 用戶,此時加上"-" ,顯示了上一次的登錄時間 $ su - root 密碼:xxxxxxxx 上一次登錄:五 2月 19 20:06:27 CST 2021pts/0 上 # 輸出當前用戶的環境變數,可以發現這時是 root 用戶的環境變數 $ echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin -
查看用戶資訊
$ id <用戶名>可以查看指定用戶的 id 以及所在組的 id 和名稱等資訊,如:
$ id alice uid=1000(alice) gid=1000(alice) 組=1000(alice),10(wheel)可以看到 alice 用戶所屬的組為 alice(組id為1000) 和 wheel(組id為10),
-
查看當前用戶名
$ whoami root $ su alice $ whoami alice $ who am i root pts/0 2021-02-19 20:27 (11.205.52.123) -
修改用戶所在的組
$ usermod -g family zhangsan如將 zhangsan 移至 family 組:
# 當前 zhangsan 位于 zhangsan 組中 $ id zhangsan uid=1001(zhangsan) gid=1001(zhangsan) 組=1001(zhangsan) $ groups zhangsan zhangsan : zhangsan # 修改 zhangsan 所在組 $ sudo usermod -g family zhangsan # 再次查看,可以看到 zhangsan 已被移至 family 組中 $ id zhangsan uid=1001(zhangsan) gid=1002(family) 組=1002(family) $ groups zhangsan zhangsan : family -
給普通用戶以 root 權限
如果普通用戶在執行命令時提示"權限不夠",則可以在命令前添加 "sudo" 以使用 root 權限再執行,此時需要輸入自身的密碼驗證,
但并不是任意普通用戶都可以使用 "sudo",詳情可以查看 /etc/sudoers 檔案,
在 /etc/sudoers 檔案中有默認如下配置:
## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL這表明只有 root 用戶或 wheel 組中的用戶可以使用"sudo",如果需要讓新用戶也可以使用"sudo",則可以在 /etc/sudoers 中配置該用戶或用戶組,如:
$ visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL zhangsan ALL=(ALL) ALL此時用戶 zhangsan 便可以在輸入自己的密碼后使用“sudo”,
如果被信任的用戶不希望在使用"sudo"時還要輸入密碼,則可以設定:
zhangsan ALL=(ALL) NOPASSWD:ALL這樣用戶 zhangsan 便可以直接使用“sudo”而無需再輸入自己的密碼,
3、檔案權限
3.1 檔案屬性說明
使用 ls -l 命令可以查看檔案(目錄)的屬性,如:
$ mkdir /home/alice/pardir && cd /home/alice/
$ touch ./pardir/a.txt ./pardir/b.txt
$ ls -l ./
drwxrwxr-x. 2 alice alice 32 2月 26 18:57 pardir
$ ls -l ./pardir/
-rw-rw-r--. 1 alice alice 0 2月 26 18:57 a.txt
-rw-rw-r--. 1 alice alice 0 2月 26 18:57 b.txt
檔案屬性的說明如下:

3.2 檔案的權限資訊說明
將檔案屬性中的 1-9 位放大如下:

可以看到,該檔案的所屬用戶和所屬組都可以對該檔案進行讀、寫以及執行操作,而組外的其他用戶可以對該檔案進行讀操作和執行操作,而不能進行寫操作,
對于不同的檔案型別,關于三種操作的解釋略有不同,見下表:

3.3 修改檔案的權限
# 方式一
$ chmod [選項] [{ugo}{+-=}{rwx}] <檔案名>
# 方式二
$ chmod [選項] [{777}] <檔案名>
常用的選項有 -R,即 --recursive,表示遞回操作,
示例1:修改 a.txt 檔案的權限,對所屬用戶增加執行權限,對所屬組減少寫權限,對其他用戶增加寫權限和執行權限:
# 查看當前檔案的權限資訊
$ ll a.txt
-rw-rw-r--. 1 zhangsan family 0 2月 26 18:57 a.txt
# 修改檔案權限
$ chmod u+x,g-w,o+wx a.txt
# 再次查看檔案的權限資訊
$ ll a.txt
-rwxr--rwx. 1 zhangsan family 0 2月 26 18:57 a.txt
示例2:修改 a.txt 檔案的權限為——所屬用戶具有讀、寫和執行權限,所屬組具有讀和執行權限,其他用戶具有讀權限:
# 修改檔案權限(方式一)
$ chmod u=rwx,g=rx,o=r a.txt
# 修改檔案權限(方式二)
$ chmod 754 a.txt
# 再次查看檔案的權限資訊
$ ll a.txt
-rwxr-xr--. 1 zhangsan family 0 2月 26 18:57 a.txt
3.4 修改檔案的所屬用戶
$ chown [選項] <新用戶名或用戶id> <檔案名>
如將 a.txt 檔案的所有者由 alice 改為 zhangsan:
# 查看當前 a.txt 檔案的所有者為 alice
$ ll a.txt
-rw-rw-r--. 1 alice alice 0 2月 26 18:57 a.txt
# 查看用戶 zhangsan 的基本資訊
$ id zhangsan
uid=1001(zhangsan) gid=1002(family) 組=1002(family)
# 將 a.txt 檔案的所有者改為1001號用戶,即 zhangsan
$ sudo chown 1001 a.txt
# 再次查看 a.txt 檔案的所有者,可見已經改為了 zhangsan
$ ll a.txt
-rw-rw-r--. 1 zhangsan alice 0 2月 26 18:57 a.txt
3.5 修改檔案的所屬組
$ chgrp [選項] <新組名或組id> <檔案名>
如將 a.txt 檔案的所屬組由 alice 改為 family:
# 查看當前 a.txt 檔案的所屬組為 alice
$ ll a.txt
-rw-rw-r--. 1 zhangsan alice 0 2月 26 18:57 a.txt
# 將 a.txt 檔案的所屬組改為1002號組,即 family
$ sudo chgrp 1002 a.txt
# 再次查看 a.txt 檔案的所屬組,可見已經改為了 family
$ ll a.txt
-rw-rw-r--. 1 zhangsan family 0 2月 26 18:57 a.txt
一些其他的常用命令:CentOS7 下埠的開放控制
1、查看當前的防火墻狀態
$ firewall-cmd --state
running
2、查看當前防火墻開放了哪些埠
$ firewall-cmd --zone=public --list-ports
8080/tcp
3、開放指定埠
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
$ firewall-cmd --reload
success
4、關閉指定埠
$ firewall-cmd --zone=public --remove-port=3306/tcp --permanent
success
$ firewall-cmd --reload
success
5、關閉防火墻
$ systemctl stop firewalld.service
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/264040.html
標籤:其他
上一篇:30分鐘入門Vim
下一篇:Linux基本命令
