Linux之權限詳解

如何知道你有什麼權限

我能幹什麼?這是我最關心的問題!node

切換到普通用戶linux

[root@luffy-01 ~]# su - pizza
[pizza@luffy-01 ~]$ ls /root
ls: cannot open directory /root: Permission denied
[pizza@luffy-01 ~]$ rm -f /etc/passwd
rm: cannot remove `/etc/passwd': Permission denied  無權限,沒法操做

 

一、看看你是誰vim

whoami安全

[pizza@luffy-01 ~]$ whoami
pizza

 

二、你與至個文件有什麼關係bash

是 主人,家人,仍是陌生人服務器

先查看文件app

[pizza@luffy-01 ~]$ ls -l  /oldboy/alex.txt
-rw-r--r--. 2 root root 19 Jan 15 11:33 /oldboy/alex.txt

 

id  查看身份======>groups,查看是否是和文件的主人是一家子網站

[pizza@luffy-01 ~]$ id
uid=500(pizza) gid=500(pizza) groups=500(pizza)

[pizza@luffy-01 ~]$ id root
uid=0(root) gid=0(root) groups=0(root)

 

 結果:文件屬於root家族,pizza是這個文件的陌生人,pizza的權限是9位權限的最後3位r--ui

權限的計算

r======4
w      2
x      1
-      0

-rw-------
 420000000
 6  0  0

-rw-r--r--
 420400400
 6  4  4

drwxr-xr-x
 421401401
 7  5  5

 

 

修改權限

chmod ===change mode

  1]使用數字的方法修改權限
  chmod 755 oldboy.txt

  2]使用字符
主人  家人    陌生人
user  group   other
u     g       o

[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rw-r--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u+x oldboy.txt  添加執行權限
[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rwxr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u-x oldboy.txt   去除x權限
[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rw-r--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u=x oldboy.txt   先清空,再添加
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
---xr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chmod u=rwx oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr--r--. 2 root root 252 Oct 18 09:10 oldboy.txt
 3]給文件添加上執行權限
chmod +x oldboy.txt === chmod ugo+x oldboy.txt  === chmod a+x oldboy.txt

 4]修改文件的全部者和所屬用戶組
chown  change owner

[root@oldboyedu01-nb oldboy]# ls -l oldboy.txt
-rwxr-xr-x. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chown oldboy.oldboy oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 oldboy oldboy 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]# chown root oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 root oldboy 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]# chown root.root oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 root root 252 Oct 18 09:10 oldboy.txt
[root@oldboyedu01-nb oldboy]# chown oldboy.oldboy oldboy.txt
[root@oldboyedu01-nb oldboy]# ll oldboy.txt
-rwxr-xr-x. 2 oldboy oldboy 252 Oct 18 09:10 oldboy.txt

 

 

對於文件來講,rwx權限的含義

準備環境spa

mkdir -p /oldboy
echo -e 'hostname\npwd' >/oldboy/alex.sh
chown oldboy.oldboy /oldboy/alex.sh
ll /oldboy/alex.sh
root用戶
oldboy用戶

 

前提:對於普通非root用戶

root用戶下面修改 r權限

[root@luffy-01 ~]# chown oldboy.oldboy /oldboy/alex.sh
[root@luffy-01 ~]# ll /oldboy/alex.sh
-rw-r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh
[root@luffy-01 ~]# chmod u=r /oldboy/alex.sh
[root@luffy-01 ~]# ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh

 

oldboy用戶下驗證

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh  # 可讀
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
hostname
pwd [oldboy@luffy
-01 ~]$ echo 'ls -ld /root' >>/oldboy/alex.sh #沒有寫入權限 -bash: /oldboy/alex.sh: Permission denied [oldboy@luffy-01 ~]$ /oldboy/alex.sh # 沒有執行權限 -bash: /oldboy/alex.sh: Permission denied

 

root下面修改 w

chown: invalid user: `u=w'
[root@luffy-01 ~]# chmod u=w /oldboy/alex.sh

 

 

oldboy用戶下面驗證

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
--w-r--r-- 1 oldboy oldboy 13 Jan 15 23:23 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
cat: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ echo 'ls -ld /root' >>/oldboy/alex.sh
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
-bash: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ cat /oldboy/alex.sh
cat: /oldboy/alex.sh: Permission denied

 

寫進去了,卻不能查看,那就是然並卵了

用VIM進去,什麼也看不了,寫入後,提示只讀權限,

退出後vim後,在root用戶下查看,顯示的是已經被修改的內容。

因此,只有w權限是沒什麼用的

小結:

1.r讀取文件內容
2.w修改文件的內容,可是須要r的配合
  沒有r配合強制修改退出,會清空文件的內容

 

 

root下面修改 x

[root@luffy-01 ~]# ll /oldboy/alex.sh
---xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh

 

更改成x權限會變成綠色

oldboy用戶下面驗證

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
---xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ echo 'w' >> /oldboy/alex.sh
-bash: /oldboy/alex.sh: Permission denied
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
bash: /oldboy/alex.sh: Permission denied

 

運行不了

加上r權限

[oldboy@luffy-01 ~]$ ll /oldboy/alex.sh
-r-xr--r-- 1 oldboy oldboy 26 Jan 15 23:44 /oldboy/alex.sh
[oldboy@luffy-01 ~]$ /oldboy/alex.sh
luffy-01
/home/oldboy
dr-xr-x---. 2 root root 4096 Jan 15 15:00 /root
能夠運行了

 

小結:

對於文件來講rwx小結:
     1.r讀取文件內容
     2.w修改文件的內容,可是須要r的配合
       沒有r配合強制修改退出,會清空文件的內容
     3.x權限執行,須要r權限的配合

 

 

目錄權限詳解

  r 查看目錄裏面的內容,    ls
  w 能夠在目錄裏面建立      刪除 重命名文件
  x 能夠進入(cd)到這個目錄

 

建立環境

mkdir -p /oldboy/alexdir
chown oldboy.oldboy /oldboy/alexdir
touch    /oldboy/alexdir/luffy{01..5}.txt

 

root下修改目錄權限r

[root@luffy-01 oldboy]# ll -d alexdir/    加-d是爲了把目錄當作文件對待,不然就是查看目錄裏面的內容了
drwxr-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[root@luffy-01 oldboy]# chmod u=r alexdir/
[root@luffy-01 oldboy]# ll -d alexdir/
dr--r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/

 

oldboy下驗證

[oldboy@luffy-01 oldboy]$ ls -ld alexdir/
dr--r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[oldboy@luffy-01 oldboy]$ ls -l alexdir/
ls: cannot access alexdir/luffy01.txt: Permission denied
ls: cannot access alexdir/luffy05.txt: Permission denied
ls: cannot access alexdir/luffy04.txt: Permission denied
ls: cannot access alexdir/luffy02.txt: Permission denied
ls: cannot access alexdir/luffy03.txt: Permission denied
total 0
-????????? ? ? ? ?            ? luffy01.txt
-????????? ? ? ? ?            ? luffy02.txt
-????????? ? ? ? ?            ? luffy03.txt
-????????? ? ? ? ?            ? luffy04.txt
-????????? ? ? ? ?            ? luffy05.txt
[oldboy@luffy-01 oldboy]$ ls alexdir/
ls: cannot access alexdir/luffy01.txt: Permission denied
ls: cannot access alexdir/luffy05.txt: Permission denied
ls: cannot access alexdir/luffy04.txt: Permission denied
ls: cannot access alexdir/luffy02.txt: Permission denied
ls: cannot access alexdir/luffy03.txt: Permission denied
luffy01.txt  luffy02.txt  luffy03.txt  luffy04.txt  luffy05.txt

 

沒法看到文件的詳細信息

root下加入x權限

[oldboy@luffy-01 oldboy]$ ls alexdir/
luffy01.txt  luffy02.txt  luffy03.txt  luffy04.txt  luffy05.txt
[oldboy@luffy-01 oldboy]$ ls -l alexdir/
total 0
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy01.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy02.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy03.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy04.txt
-rw-r--r-- 1 root root 0 Jan 16 00:03 luffy05.txt

 

能夠查看了

 

小結:

1.對於目錄來講 r表示 查看目錄裏面內容的權限,ls  須要x配合
2.沒有x權限,那麼顯示的時候文件的屬性沒法顯示

 

 

root下修改目錄的w

[root@luffy-01 oldboy]# chmod u=w alexdir/
[root@luffy-01 oldboy]# ls -ld alexdir/
d-w-r-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/

 

 

oldboy下驗證

[oldboy@luffy-01 oldboy]$ ll alexdir/
ls: cannot open directory alexdir/: Permission denied
[oldboy@luffy-01 oldboy]$ touch alexdir/txt.txt
touch: cannot touch `alexdir/txt.txt': Permission denied
[oldboy@luffy-01 oldboy]$ rm alexdir/luffy01.txt
rm: cannot remove `alexdir/luffy01.txt': Permission denied

 

各類操做都不行

添加x權限

[oldboy@luffy-01 oldboy]$ ll alexdir/
ls: cannot open directory alexdir/: Permission denied
[oldboy@luffy-01 oldboy]$ ll alexdir/ -d
d-wxr-xr-x 2 oldboy oldboy 4096 Jan 16 00:03 alexdir/
[oldboy@luffy-01 oldboy]$ touch alexdir/txt.txt

 

能夠添加和刪除了,可是沒法查看目錄

小結;

1.w表示 能夠在目錄中建立 刪除文件 重命名文件權限
2.只有w沒法刪除 建立文件,w須要x配合

 

 

root下修改x

[root@luffy-01 oldboy]# chmod u=x alexdir/
[root@luffy-01 oldboy]# ls -ld alexdir/
d--xr-xr-x 2 oldboy oldboy 4096 Jan 16 00:22 alexdir/

 

oldboy下面驗證

[oldboy@luffy-01 oldboy]$ cd alexdir/
[oldboy@luffy-01 alexdir]$ ll
ls: cannot open directory .: Permission denied

 

總結:

           文件                    目錄
   r    讀取文件的內容           查看目錄的內容(須要x權限)
   w    修改文件的內容(須要r)    在目錄下面建立 刪除文件(須要x權限)
   x    執行文件(須要r)          進入到目錄的權限(cd)

 

 !!!!!!刪除一個文件,要看你對這個文件所在的目錄是否有wx權限。

 

網站總體權限規劃

Linux 系統默認權限(默認的,比較安全的)

對於文件來講

全部者、家庭、隔壁老王======>rw- r- - r--  644

對於目錄來講

全部者、家庭、隔壁老王======>rwx r-x r-x  755

文件或者目錄的全部者

root root

網站比較安全的權限

blog.youxiaodao.com

網站程序放在/app/blog目錄下面

#0.網站須要被運行起來,經過一個傀儡用戶運行起來的www


#1.blog目錄下面
 file 644 
dir 755
root root
#2.blog目錄下面 /app/blog/ndd.jpg /app/blog/snow.jpg /app/blog/budongde.avi /app/blog/上傳/lwang.jpg /app/blog/上傳/lzhang.avi blog/上船
file644 dir755
www www

 

小結:

 1.網站是經過傀儡用戶運行的www
 2.網站用戶上傳目錄,file 644 dir 755 www www
 3.除了上傳目錄以外 file 644 dir 755 root root

 

 

Linux控制系統默認權限的命令umask

[root@luffy-01 oldboy]# umask
0022

[oldboy@luffy-01 alexdir]$ umask
0002

文件的最大的權限 666
目錄的最大的權限 777

那麼,0022 和666/777有什麼關係呢?

####umask 022

#umask
##根據umask計算文件的默認權限
##666
#-022    減去022
#=644

##根據umask計算目錄的默認權限
##777
#-022   
#=755


####umask 032

##根據umask計算文件的默認權限
##666
#-032
#=634
#+010   遇到奇數 +1
 =644



##根據umask計算目錄的默認權限
##777
#-032
#=745



[root@online01 oldboy]# touch file032
[root@online01 oldboy]# mkdir dir032
[root@online01 oldboy]# ls -ld *032
drwxr--r-x. 2 root root 4096 Nov  8 05:22 dir032
-rw-r--r--. 1 root root    0 Nov  8 05:22 file032


根據umask計算出系統默認的權限規則
1.對於目錄 777直接減去umask
2.對於文件 666減去umask的值,若是umask某一位上面是奇數,減完umask以後奇數位須要+1

 

umask的修改

[oldboy@luffy-01 alexdir]$ umask 032
[oldboy@luffy-01 alexdir]$ umask
0032

 

文件系統的屬性

[oldboy@luffy-01 alexdir]$ lsattr txt.txt 
-------------e- txt.txt
查看系統屬性,或者叫作隱藏的屬性
共有9個,經常使用的有兩個a和i

 

文件系統屬性中的a和i

[root@online01 ~]# #a=====append 只能追加
[root@online01 ~]# #i=====immutable 無敵的 不可修改的
[root@online01 ~]# lsattr oldboy.txt
-------------e- oldboy.txt
[root@online01 ~]# chattr +a oldboy.txt
chattr授予文件或者目錄隱藏的權限
+a 或者 -a
[root@online01 ~]# lsattr oldboy.txt -----a-------e- oldboy.txt [root@online01 ~]# cat oldboy.txt hello.txt [root@online01 ~]# echo hello >>oldboy.txt [root@online01 ~]# echo hello >>oldboy.txt [root@online01 ~]# cat oldboy.txt hello.txt hello hello [root@online01 ~]# echo hello >oldboy.txt -bash: oldboy.txt: Operation not permitted [root@online01 ~]# rm -f oldboy.txt rm: cannot remove `oldboy.txt': Operation not permitted [root@online01 ~]# mv oldboy.txt /tmp/ mv: cannot move `oldboy.txt' to `/tmp/oldboy.txt': Operation not permitted [root@online01 ~]# echo hello >>oldboy.txt -bash: oldboy.txt: Permission denied [root@online01 ~]# echo hello >oldboy.txt -bash: oldboy.txt: Permission denied [root@online01 ~]# rm -f oldboy.txt rm: cannot remove `oldboy.txt': Operation not permitted [root@online01 ~]# mv oldboy.txt /tmp/ mv: cannot move `oldboy.txt' to `/tmp/oldboy.txt': Operation not permitted

 

 

Linux特殊權限

suid setuid ------password命令

S s -rws r-x r-x

做用:運行某一個命令的時候至關於這個命令的全部者(root)

設置方法:chmod u+s /bin/rm 或者 chmod 4755 /bin/rm

危險:全部用戶運行命令的時候都至關因而root

例子:passwd命令

看一下設置s屬性後的文件權限信息

[root@luffy-01 oldboy]# chmod u+s /bin/cat
[root@luffy-01 oldboy]# ll /bin/cat
-rwsr-xr-x. 1 root root 48568 Mar 23  2017 /bin/cat
[root@luffy-01 oldboy]# stat /bin/cat
  File: `/bin/cat'
  Size: 48568         Blocks: 96         IO Block: 4096   regular file
Device: 803h/2051d    Inode: 13599       Links: 1
Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-15 08:42:00.072999999 +0800
Modify: 2017-03-23 02:52:45.000000000 +0800
Change: 2019-01-16 01:31:49.911687040 +0800

 

權限變成了4 755

sticky粘滯位---1777 /tmp目錄

特色:

一、任何用戶均可以在這個目錄裏面建立文件(原來的權限是777)

二、每一個人只能管理本身的文件,其餘人處理不了

[root@luffy-01 oldboy]# stat /tmp/
  File: `/tmp/'
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: 803h/2051d    Inode: 12          Links: 3
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-15 17:29:10.881710386 +0800
Modify: 2019-01-15 15:28:55.581985449 +0800
Change: 2019-01-15 15:28:55.581985449 +0800

 

 

sgid locate

運行這個命令的時候,至關於這個命令的家人

 

 

總結

一、Linux權限體系
    1.rwx是啥
    2.rwx對應的數字 及計算方法 rwxr-xr-x
    3.chmod 命令的使用
     4.對於文件來講r w x 是什麼含義 *****
    5.對於目錄來講r w x 是什麼含義 *****
    6.網站權限-經過控制權限讓網站安全
    7.linux系統默認權限控制命令umask
    8.文件系統屬性(文件屬性)

前面的知識總結
一、正則總結
二、特殊符合總結 無分類系列 $ ! | # 引號系列 $() `` '' "" 重定向系列 > >> 2> 2>> < << 位置系列 ~ . .. 判斷系列 && || 3.第三關練習題-取出ip地址 權限 4.使用三劍客進行過濾grep sed awk 如何使用三劍客命令過濾出文件中以oldboy開頭的行(文件名是oldboy.txt,至少3種方法) 5.修改時間 linux快捷鍵 vi/vim快捷鍵 6.文件還有目錄權限 rwx含義 7.網站權限-經過控制權限讓網站安全 8.linux系統默認權限控制命令umask 9.文件系統屬性(文件屬性) 10.linux沒法上網 11.沒法遠程鏈接服務器 進階知識: 安裝和使用lrzsz htop
相關文章
相關標籤/搜索