Linux用戶/目錄文件權限

linux用戶分爲幾類分別是什麼?

centos6

分爲3類

1 超級用戶 root UID 0

2 系統用戶 UID 1-499  管理進程,沒有家目錄,不能登錄系統

3 普通用戶 UID 500-65535

 

centos7

1 超級用戶 root UID 0 

2 系統用戶 UID 1-999 管理進程,沒有家目錄,不能登錄系統

3 普通用戶 UID 1000-65535

 

文件rwx信息:

r 可以讀取文件中內容

w 可以編輯文件中內容

x 可以執行文件

文件權限總結:

  • 1 root用戶對所有文件有絕對的權限,只要有了執行權限就可以對文件進行任何操作
  • 2 對於文件來說,寫權限和執行權限,都需要讀權限配合,只要文件有了讀權限,也可以修改文件後強制保存.
  • 3 如果想對文件進行操作,必須對文件賦予讀權限

 

目錄中rwx信息

r 讀取目錄中文件屬性信息 (有讀取文件block的權限)

w 可以在目錄中添加刪除文件數據信息 (有讀取文件block的權限)

x 是否可以進入到目錄中

目錄權限總結

  • 1 root用戶對所有目錄有絕對全新
  • 2 對於目錄來說,寫的權限和讀的權限,需要有執行權限配合
  • 3 如果想對目錄進行操作,必須賦予執行權限
  •  

問題1 在test用戶的家目錄中,新建了一個test1目錄,並把權限修改爲400,訪問結果如下圖,爲什麼看不到文件屬性信息

文件的訪問過程是從根開始訪問

  • / 的權限是 555 所以對應test其他用戶的權限是可以讀取inode信息  inode 5 r-x  有執行權限就可以進入目錄獲取目錄中所有文件ionde信息 讀權限可以查看目錄 block信息(目錄下所有文件名稱信息)
  • /home 目錄的權限是 755 所以對應test其他用戶的權限是可以讀取inode信息  inode 5 r-x  有執行權限就可以進入目錄獲取目錄中所有文件ionde信息 讀權限可以查看目錄 block信息(目錄下所有文件名稱信息)
  • /home/test 目錄的權限是 700 所以對應test其他用戶的權限是可以讀取inode信息  inode 7 rwx  有執行權限就可以進入目錄獲取目錄中所有文件ionde信息 讀權限可以查看目錄 block信息(目錄下所有文件名稱信息)
  • /home/test/test1 目錄的權限是 400 所以對應test其他用戶的權限是可以讀取inode信息  inode 4 r--  沒有有執行權限所以無法進入目錄獲取目錄中文件inode信息 但是有讀權限所以可以查看目錄 block信息(目錄下所有文件名稱信息)
  •  

總結:因爲沒有執行權限,無法進入到目錄中,所以無法獲取目錄中文件inode信息,因此文件屬性信息顯示爲???

 

特殊權限

suid 執行程序時使普通用戶擁有程序所有者的權限,但suid只能對二進制程序添加
chmod u+s /sbin/useradd


 
guid自動繼承父目錄的屬組
chomod g+s /etc    

sticky 粘滯位 在一個公共目錄,每個用戶都可以創建文件,刪除自己的文件,但不能刪除別人的文件,可以修改。
chmod o+t 目錄

 

爲什麼創建的目錄和文件權限是一致的

目錄   755

文件   644

因爲umask的雲因

umask 默認 0022

要注意一點:

創建文件的時候 如果umask值爲奇數則在運算結果後加1,目錄則不分umask值的奇偶

例:

umask 設置爲033

 

永久修改umask值的方法

vim /etc/profile

 

創建用戶時,用戶的默認環境是從哪裏來的

創建用戶的時候會把/etc/skel/下的所有文件拷貝到用戶的家目錄中

 

用戶相關命令

useradd 創建用戶命令

/etc/default/useradd 添加用戶的缺省配置

  • -u 指定uid
  • -g 指定gid (可以寫組名)
  • -G 指定多個用戶組 附加組(可寫組名,每個用戶組之間用,分隔)
  • -r 創建系統用戶
  • -s 指定登錄bash環境
  • -M 不創建家目錄
  • -m 創建指定家目錄
  • -d 指定家目錄
  • -c 註釋
  • -e 指定過期時間 格式”2018/07/30”

userdel 刪除用戶命令

  • -r 刪除用戶家目錄

 

批量創建10個系統帳號test01-test10並設置密碼(密碼爲隨機8位字符串)。

#!/bin/bash

for i in `seq 01 10`

do

   useradd test$i

   password=`openssl rand -base64 12|head -c 8`

   echo $password|passwd --stdin test$i

done

 

創建隨機碼的集中方法

  • 1 echo $RANDOM
  • 15139 
  • 2 openssl rand -base64 8
  • wkyhbABFkMo=
  • 3 date +%s%N
  • 1503126951571170345
  • 4 head /dev/urandom |cksum
  • 1974094793 3276
  • 5 cat /proc/sys/kernel/random/uuid
  • 7f559951-5e93-4ac5-b7c5-4e0264b828c2
  • 6 mkpasswd (這種方法需要先安裝yum -y install expect)
  • ejtW-iF02  
  • mkpasswd -l 20
  • -l 密碼長度

 

 

 

  •  

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章