linux雲自動化運維基礎知識5.6(用戶管理及文件權限)
用戶理解
用戶就是系統使用者的身份
在系統中用戶存儲為若幹竄字符+若幹個系統配置文件
用戶信息涉及到的系統配置文件:
/etc/passwd ###用戶信息
用戶:密碼:uid:gid:說明:家目錄:用戶使用的shell/etc/shadow ###用戶認證信息
/etc/group ###組信息組名稱:組密碼:組id:附加組成員
/etc/gshadow ###組認證信息
/etc/skel/.* ###用戶骨架文件
2.用戶管理
(1).用戶建立
useradd 參數 用戶名字
-u ##指定用戶uid
-g ##指定用戶初始組信息,這個組必須已經存在
-c ##用戶說明
-d ##用戶家目錄
-s ##用戶所使用的shell,/etc/shells記錄了用戶能使用shell的名字
(2).用戶刪除
userdel -r 用戶名稱 -r表示刪除用戶信息及用戶的系統配置
(3).組的建立
groupadd -g ##建立組
groupdel 組名字 ##刪除組
作以上實驗的監控命令:
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt‘
(4).用戶id信息查看
id 參數 用戶
-u ##用戶uid
-g ##用戶初始組id
-G ##用戶所有所在組id
-n ##顯示名稱而不是id數字
-a ##顯示所有信息
(5).用戶信息更改
usermod 參數 用戶
-l ##更改用戶名稱
-u ##更改uid
-g ##更改gid
-G ##更改附加組
-aG ##添加附加組
-c ##更改說明
-d ##更改家目錄指定
-md ##更改家目錄指定及家目錄名稱
-s ##更改shell
-L ##凍結帳號
-U ##解鎖
3.用戶權力下放
(1)在系統中超級用戶可以下放普通用戶不能執行的操作給普通用戶
(2)下放權力配置文件:/etc/sudoers
(3)下放權力的方法
*)超級用戶執行visudo進入編輯/etc/sudoers模式
*)格式:
獲得權限用戶 主機名稱=(獲得到的用戶身份) 命令
test desktop0.example.com=(root) /usr/sbin/useradd
test用戶能在desktop0.example.com以超級用戶身份執行/usr/sbin/useradd
(4)執行下放權限命令
sudo 命令 ##如果第一次執行sudo需要輸入當前用戶密碼
在/etc/sudoers中如果設置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用戶調用sudo命令的時候不需要自己密碼
4.用戶認證信息的控制
chage 參數 用戶
-d ##用戶密碼組後一次修改的時間,如果設定成0,用戶登陸系統後必須修改自己的密碼
-m ##最短有效期
-M ##最長有效期
-W ##警告期
-I ##用戶非活躍天數
-E ##帳號到期日格式 -E "YYYY-MM-DD"
5.文件權限
(1).文件屬性的查看####
ls -l filename
-|rw-r--r--.|1| root| root| 46 |Oct 1 05:03 |filename
— ————————— — ———— ———— —— ———————————— ————————
1 2 3 4 5 6 7 8
1."-": 文件類型
- ##普通文件
d ##目錄
c ##字符設備
s ##套接字
p ##管道
b ##快設備
l ##連接
2."rw-r--r--":文件讀寫權限
rw-|r--|r--
* $ @
*所有人的權限
$所有組的權限
@其他人的權限
3."1":
對文件:文件內容被系統記錄的次數
對目錄:目錄中文件屬性的字節數
4."root":文件所有人
5."root":文件所有組
6."46":文件內容的大小
7."Oct 1 05:03":文件最後一次被修改的時間
8."filename":文件名字
(2).文件所有人所有組的管理
chown username file|dir ##更改文件的所有人
chown username.groupname file|dir ##更改所有人所有組
chown -R username dir ##更改目錄本身及裏面所有內容的所有人
chgrp -R groupname dir ##更改目錄本身及裏面所有內容的所有組
監控命令
watch -n 1 ls -lR /mnt
(3).文件普通權限
rw-|r--|r--
u g o
u:文件所有人對文件可以讀寫
g:文件組成員對文件可讀
o:其他人對文件可讀
u優先匹配,g次優先,o當u,g不匹配時匹配
1.r
對文件:可以查看文件中的字符
對目錄:可以查看目錄中文件的信息
2.w
對文件:可以更改文件內字符
對目錄:可以在目錄中添加刪除文件
3.x
對文件:可以運行文件內記錄的程序動作
對目錄:可以進入目錄中
(4).字符方式修改該文件權限
chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir
chmod u-x file1 ##file1擁有者去掉x權限
chmod g+w file1 ##file1擁有組添加w權限
chmod u-x,g+w file1 ##file1擁有者去掉x權,file1擁有組添加w權限
chmod ugo-r file2 ##file2的用戶組其他人去掉r權限
chmod ug+x,o-r file3 ##file3用戶和組添加x權限,其他人去掉r權限
(5).數字方式修改該文件權限
在linux中
r=4
w=2
x=1
文件權限數字表示方式
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
所以文件權限表示為644
chmod 修改後權限值 file
chmod 777 file
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
6.系統默認權限的設定
從系統存在角度來說,開放權力越大,系統存在意義越高
從系統安全角度來說,開放權力越少,系統安全性越高
所以系統設定新建文件或目錄會去掉一些權限
設定方式
umask ##查看系統保留權限默認為022
umask 077 ##修改該系統保留權限為077,此設定為臨時設定,只當前shell中生效
永久設定方式:
vim /etc/bashrc ##shell
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用戶umask
72 else
73 umask 077 ##超級用戶 uask
74 fi
vim /etc/profile ##系統
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用戶umask
61 else
62 umask 077 ##超級用戶umask
63 fi
以上兩個文件umask設定值必須保持一致
source /etc/bashrc
source /etc/profile
讓設定立即生效
7.文件的訪問控制(acl列表)######
(1).acl定義
acl = access control
指定特殊用戶對特殊文件有特殊權限
drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
^表
getfacl /westos/
# file: westos/ ##文件名稱
# owner: root ##文件所有人
# group: root ##文件所有組
user::rwx ##擁有者權限
user:student:rwx ##特殊用戶權限
group::--- ##組權限
mask::rwx ##權限掩碼
other::--- ##其他人權限
註意:當文件上有權限列表時,ls -l 能看到的權限是假的
(2).設定acl列表
設定
setfacl -m <u|g>:<username|groupname>:權限 文件|目錄
-m #設定
u #用戶
g #組
刪除列表中的用戶或者組####
setfacl -x <u|g>:<username|groupname> 文件|目錄
關閉列表
setfacl -b 文件|目錄
acl mask值
1.mask 權限掩碼
mask用來標示能夠賦予用戶最大權限
當用chmod改變文件普通權限時可能會被破壞
修復
setfacl -m m:rwx 文件名稱
####acl 默認權限######
當我們需求某個目錄對於student可寫,並且目錄中新建的子目錄對student也可寫
就要設定默認默認權限
註意: 默認權限只對目錄中新建立的文件或者目錄生效,對已經建立的文件無效,
對於目錄本身也無效
setfacl -m d:u:student:rwx /westos
8.特殊權限####
(1).suid ##冒險位
之針對二進制可執行文件,
文件內記錄的程序產生的進程的所有人為文件所有人
和進程發起人身份無關
設定方式:
chmod u+s file
suid=4
chmod 4xxx file
(2).sgid ##強制位
對文件:只針對二進制可執行文件,
任何人運行二進制文件
程序時程序產生的進程的所有組都是文件的所有組
和程序發起人組的身份無關
對目錄:當目錄有sgid權限後,目錄中新建的所有文件的所有組
都自動歸屬到目錄的所有組之中,和文件建立者所在的組無關
設定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
(3).sticky ##粘制位
t權限:
只針對與目錄,當一個目錄上有t權限,那麽目錄中的文件只能被文件的擁有者刪除
設定方式:
chmod o+t direcotry
t=1
chmod 1777 direcotry
本文出自 “13122425” 博客,請務必保留此出處http://13132425.blog.51cto.com/13122425/1950096
linux雲自動化運維基礎知識5.6(用戶管理及文件權限)