linux權限管理-特殊權限

linux權限管理-特殊權限

一,特殊權限

1.suid(4000)

SetUID(suid):會在屬主權限位的執行權限上寫個s
若是該屬主權限位上有執行權限,則:s
若是該屬主權限位上沒有執行權限,則:Sshell

受權方式vim

chmod u+s filename
chmod 4755 filename

setuid總結:安全

​ 1.讓普通用戶對可執行的二進制文件,臨時擁有二進制文件的屬主權限
​ 2.若是設置的二進制文件沒有執行權限,那麼suid的權限顯示就是S
​ 3.特殊權限suid僅對二進制可執行程序有效,其餘文件或目錄則無效bash

2.sgid(2000)
[root@oldboyedu ~]# ll /bin/write 
-rwxr-sr-x. 1 root tty 19624 Oct 31  2018 /bin/write

setgid(sgid):會在屬組權限位的執行權限上寫個s
若是該屬組權限位上有執行權限,則:s
若是該屬組權限位上沒有執行權限,則:Sui

受權方式日誌

[root@db04 ~]# chmod 2755 /tmp/test/
[root@db04 ~]# chmod g+s /tmp/test/

做用:1.針對用戶組權限位修改,用戶建立的目錄或文件所屬組和該目錄的所屬組一致。
2.當某個目錄設置了sgid後,在該目錄中新建的文件不在是建立該文件的默認所屬組
3.使用sgid可使得多個用戶之間共享一個目錄的全部文件變得簡單。code

3. sbit

粘滯位:進程

[root@oldboyedu ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 105 Jul  2 10:15 /tmp/

​ 若是該其餘用戶權限位上有執行權限,則:t
​ 若是該其它用戶權限位上沒有執行權限,則:Trem

受權方式:

[root@db04 ~]# chmod 1755 /opt
[root@db04 ~]# chmod o+t /opt

sticky(SI TI KI)粘滯,目前只對目錄有效,做用以下:
普通用戶對該目錄擁有w和x權限,即普通用戶能夠在此目錄中擁有寫入權限,若是沒有粘滯位,那麼普通用戶擁有w權限,就能夠刪除此目錄下的全部文件,包括其餘用戶創建的文件。可是一旦被賦予了粘滯位,除了root能夠刪除全部文件,普通用戶就算有w權限也只能刪除本身創建的文件,而不能刪除其餘用戶創建的文件。

注意:系統中存在的/tmp目錄是經典的粘滯位目錄,誰都有寫權限,所以安全成問題,經常是木馬第一手跳板。

特殊權限總結

  • SUID

    主要是對命令,或者二進制文件,以該二進制文件的屬主權限來執行該文件 命令:passwd

  • 2.SGID
    主要是針對目錄進行受權,共享目錄

  • 3.SBIT
    粘滯位,即使是該目錄擁有w權限,可是除了root用戶,其餘用戶只能對本身的文件進行刪除、移動操做

一個普通用戶:zls 屬於 oldboyedu這個組
一個文件權限:rwxrw-r-x root.oldboyedu filename1

zls對文件的權限:rw-

r:讀

w:寫

x:執行

suid:4000

sgid:2000

t:1000

Linux權限屬性chattr概述

chattr只有root用戶使用,用來修改文件系統權限屬性,創建凌駕於rwx基礎權限之上的受權

chattr命令格式:[root@db04 ~]# #chattr【 +-=】[選項] 文件名或目錄名

lsattr:查看特殊權限

chattr:設置特殊權限

i:鎖定文件,不能編輯,不能修改,不能刪除,不能移動,能夠執行

a:僅能夠追加文件,不能編輯,不能刪除,不能移動,能夠執行

設置文件屬性(權限)針對全部用戶,包括root

#選項:+增長權限 -減小權限 =等於某個權限
#a:讓文件或目錄僅可追加內容
#i:不得任意更動文件或目錄

#建立文件並設置屬性
[root@zls ~]# touch file_a file_i
[root@zls ~]# lsattr file_a file_i
---------------- file_a
---------------- file_i

#設置屬性
[root@zls ~]# chattr +a file_a
[root@zls ~]# chattr +i file_i
[root@zls ~]# lsattr file_a file_i
-----a---------- file_a
----i----------- file_i

#a權限, 沒法覆蓋寫入和刪除文件
[root@zls ~]# echo "aa" > file_a
bash: file_a: Operation not permitted
[root@zls ~]# rm -f file_a
rm: cannot remove ‘file_a’: Operation not permitted

#a權限, 只能追加, 適用於日誌文件
[root@zls ~]# echo "aa" >> file_a

#i權限, 沒法寫入, 沒法刪除
[root@zls ~]# echo "i" > file_i
bash: file_i: Permission denied
[root@zls ~]# echo "i" >> file_i
bash: file_i: Permission denied
[root@zls ~]# rm -f  file_i
rm: cannot remove ‘file_i’: Operation not permitted

#解除限制
[root@zls ~]# chattr -a file100 
[root@zls ~]# chattr -i file200

linux進程掩碼umask

umask如何改變新文件權限

系統默認umask爲022,那麼當咱們建立一個目錄時,正常狀況下目錄的權限應該是777,可是umask表示要減去的值,因此新目錄文件的權限應該是777-022=755。至於文件的權限也依次類推:666-022=644

umask涉及的配置文件

/etc/bashrc

/etc/profile

~/.bashrc

~/.bash_profile

注意:

umask影響的範圍

shell (vim,touch) --umask--> 新文件或目錄權限
vsftpd --umask--> 新文件或目錄權限
samba --umask--> 新文件或目錄權限
useradd --umask--> 用戶 HOME

1,在shell進程中建立文件

//查看當前用戶的umask權限
[root@zls ~]# umask
0022
[root@zls ~]# touch file0022
[root@zls ~]# mkdir dir0022
[root@zls ~]# ll -d file0022  dir0022/
drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/
-rw-r--r-- 1 root root 0 Jan 24 09:02 file0022

2,修改shell umask值(臨時生效)

[root@zls ~]# umask 000
[root@zls ~]# mkdir dir000
[root@zls ~]# touch file000
[root@zls ~]# ll -d dir000 file000
drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000
-rw-rw-rw- 1 root root 0 Jan 24 09:04 file000

3,修改shell umask(永久生效,不建議)

[root@zls ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then 
umask 002
else
umask 022
fi

//當即在當前 shell 中生效
[root@zls ~]# source /etc/profil
相關文章
相關標籤/搜索