權限命令,sudo命令,用戶管理命令,特殊權限

權限命令

chmod 777 /文件 或chmod u+x,g-r+,o=w /文件
-R遞歸 
權限:刪除一個文件必須對該文件所在目錄有w權限 ,目錄權限優於文件權限   目錄必須有x權限,不然無法cd,可以ls一級
圖片
只有root和文件所有者可以chmod,只有root可以改變文件所有者 chown 用戶名 /文件 chgrp 用戶名/文件
 
umask -S

[root@first home]# umask -S

u=rwx,g=rx,o=rx
查看權限缺省值,新建的文件都沒有x權限,因爲怕病毒直接執行
umask 777-權限  換缺省值 如想換成rwx r-- r-- ,爲umask 033


sudo

su yinxingyouyou
env 查看用戶當前環境變量 就是圖形界面,分辨率,桌面背景,鼠標移動速度等個性化,可以env看下
env - root/yinxingyouyou 環境變量一起換
 su - root -c "useradd user3" 臨時執行root命令,需要密碼的

sudo權限
把本來只能root執行的命令賦予普通用戶執行,sudo的操作對象是系統命令
讓普通用戶分擔root的工作量 
visudo 也可以直接修改 vi /etc/sudoers man 5 sudoers 
sudo -l 看都賦予了哪些命令
sudo /sbin/shutdown -r now

要添加普通用戶到sudo中

root    ALL=(ALL)       ALL
yinxingyouyou    ALL=(ALL)       ALL

說明:格式爲(用戶名    網絡中的主機=(執行命令的目標用戶)    執行的命令範圍)

如果你希望之後執行sudo命令時不需要輸入密碼,那麼可以形如

    root    ALL=(ALL)       ALL 
    blinux  ALL=(ALL)       NOPASSWD:ALL

輸入:wq保存即可。


其中IP不是限制來源IP,是限制訪問IP, 是被管理主機的地址



用戶管理命令

useradd yinxingyouyou;passwd yinxingyouyou
這個命令敲過後會執行那7個文件 grep更直觀,會過濾顯示,比如grep yinxingyouyou就看跟這個名字有關的行
grep yinxingyouyou /etc/passwd
grep yinxingyouyou /etc/shadow
grep yinxingyouyou /etc/group
grep yinxingyouyou /etc/gshadow
ll -d /home/yinxingyouyou/
ll /var/spool/mail/yinxingyouyou


useradd -u 666 -g root -G root,bin -c test user -d /yinxingyouyou -s /bin/bash yinxingyouyou 
u是UID g是GID G是附加組,多個用逗號隔開 c是說明,有空格用引號引起來 d是默認目錄,比如要用Apache搭建服務器,需要讓這個網站來管理它的Apache主目錄, s是shell 

新建用戶時的缺省值是在/etc/default/sueradd和/etc/login.defs
 /etc/default/sueradd
默認組名 默認家目錄 密碼過期寬限天數 密碼失效時間 默認shell 模板目錄 是否建立郵箱
 /etc/login.defs
除去註釋行,密碼有效期,密碼修改間隔,密碼最小位數,密碼到期警告,最小和最大UID範圍,加密模式SHA512

passwd
主賬號直接回車或者加相應用戶名
子賬號 直接回車,輸一遍原密碼,輸兩遍複雜性的不是基於字典的密碼,退格鍵也是一個字符,設置時不可以按退格
passwd-s yinxingyouyou 查詢密碼狀態 1.用戶密碼設定時間 2.密碼修改間隔時間 3.密碼有效期 4.警告時間 5.密碼不失效
passwd -l yinxingyouyou 鎖定用戶 其實是把/etc/shadow下的密碼串前面加了個!,去試試     -u解鎖用戶
echo "123" | passwd --stdin yinxingyouyou stdin是接受這個字符串作爲用戶的密碼。這命令主要是用在shell編程裏批量添加用戶用

usermod 修改已存在的用戶的信息-u 666 設置UID -c “test user”用戶說明 -G 用戶 組名 修改用戶附加組  -L 鎖定 -U解鎖
鎖定用戶命令很多, passwd -l user1;手工修改/ect/passwd,用戶登錄權限從/bin/bash改成/sbin/nologin;直接把用戶註釋掉,在前面加#;vim修改shadow,在用戶密碼前面手工加! usermod -L 用戶名

chage修改用戶密碼狀態 
圖片
chage -d 0 yinxingyouyou,這個命令其實是把密碼修改日期歸零了,這樣用戶一登錄就必須修改密碼(試),主要用在批量創建用戶時用

awk -F':' '{if($3+0>500) print $0}' /etc/passwd這個是打印出普通用戶


userdel -r yinxingyouyou 同時刪除家目錄 
如何手工刪除用戶
圖片

id yinxingyouyou 查看用戶UID GID 所屬組
想強制把一個用戶改成超級用戶,就把passwd裏的UID改成0,所以UID也是可以重複的

把用戶所屬組換成0組,並不能使其變成超級用戶,不信試試,要改UID,不是改GID


影子文件/etc/shadow 8個字段
1.用戶名
2.加密串,就算密碼一樣,加密串也不一樣。*或者!!代表用戶不能登錄。所以臨時禁用一個用戶可以在密碼串前加!
3.密碼最後一次修改日期。1970年1月1日,到修改密碼的那天。
4.允許兩次修改密碼的最小時間間隔 和3相比
5.密碼有效期,默認爲好幾百年,想讓這個用戶90天必須改一次,可以設成90
密碼有3個原則:複雜性(不能是123456),時效性(定期修改),易記性
6.到期警告時間 7就是說提前7天告訴你密碼要到期了
7.密碼過期後的寬限天數,空白就是一天都不行,5就是寬限5天,-1就是寬限到永久
8.賬號失效時間,到這個時間賬號就不能用了,要用時間戳表示 
把時間戳換算成日期date -d"1970-1-1 16606 days" 
把日期換算成時間戳echo $(($(date --date="2014/01/06" +%s)/86400+1))

組信息文件/etc/group和組密碼文件/etc/gshadow 4個字段
1.組名
2.組密碼 root可以給普通用戶設個組管理員,組管理員可以用組密碼管理其他組,因爲root太忙了沒時間
3.GID 也是普通用戶組ID是500以後,超級用戶組ID是0
4.組中附加用戶 
所以,不用添加命令(useradd grpadd),而是直接在裏面修改,也可以添加用戶和組,這就是手動添加用戶


組管理命令 添加、刪除、把用戶加進去
groupadd 組名  (-g 制定GID,很少用)加完去/etc/group看看
groupmod 組名 (-g GID改組ID -n 新組名 改組名,用的纔多)
groupdel 組名 如果組中有作爲初始組的用戶,不能刪,如果只有附加組,可以刪
gpasswd 組名 -a 用戶名 把用戶加組 -b 用戶名 把用戶從組移除 然後去vim /etc/group看附加組加了沒。其實直接改文件反而更好記,linux的命令歸根結底也都是對文件進行操作,所以直接改文件也行。


特殊權限

前面講了基礎權限,用戶,組,其他人,讀,寫,執行

ACL權限 一個文件只能屬於一個組,如果想把文件給所有者,所屬組以外的一個人共享,就要用ACL,ACL主要是解決身份不足的問題
ACL都是默認開啓的,開啓方法見視頻

在/創建projectx目錄,創建projectx組(groupadd),把項目人員加進來(gpasswd -a 用戶名 projectx或者直接去/etc/group改),調整目錄權限(改變所有者chown root:projectx /projectx,然後改變權限chmod 770 /projectx),權限rwx,其他人權限0
setfacl -m u:linshi:rx -R /projectx/ u換成g是添加組的權限
getfacl /project/ 查看修改的權限

加完ACL權限後會ll -d查看會有+在權限後面 
最大有效權限mask acl設置的用戶和組的限要和mask權限相與,mask 是設置除所有者外的使用者的權限
setfacl -m m:rx /projectx/ 設置最大有效權限
刪除ACL權限 setfacl -x u:用戶名 文件名   u換成g就是刪除組的ACL權限
setfacl -b 文件名 刪除文件的所有ACL權限,回車後ll -d看看+沒了

默認ACL權限,讓目錄裏的新加文件繼承父目錄的權限,只能是新加文件,老文件不會。是這個默認ACL權限創建後的新建文件。
setfacl -m d:u:用戶名:權限 文件名   加了個d: 爲default
這兩個命令都只能對目錄,不能對文件

文件的3個特殊權限
setUID
1.只有可執行的二進制程序才能設定SUID權限,2.命令執行者要對該程序有x權限(設置setUID之前記得加x權限),3.命令執行者在執行該程序時獲得該程序的屬主身份,4.setUID只在該程序執行過程中有效 4個缺一不可
chmod 4755 文件名 或者 chmod u+s 文件名 第一個4就是SUID權限,表明用戶有SUID權限 -rwsr-x---
取消setUID權限 chmod 755 文件名 或者 chmod u-s 文件名
如果給vi設一個4755權限,普通用戶用這個的時候就變成root了,要知道linux所有東西都是以文件形式保存的
要定期掃描,保證系統中沒有計劃之外的setUID出現
setGID
-rwx--s--x   chmod 2755(g+s) 目錄名 設置SGID權限 chmod 755 (g-s) 目錄名 取消SGID權限
對文件的作用跟SUID類似,對目錄的作用是普通用戶在這個目錄內創建的文件的所屬組都是這個組,而不是用戶的主組
sticky BIT
普通用戶應該對該目錄擁有w和x權限。只對目錄有效
chmod 1775(o+t) 目錄名 設置粘着位 chmod 775(o-t) 目錄名 取消粘着位   雖然權限是dwrxwrxwrx 但加t後自己創建的文件別人可以改(w),不能刪(對root也不能刪嗎?)
每一種特殊權限都有其特定對象,所以7755沒有意義。其中一個權限(SBIT),對文件沒用,一個權限(SUID)對目錄沒用

文件系統屬性chattr權限 change attributes
chattr +、-、=   a、i、A 文件或目錄    lsattr -a 文件或目錄看是否有i
chattr +i 文件或目錄 鎖定文件,不能改名刪除或修改內容;只能修改目錄下的文件的數據,不能刪除或建立文件,包括root
i屬性是非常好的防止誤操作的一個權限 
chattr +a 文件或目錄 只能添加,不能刪除,對於文件;只能修改,建立文件,不能刪除,對於目錄
所以只能用echo追加,不能用vi

chattr命令不能保護/、/dev、/tmp、/var目錄。


a:即append,設定該參數後,只能向文件中添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性。

i:設定文件不能被刪除、改名、設定鏈接關係,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。

A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁盤I/O錯誤的發生。



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