linux用戶與權限使用方法

1.管理用戶組說明
RHEL系統中普通用戶和組的ID默認從500開始,0~499作爲系統保留。

2.命令行管理用戶
· 1)使用useradd創建用戶
用法:useradd [options] user_name
-u UID:爲新用戶指定一個uid(不使用系統默認按順序分配),使用-r強制簡歷系統用戶,-o允許新用戶不唯一的uid
-g Group:爲新用戶指定一個組(指定組必須存在)
-G Goups:爲新用戶指定一個附加組
-M 不創建用戶的家目錄
-m 爲新用戶創建家目錄,使用-k選項將skeleton——dir內的檔案複製到家目錄下
-c 爲新用戶進行說明註釋(/etc/passwd的說明欄)
-d 爲新用戶指定家目錄,默認值爲default_home內的login
-s 爲新用戶指定登錄後使用的shell
-e 爲新用戶指定帳號的終止日期,日期格式爲MM/DD/YY
-f 用戶帳號過期幾日後永久失效,當值爲0時帳號則立刻失效,爲-1時關閉此功能,默認關閉
例子:
useradd -u 510 -c "zabbix user" -s /bin/nologin user1
· 2)使用passwd設置用戶密碼
用法:passwd [options] user_name
常用選項:
-l 鎖定指定密碼
-u 解鎖指定的被鎖定的帳號
-n 指定密碼最短時間
-x 指定密碼最長時間
-w 指定密碼過期前的警告天數
-i 指定密碼過期後,帳號失效前的天數
-s 報告指定用戶密碼的狀態
--stdin 從標準輸入讀入密碼,常用於shell腳本
例子:
passwd user1
用cat命令查看:
cat /etc/passwd
查看用戶密碼信息新行:
cat /etc/shadow
· 3)用usermod命令修改用戶帳號信息:
用法:usermod [options] user_name
-L 鎖定帳號(在/etc/passwd中密碼部分前加一個!)
-U 用於解鎖
-l 改變用戶的登錄名
例子:
usermod -c "zabbix user" user1
cat /etc/passwd | grep user1
查看用戶的密碼文件,在密碼前加“!”符號,用戶不能登錄
· 4)使用userdel命令刪除用戶
用法:userdel [options] user_name
-f 強制刪除用戶,即使該用戶仍在登錄
-r 刪除用戶的同時刪除該用戶的家目錄和郵件
例子:
userdel user1
ls /home
沒有-r選項刪除用戶,而用戶的家目錄被保留,如果同名組沒有其他成員,則連同刪除,反之,保留。
· 5)使用groupadd命令新建組
用法:groupadd [options] group_name
-g 指定新建組的gid
-o 可以重複使用gid
-r 建立系統帳號
例子:創建一個新組
groupadd xh
修改xh密碼:(沒有密碼的組是不允許用戶申請加入的)
gpasswd xh
查看當前組羣:
groups
用戶主動申請加組羣xh
newgrp xh
用戶退出組羣:exit
刪除組xh的密碼:gpasswd -r xh
在root用戶下,將用戶xh加入到xh組中
gpasswd -a xh xh
將lisi設置爲組xh的管理員
gpasswd -A lisi xh
切換組:
newgrp xh(在xh用戶下)
修改組名,將xh名改爲xs:
groupmod -n xh xs
刪除組:
groupdel xs
查看user1的uid,gid,組:
id user1
查看用戶的帳號密碼信息:
change -l user1
設置用戶user1帳號過期時間是2021-05-28:
change -E "2021-05-28" user1
檢查系統內用戶帳號信息的完整性:
pwck (輸出中系統帳號家目錄信息的缺失是正常的)
· 6)sudo命令獲得root權限
使用visudo命令編輯sudo配置文件
visudo /etc/sudoers



















































































3.用戶初始化
· 1)用戶特定配置文件
當用戶被創建時,系統從/etc/skel/目錄下複製用戶的配置文件到用戶的目錄。這些配置文件用來定義用戶的工作環境,比如:PATH,別名,這些文件位於每個用戶的家目錄下,僅對當前用戶有效。
~/.bashrc 定義函數和別名
~/bash_profile 設置環境變量
~/.bash_logout 定義用戶退出時執行的命令
(可將別名定義在bashrc文件中)
全局配置文件:(對所有用戶都生效)
/etc/bashrc 定義函數和別名
/etc/profile 設置環境變量
/etc/profile.d 目錄下的腳本被/etc/profile引用
系統預設的值:
用戶屬性信息的默認值在文件/etc/login.defs中被定義
例子:查看/etc/login.defs,使用grep命令過濾文件以“#”開頭的註釋行
grep -v '^#' /etc/login.defs
查看/etc/default/useradd文件中的配置項
cat /etc/default/useradd
使用useradd命令列出系統預設的添加用戶信息的默認值
useradd -D
可以通過useradd -D加上相應的選項更新這些預設值
-b 定義用戶家目錄的上一級目錄
-e 用戶帳號的過期日期
-f 用戶帳號過期幾日後失效
-g 新建用戶的起始羣組或ID
-s 新建用戶登錄後使用的shell























4.Linux文件權限管理
注意:用戶權限高於組的權限,高於其他人的權限
權限
對文件影響
對目錄影響
r(讀取)
可以讀文件內容
可以列出目錄的內容
w(寫入)
可以更改文件內容
可以創建或刪除目錄中任意文件
x (執行)
可以作爲執行文件
可以訪問目錄內容(還取決於目錄文件的權限)
在命令行中列出目錄的屬性 :
ll -d /home/demo
查看文件目錄有多大:
du -sh /root
· 1)在命令行中管理權限
使用chmod命令更改文件的權限
用法:
chmod [options] [模式] file...
chmod [options] 八進制模式 file...
chmod [options] --referrence=參考文件 file...
常用選項
-R:以遞歸方式更改所有的文件及子目錄
符號模式:chmod who what which file|girectory
簡單理解:chmod [-R] [ugoa] [+-=] [rwx] file|firectory
who:指u、a、g、o(代表擁有者,全部,組,其他)
what:值+、-、=(代表添加,刪除,精確設置)
which:r、w、x(代表讀取,寫入,可執行)
八進制模式:chmod [-R] ### file|diretory
###代表數字,#代表權限總和 r=4,w=2,x=1
精確設置文件的權限:chmod u=rw,g=r file
統一設置目錄及目錄下所有文件的權限:chmod -R +w test/
使用數字方式設置權限:chmod 755 file
· 2)chown命令更改文件用戶所有權
更改文件或者文件夾的用戶或組的所有權,使用chown或chgrp命令
用法:
chown [options] [所屬者]:[所屬組] file
chown [options] --reference=參考文件 file
例子:
改變文件的所屬者:
chown xh file
改變文件的所屬組:
chgrp cxh file
同時改變用戶和組的所有權,並使用-R選項遞歸目錄和目錄下的所有文件:
chown xh:cxh test/
· 3) 特殊權限
查看passwd的權限
ll 'which passwd'
特殊權限對文件和目錄的影響
特權
對文件的影響
對目錄的影響
u+s(setuid或suid)
以擁有文件和目錄的用戶身份執行文件,而不是運行文件的用戶身份
無影響
g+s(setgid或sgid)
以擁有文件的組身份執行文件
對目錄中最新創建的文件將其組所有者設置爲與目錄的組所有者相同
o+t(sticky)
無影響
對目錄具有寫入權限的用戶僅可以刪除其擁有的文件,而無法刪除其他用戶所擁有的文件
設置特殊權限有兩種方法:
· 符號法:setuid=u+s;setgid=g+s;sticky=o+t
· 數字法:setuid=4;setgid=2;sticky=1
例子:給目錄設置sgid權限
chmod u+s directory
chmod 2775 directory
搜索所有異常的程序或腳本
find / -perm -4000
4.擴展屬性
lsattr testfile.txt 查看文件的擴展屬性
· 1)設置文件的擴展屬性:
chattr +i testfile.txt
lsattr testfile.txt
s:系統刪除這個文件時,用o填充文件區域
a:只允許追加數據,不允許覆蓋或截斷這個文件
i:表示不能被刪除,不能修改,不能重複命名,不能創建鏈接
S:表示同部數據
d:在文件備份時,dump程序忽略這個文件,通過man chattr獲得說明
c:以透明方式壓縮這個文件
u:當一個程序要刪除這個文件時,系統會保留其數據塊以使恢復
A:告訴系統不要修改對這個文件的最後訪問時間
· 2)訪問控制列表(ACL)
查看文件或目錄的acl權限
用法:getfacl [options] file
例子:查看文件的acl
getfacl testfile
對於添加ACL的文件,使用ll命令列出,權限位的最後帶有“+”號
ll testfile
· 3)設置文件或目錄的ACL
用法:
setfacl [-bkndRLP] {-m|-M|-x|-X|...} file
常用選項:
-m:設置或修改文件的ACL權限
-x:刪除文件的一個ACL權限
-b:刪除文件所有的ACL權限
-k:刪除所有的默認ACL權限
--set:設置文件ACL,替代當前的ACL
--mask:重新計算有效的mask值
-R:遞歸子目錄
-d:設置默認的ACL權限,僅能針對目錄使用
--restore:從文件恢復備份的ACL
例子:查看和設置ACL
針對用戶xh來設置rwx
setfacl -m u:xh:rwx acltest.file
針對組xh來設置rw
setfacl -m g:xh:rw acltest.file
設置限制的權限爲r
setfacl -m m:r acltest.file (mask爲限制權限)
查看當前的ACL
getfacl acltest.file
設置ACL權限,如果同時設置多個權限,權限之間使用“,”分隔,同時設置多個ACL用戶和組的權限:
setfacl -m u:user1:rwx,u:user2:rw,u:user3:r,g:xh:rw testfile
刪除ACL權限
setfacl -x g:xh acltest.file
一次性刪除所有ACL的權限
setfacl -b acltest.file
設置目錄默認的ACL
setfacl -d -m g:xh:rwx testdir/
· 4)備份和恢復ACL
主要文件操作命令cp和mv都支持備份時保留文件的acl,cp命令需要加上-p參數。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息的。--restore選項來恢復文件中保存的ACL。
例子:
查看目錄及其所有子目錄和文件當前的ACL信息
getfacl -R testdir/
備份目錄及其子目錄中文件的ACL
getfacl -R testdir/ > testdir.acl
刪除原文件所有ACL
setfacl -R -b testdir/
恢復被刪除的ACL信息
setfacl --restore testdir.acl



































































































































5.SELINUX
Selinux狀態有三種:啓用模式(enforcing),寬容模式(permissive),禁用模式(disabled)。
查看當前selinux的狀態:
getenforce
寬容模式設置:
setenforce 0
恢復selinux狀態 :
setenfroce 1
getenforce
永久禁用selinux:
vim /etc/selinux/config
將SElinux=enforcing改爲 SElinux=disabled
重啓系統使其生效。











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