21-12位權限補充-用戶管理

一、顯示/oldboy/test.sh文件詳細過程(inode block)

顯示/oldboy/test.sh文件詳細過程.png

注:權限拒接錯誤,可能與上級目錄有關

二、權限如何讓系統(tǒng)安全

2.1 單臺服務器

1>網(wǎng)站運行的時候使用www(虛擬用戶)
2>網(wǎng)站站點目錄/app/blog
    文件  644  root root 
    目錄  755  root root 
3>對于用戶上傳目錄/uploads 
    文件  644  www  www  
    目錄  755  www  www  
4>通過程序控制只能上傳圖片或壓縮包
5>取消上傳上來的文件的執(zhí)行權限(講解到nfs的時候)

2.2 如何讓系統(tǒng)安全

    最小化
        安裝系統(tǒng)的時候
        操作(rm -f)
        開啟服務(把正在使用的開開,其余關閉)
    保護root
        禁止root遠程登錄系統(tǒng)
        修改遠程連接(sshd)默認端口號
    制作指紋認證
        命令:md5sum-
               參數(shù):-c:相當于--check(檢查)
        md5作用:
            驗證大家拿到的東西是否一致
            對比文件是否發(fā)生變化  
      權限管理(同上2.1)

md5sum練習:

1.找出/oldboy目錄下面 以.txt結尾的文件 制作md5 存放在/tmp/oldboy.md5
2.對比 md5sum -c 
[root@oldboyedu ~]# md5sum $(find /oldboy -type f -name '*.txt')>/tmp/oldboy.md5
[root@oldboyedu ~]# md5sum /tmp/oldboy.md5
cd271266d3b215739c027f34582cfc24  /tmp/oldboy.md5
[root@oldboyedu ~]# md5sum -c /tmp/oldboy.md5
/oldboy/oldboy01.txt: OK
/oldboy/oldboy02.txt: OK
/oldboy/oldboy03.txt: OK
/oldboy/oldboy04.txt: OK

三、文件系統(tǒng)權限(隱藏屬性)

chattr:修改隱藏屬性

a:append---只能追加(不能刪除、不能修改,保護重要的配置文件)
如:chattr +/-a oldboy.txt
i:immutable---無敵的(只能查看內(nèi)容,無法修改、無法刪除,保護重要的命令)
如:chattr +/-i oldboy.txt
應用:
a 核心配置文件
i 系統(tǒng)命令

lsattr:查看隱藏屬性
練習:

[root@oldboyedu ~]# lsattr oldboy.txt 
---------------- oldboy.txt
[root@oldboyedu ~]# chattr +a oldboy.txt 
[root@oldboyedu ~]# lsattr oldboy.txt 
-----a---------- oldboy.txt
[root@oldboyedu ~]# \rm -f oldboy.txt 
rm: cannot remove ‘oldboy.txt’: Operation not permitted
[root@oldboyedu ~]# >oldboy.txt 
-bash: /tmp/oldboy.md5: Operation not permitted
[root@oldboyedu ~]# echo oldboy>> oldboy.txt
[root@oldboyedu ~]# 
[root@oldboyedu ~]# chattr -a oldboy.txt 
[root@oldboyedu ~]# lsattr oldboy.txt 

四、Linux特殊權限

1>suid setuid


image.png

某個文件在所有者的位置上有s,suid
擁有suid的命令,任何用戶執(zhí)行的時候相當于root(文件的所有者)
有該權限的文件:/usr/bin/passwd
如何設置:
chmod u+s /bin/ls
chmod 4755 /bin/ls

ls命令沒有s權限時,普通用戶無法查看/root
[oldboy@oldboyedu ~]$ ll /root
ls: cannot open directory /root: Permission denied
在root賬號下,給ls命令添加上s權限
[root@oldboyedu ~]# chmod u+s /bin/ls
ls命令添加上s權限,普通用戶也可以查看/root
[oldboy@oldboyedu ~]$ ll /root
total 60276
-rw-r--r--  1 root root 58112885 Mar  9  2018 access.log
-rw-r--r--  1 root root  3580282 Apr 22 11:40 access.zip

2>粘滯位 sticky


image.png

每個人都可以在這個目錄下面創(chuàng)建文件和刪除
我們希望每個人只能管理自己的文件
有該權限的目錄:/tmp/
對應的權限是 1777

五、用戶管理

5.1 UID

user id身份證號碼

5.2 用戶分類

root用戶
普通用戶
虛擬用戶

5.3 核心文件和目錄

1>核心文件

/etc/passwd:存放的是用戶的信息
/etc/shadow:存放的是密碼的信息
/etc/group:存放用戶組的信息
/etc/gshadow;用戶組密碼信息

找出/etc/passwd中的虛擬用戶,顯示這個用戶的名字和uid
[root@oldboyedu ~]# awk -F:  '/nologin$/{print $1,$3,$NF}' /etc/passwd |column -t 
bin              1    /sbin/nologin
daemon           2    /sbin/nologin
adm              3    /sbin/nologin
lp               4    /sbin/nologin
mail             8    /sbin/nologin
operator         11   /sbin/nologin

column -t:顯示的內(nèi)容對齊
2>核心目錄

/etc/skel
新用戶家目錄的樣子

添加新用戶過程
    useradd alex
    系統(tǒng)創(chuàng)建家目錄
    權限所有者修改
    把/etc/skel下面的所有內(nèi)容,復制到家目錄下
 .bash_profile  /etc/profile    PS1  LANG  PATH   
 .bashrc        /etc/bashrc 
 .bash_logout       

常用的命令解釋器

/bin/bash
/sbin/nologin #虛擬用戶的命令解釋器
/bin/dash #ubuntu
/bin/csh /bin/tcsh #unix

5.4 故障案例:命令行提示符-bash-4.1$或-bash-4.2$※

故障模擬:
1>root用戶下修改/etc/profile PS1加上注釋

[root@oldboyedu59 ~]# tail -1 /etc/profile
#export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$ "

2>添加的用戶

useradd alex 

3>切換用戶

[root@oldboyedu59 ~]# su - alex 
[alex@oldboyedu59 ~]$ 

4>檢查是否有suid

ls -l /bin/rm 

5>在Alex用戶下刪根

rm -fr /* 

6>重新登錄alex ,出現(xiàn)故障

[root@oldboyedu59 ~]# su - alex 
Last login: Wed Apr 24 11:42:51 CST 2019 on pts/0
-bash-4.2$ 
-bash-4.2$ 
-bash-4.2$ 
-bash-4.2$  

原因:

當前用戶的環(huán)境變量的配置文件.bash_profile .bashrc 被刪除

如何解決?

方法1:從別人家復制 oldboy (提示權限拒絕)

-bash-4.2$ whoami 
alex
-bash-4.2$ cp /home/oldboy/.bash*  ~
cp: cannot stat ‘/home/oldboy/.bash*’: Permission denied
-bash-4.2$ ll -d /home/oldboy/
drwx------ 2 oldboy oldboy 99 Apr 23 12:01 /home/oldboy/
-bash-4.2$ ls /home/oldboy/
ls: cannot open directory /home/oldboy/: Permission denied

方法2:從/etc/skel復制 .bash開頭的文件到當前目錄下(推薦)

-bash-4.2$ cp /etc/skel/.bash*   ~
-bash-4.2$ 
-bash-4.2$ logout
[root@oldboyedu59 ~]# su - alex 
Last login: Wed Apr 24 11:44:23 CST 2019 on pts/0
[alex@oldboyedu59 ~]$ 
[alex@oldboyedu59 ~]$ 
[alex@oldboyedu59 ~]$ 

5.5 用戶管理命令

操作用戶
1>useradd:添加用戶

參數(shù):
-u:指定UID
-s:指定用戶使用的命令解釋器
-M:創(chuàng)建用戶的時候不創(chuàng)建家目錄
-g:指定用戶組
-G:指定多個用戶組
-c:指定用戶的說明信息

[root@oldboyedu59 ~]# #添加用戶oldboy888 指定uid為888 不可登錄系統(tǒng) 不創(chuàng)建家目錄 
[root@oldboyedu59 ~]# useradd  -u 888 -s /sbin/nologin  -M  oldboy888
[root@oldboyedu59 ~]# id oldboy888
uid=888(oldboy888) gid=1003(oldboy888) groups=1003(oldboy888)
[root@oldboyedu59 ~]# grep oldboy /etc/passwd
oldboy:x:1000:1000::/home/oldboy:/bin/bash
oldboy888:x:888:1003::/home/oldboy888:/sbin/nologin
[root@oldboyedu59 ~]# ls -l /home/oldboy888
ls: cannot access /home/oldboy888: No such file or directory

2>passwd:設置密碼

--stdin
從管道獲取密碼
非交互設置密碼
history -c:清除歷史命令記錄

3>userdel:刪除用戶,默認不會刪除家目錄

參數(shù):-r(慎用)
刪除用戶和用戶家目錄
刪除用戶替代方法:在/etc/passwd中給用戶前面加上

4>su:切換用戶

參數(shù):
- :切換用戶的時候更新用戶的環(huán)境變量
-c:切換到某個用戶執(zhí)行命令,執(zhí)行命令后自動退出這個用戶

5>usermod

-u:修改UID
-s:修改用戶使用的命令解釋器
-g:修改主要的用戶組
-G:修改為多個用戶組

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容