學習札記:用戶管理,權限管理和ACL歡樂”斗地主”

補充:touch /etc/nologin 啟動系統維護功能,其他用戶不能登陸,除了管理員,可以自定義內容,在普通用戶登陸的時候可以看到相關維護提示,解除維護模式的話,必須要刪除該文件,另外可以創建/run/nologin達到相同的效果(僅限于CentOS 7),

用戶屬性修改

usermod [OPTION] login
  • -u UID: 新UID

  • -g GID: 新基本組

  • -G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來附加,組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;

  • -s SHELL:新的默認SHELL;

  • -c ‘COMMENT’:新的注釋信息;

  • -d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;若要創建新家目錄并移動原家數據,同時使用-m選項

  • -l login_name: 新的名字;

  • -L: lock指定用戶,在/etc/shadow 密碼欄的增加 !

  • -U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉

  • -e YYYY-MM-DD: 指明用戶賬號過期日期;

  • -f INACTIVE: 設定非活動期限;

Screenshot_20160803_195353

刪除用戶

userdel [OPTION]… login
  • -r: 刪除用戶家目錄;

    查看用戶相關的ID信息

    id [OPTION]… [USER]
  • -u: UID

  • -g: GID

  • -G: Groups

  • -n: Name

Screenshot_20160803_195517

切換用戶或以其他用戶身份執行命令

su [options…] [-] [user [args…]]

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄

su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換root,su至其他用戶無須密碼;非root用戶切換時需要密碼

換個身份執行命令:

su [-] UserName -c ‘COMMAND’
選項:-l –login:
su -l UserName 相當于 su – UserName

設置密碼

passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限

passwd: 修改自己的密碼;

常用選項:
  • -l:鎖定指定用戶

  • -u:解鎖指定用戶

  • -e:強制用戶下次登錄修改密碼

  • -n mindays: 指定最短使用期限

  • -x maxdays:最大使用期限

  • -w warndays:提前多少天開始警告

  • -i inactivedays:非活動期限;

  • –stdin:從標準輸入接收用戶密碼;

  • echo “PASSWORD” | passwd –stdin USERNAME

 

修改用戶密碼策略
chage [OPTION]… LOGIN
  • -d LAST_DAY

  • -I, –inactive INACTIVE

  • -E, –expiredate EXPIRE_DATE

  • -M, –maxdays MAX_DAYS

  • -m, –mindays MIN_DAYS

  • -W, –warndays WARN_DAYS

  • –l,顯示密碼策略,下一次登錄強制重設密碼

chage -d 0 tom

chage -m 0 –M 42 –W 14 –I 7 tom

chage -E 2016-09-10 tom

用戶相關的其它命令
  • chfn 指定個人信息

  • chsh 指定shell

finger

查看用戶詳細信息

Screenshot_20160803_195833

創建組

groupadd [OPTION]… group_name
  • -g GID: 指明GID號;[GID_MIN, GID_MAX]

  • -r: 創建系統組;

  • CentOS 6: ID<500

  • CentOS 7: ID<1000

Screenshot_20160803_200038修改和刪除組

組屬性修改:groupmod
groupmod [OPTION]… group
  • -n group_name: 新名字

  • -g GID: 新的GID;

 

組刪除:groupdel
groupdel GROUP
更改組密碼
組密碼:gpasswd
gpasswd [OPTION] GROUP
  • -a user: 將user添加至指定組中;

  • -d user: 從指定組中移除用戶user

  • -A user1,user2,…: 設置有管理權限的用戶列表

Screenshot_20160803_200229

newgrp命令:臨時切換基本組;

如果用戶本不屬于此組,則需要組密碼

更改和查看組成員

groupmems [options] [action]
options:
  • -g, –group groupname 更改為指定組 (只有root)

    Actions:
  • -a, –add username 指定用戶加入組

  • -d, –delete username 從組中刪除用戶

  • -p, –purge 從組中清除所有成員

  • -l, –list

顯示組成員列表

groups [OPTION].[USERNAME]… 查看用戶所屬組列表

修改文件的屬主和屬組

修改文件的屬主:chown
chown [OPTION]… [OWNER][:[GROUP]] FILE…

用法:

OWNER OWNER:GROUP
:GROUP 命令中的冒號可用.替換;

  • -R: 遞歸

  • chown [OPTION]… –reference=RFILE FILE…

修改文件的屬組:chgrp

  • chgrp [OPTION]… GROUP FILE…

  • chgrp [OPTION]… –reference=RFILE FILE…

    • -R 遞歸

文件權限

文件的權限主要針對三類對象進行定義:
  • owner: 屬主, u

  • group: 屬組, g

  • other: 其他, o

    每個文件針對每類訪問者都定義了三種權限:

  • r: Readable

  • w: Writable

  • x: eXcutable

文件權限

文件:
  • r:w:x:可使用文件查看類工具獲取其內容,可修改其內容
    可以把此文件提請內核啟動為一個進程

目錄:

  • r: 可以使用ls查看此目錄中文件列表

  • w: 可在此目錄中創建文件,也可刪除此目錄中的文件

  • x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此目錄

  • X:只給目錄x權限,不給文件x權限

權限分配

  • 文件所有者

  • 文件所屬組用戶

  • 其他用戶

    修改文件權限

  • chmod [OPTION]… OCTAL-MODE FILE…

    • -R: 遞歸修改權限

  • chmod [OPTION]… MODE[,MODE]… FILE…

MODE:
  • 修改一類用戶的所有權限:

    • u= g= o= ug= a= u=,g=

  • 修改一類用戶某位或某些位權限

    • u+ u- g+ g- o+ o- a+ a- + –

    • chmod [OPTION]… –reference=RFILE FILE…參考RFILE文件的權限,將FILE的修改為同RFILE;

權限設置

新建文件和目錄的默認權限
  • umask值 可以用來保留在創建文件權限

新建FILE權限: 666-umask
  • 如果所得結果某位存在執行(奇數)權限,則將其權限+1

  • 新建DIR權限: 777-umask

  • 非特權用戶umask是 002從目錄或文件上屏蔽掉最大權限相應的位,從而得出默認權限,算出來的結果加一(如果文件具有執行權限) root的umask 是 022

  • umask: 查看

  • umask #: 設定

  • umask 002

  • umask –S 模式方式顯示

  • umask –p 輸出可被調用
    全局設置: /etc/bashrc 用戶設置:~/.bashrc

Linux文件系統上的特殊權限
SUID, SGID, Sticky
  • 三種常用權限:r, w, x

  • 安全上下文

    user, group, other
  • 前提:進程有屬主和屬組;文件有屬主和屬組

    • (1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限

    • (2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組

    • (3)進程訪問文件時的權限,取決于進程的發起者

    • (a) 進程的發起者,同文件的屬主:則應用文件屬主權限

    • (b) 進程的發起者,屬于文件屬組;則應用文件屬組權限

    • (c) 應用文件“其它”權限

可執行文件上SUID權限

任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限,啟動為進程之后,其進程的屬主為原程序文件的屬主

SUID只對二進制可執行程序有效

SUID設置在目錄上無意義

權限設定:
  • chmod u+s FILE…

  • chmod u-s FILE…

可執行文件上SGID權限

任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限,啟動為進程之后,其進程的屬主為原程序文件的屬組

權限設定:
  • chmod g+s FILE…

  • chmod g-s FILE…

目錄上的SGID權限

默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組通常用于創建一個協作目錄

權限設定:
  • chmod g+s DIR…

  • chmod g-s DIR…

Sticky 位

具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權,在目錄設置Sticky以刪除該文件位,只有文件的所有者或root可以

sticky 設置在文件上無意義

權限設定:
  • chmod o+t DIR…

  • chmod o-t DIR…

SGID(在該目錄里新建文件或目錄,將自動繼承該文件夾所屬組的屬性.)

權限位映射

SUID: user,占據屬主的執行權限位
  • s: 屬主擁有x權限

  • S:屬主沒有x權限

  • SGID: group,占據屬組的執行權限位

  • s: group擁有x權限

  • S:group沒有x權限

    • Sticky: other,占據other的執行權限位

  • t: other擁有x權限

  • T:other沒有x權限

設定文件特定屬性

  • chattr +i 不能刪除,改名,更改

  • chattr +a 只能增加

  • lsattr 顯示特定屬性

    訪問控制列表

    ACL:Access Control List,實現靈活的權限管理,除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限

CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。

CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。需手動增加:

  • tune2fs –o acl /dev/sdb1

  • mount –o acl /dev/sdb1 /mnt

    ACL生效順序:所有者,自定義用戶,自定義組,其他人
    訪問控制列表

為多用戶或者組的文件和目錄賦予訪問權限rwx

mount -o acl /directory

getfacl file |directory

setfacl -m u:wang:rwx file|directory

setfacl -Rm g:sales:rwX directory

setfacl -M file.acl file|directory

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory 將來新文件會繼承來自父目錄的訪問控制權限

setfacl -x u:wang file |directory

setfacl -X file.acl directory

訪問控制列表

ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限),而非傳統的組權限

getfacl 可看到特殊權限:flags

默認ACL權限給了x,文件也不會繼承x權限。

base ACL 不能刪除

  • setfacl -k dir 刪除默認ACL權限

  • setfacl -b file1清除所有ACL權限

  • getfacl file1 | setfacl –set-file=- file2 復制file1的acl權限給file2

訪問控制列表

mask只影響除所有者和other的之外的人和組的最大權限
Mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限(Effective Permission)

用戶或組的設置必須存在于mask權限設定范圍內才會生效。
setfacl -m mask::rx file

–set選項會把原有的ACL項都刪除,用新的替代,需要注意的是一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以.

如:
setfacl –set u::rw,u:wang:rw,g::r,o::- file1

備份和恢復ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要
加上-p 參數。但是tar等常見的備份工具是不會保留目錄
和文件的ACL信息

  • getfacl -R /tmp/dir1 > acl.txt

  • setfacl -R -b /tmp/dir1

  • setfacl -R –set-file=acl.txt /tmp/dir1

  • getfacl -R /tmp/dir1

作業:

4、三種權限rwx對文件和目錄的不同意義
對于目錄:
r:是ls等命令能讀取其目錄下的文件列表
w:能向目錄中寫入數據
x:能進入目錄中
對于文件:
r:cat能相關工具能讀取文件內容
w:能通過重定向或編輯器向其中寫入內容
x:能有運行權限,如腳本
5、umask和acl mask 的區別和聯系
umask:是規定了其創建文件和目錄時的相關權限,一般文件不會具有運行權限
acl mask:是規定了訪問控制列表中的用戶或用戶組所具有的最低權限
6、三種特殊權限的應用場景和作用
SUID:user位上的s權限,是給那些需要借助其他用戶身份運行的程序提供了一種可行方式
SGID:group位上的s權限,在該目錄里新建文件或目錄,將自動繼承該文件夾所屬組的屬性.
Sticky:other位上的s權限,可以劃定目錄里的用戶只能對自己的文件進行刪除操作,其余涉及其他用戶數據的操作被禁止
7、設置user1,使之新建文件權限為rw——-
su – user1
umask 066
8、設置/testdir/f1的權限,使user1用戶不可以讀寫執行,g1組可以讀寫/testdir/dir的權限,使新建文件自動具有acl權限:user1:rw,g1:—
setfacl -m u:user1:— /testdir/f1

Screenshot_20160803_203743
setfacl -Rm g:g1:rw,u:user1:rw  /testdir/dir

Screenshot_20160803_211706
備份/testdir目錄中所有文件的ACL,清除/testdir的所有ACL權限,并利用備份還原
getfacl -R /testdir > /data/t/acl.txt
setfacl -R -b /testdir

Screenshot_20160803_212313清除acl后

Screenshot_20160803_212244
setfacl -R –set-flie /data/t/acl.txt

Screenshot_20160803_212359
getfacl -R /testdir

 

 

 

原創文章,作者:M20-石俊,如若轉載,請注明出處:http://www.www58058.com/28379

(0)
M20-石俊M20-石俊
上一篇 2016-08-04 14:40
下一篇 2016-08-04 14:40

相關推薦

  • N22-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1    (復制/etc/skel為/home/tuser1) [root@localho…

    Linux干貨 2016-09-05
  • N22-第六周作業

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s@[[:space:]]\+@#&@g    2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; :%s#…

    Linux干貨 2016-09-26
  • 軟件包管理工具的使用及yum源倉庫的配置

    我們知道CentOS,本質上是RedHat的社區版,其無論是功能還是軟件配置上都與RedHat保持一致,因此CentOs系列的軟件包管理主要的也是rpm和yum工具。 RPM包管理 rpm包管理工具可以說是歷史悠久、名聲斐然了。rpm起初是RedHat公司研發的軟件包管理工具,即RedHat Package Managemer。但由于其性能突出,在開源界得到…

    Linux干貨 2016-11-06
  • 網絡管理1

    一、知識整理 1、路由轉發:拆除第一層MAC地址,根據IP地址廣播,收到信號后重新封裝。一個路由器連接多個廣播域,一個交換機連接多個沖突域。 2、網絡用戶應用程序:WEB瀏覽器;即時消息;電子郵件;協作(視頻會議,vnc);web網絡服務;文件網絡服務;數據庫服務;中間件服務(Tomcat);安全服務(netfilter)。 3、HDR:報頭。Frame C…

    Linux干貨 2016-09-05
  • ldd 的一個安全問題

    我們知道“ldd”這個命令主要是被程序員或是管理員用來查看可執行文件所依賴的動態鏈接庫的。是的,這就是這個命令的用處。可是,這個命令比你想像的要危險得多,也許很多黑客通過ldd的安全問題來攻擊你的服務器。其實,ldd的安全問題存在很長的時間了,但居然沒有被官方文檔所記錄來下,這聽上去更加難以理解了。怎么?是不是聽起來有點不可思議?下面,讓我為你細細道來。 首…

    Linux干貨 2016-05-05
  • Linux 基礎(7)——文本處理工具

    cat  tac  rev  more  less           head  tail cut  paste  wc               &nbs…

    2017-07-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-04 23:26

    排版很用心,對命令的常見用法與選項有了詳細的解釋,如果特殊權限能有一些實際的示例會更完整。

欧美性久久久久