一.創建用戶
在 root賬戶 或 sudo 權限下
1. 創建用戶
useradd xiaoyangzi
2.為該用戶設置密碼或修改密碼
passwd xiaoyangzi
3. 將用戶加入wheel用戶組
在 CentOS 中,屬于 wheel 組的用戶默認可以使用 sudo 權限。
查看所屬用戶組:
groups xiaoyangzi
將 xiaoyangzi 加入到wheel用戶組
usermod -aG wheel xiaoyangzi
從 wheel用戶組刪除 xiaoyangzi
gpasswd -d xiaoyangzi wheel
4.驗證 sudo 權限
切換到該用戶:
su - xiaoyangzi
執行:
sudo whoami
如果返回的是 root,說明配置成功。
5.創建密鑰對和密碼
切換到該用戶下
su xiaoyangzi
在該用戶下創建密鑰對
ssh-keygen -t ecdsa
如圖所示:
第一個冒號直接回車即可, 如果想給該秘鑰設置密碼, 則在箭頭指向處輸入密碼即可
然后將 /home/xiaoyangzi/.ssh 下的 id_ecdsa.pub 放入 authorized_keys 文件中
cat >> authorized_keys < id_ecdsa.pub
如果沒有 authorized_keys 文件
則將 id_ecdsa.pub 重命名為 authorized_keys
mv id_ecdsa.pub authorized_keys
此時可以用密鑰對和秘鑰密碼進行登錄了, 注意, sudo su 切換到root用戶時, 需要用登錄密碼, 而不是秘鑰密碼
- 如果不禁止用戶密碼登錄, 則用戶可以使用密碼也可以使用秘鑰登錄
二.禁止用戶密碼登錄
vim /etc/ssh/sshd_config
確保一下兩項是打開的, PubkeyAuthentication yes 被注釋也沒問題, 它本身默認值為 yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后將 PasswordAuthentication 為 no
重啟 ssh 服務:
systemctl restart sshd.service
三.查找某用戶下的所有文件
1 查看該用戶下的所有文件
find / -user xiaoyangzi
或指定目錄
find /dir -user xiaoyangzi
2 查看指定的文件類型
sudo find / -user xiaoyangzi -name "*.txt"
3 查看文件擁有者
ls -l /home/xiaoyangzi | grep xiaoyangzi
四.刪除用戶
1 刪除用戶
userdel xiaoyangzi
2 刪除用戶及其主目錄
userdel -r xiaoyangzi
3 檢查是否成功刪除用戶
id xiaoyangzi
五.給文件賦予用戶權限
1.將文件擁有者改為 root
sudo chown root:root 文件/文件夾名
或者
600 表示只有擁有者(root)有讀寫權限,其他人沒有任何權限
sudo chmod 600 文件/文件夾名
2.將文件賦予普通擁有者
sudo chown xiaoyangzi:xiaoyangzi 文件/文件夾名
3.給指定用戶讀權限
sudo setfacl -m u:xiaoyangzi:r 文件名
4.給指定用戶讀寫權限
sudo setfacl -m u:xiaoyangzi:rw 文件
5.給指定用戶執行權限
sudo setfacl -m u:xiaoyangzi:x 文件
6.對已有文件夾和子目錄遞歸設置讀寫權限
X為進入目錄的權限(進入/執行)
sudo setfacl -R -m u:xiaoyangzi:rwX 文件夾名
或
該命令對于將來創建的文件也擁有權限
sudo setfacl -d -m u:xiaoyangzi:rwX 文件夾名
ACL 是 Access Control List,訪問控制列表
-d = default ACL;用于將來在該目錄中新建的文件/目錄自動繼承 ACL。
7.查看文件/文件夾權限
getfacl 文件/文件名
8.刪除某個用戶的文件/文件夾權限
setfacl -x u:xiaoyangzi 文件/文件夾名
六.讓用戶以root權限執行某命令
visudo 是系統級命令權限管理(sudo),某用戶可以以 root 權限執行某命令
setfacl 是文件系統級別(ACL), setfacl 就算給 /usr/sbin/nginx 文件的可執行權限,也沒有用, 因為不是 root,無法向 root 的進程發信號,也無法寫日志
以 nginx 為例, 由于 nginx 為 root 創建, 所以 xiaoyangzi 沒有執行權限
1. 打開 sudoers 文件
sudo visudo
2. 添加以下內容到文件末尾
xiaoyangzi ALL=NOPASSWD: /usr/sbin/nginx
或者
xiaoyangzi ALL=(ALL) NOPASSWD: /usr/sbin/nginx
加個(ALL), 顯示寫法, 默認為 root 更清晰、兼容性好、容易維護。
也可以指定特點的命令, 如:
xiaoyangzi ALL=NOPASSWD: /usr/sbin/nginx -s reload