2016-08-02
授課內容:
用戶和組管理命令
理解并設置文件權限
默認權限
特殊權限
文件ACL
用戶和組管理命令
用戶和組的配置文件:/etc/default/useradd(相當于useradd -D)、/etc/skel(創建用戶的家目錄配置文件)、/etc/login.defs(修改用戶的密碼策略配置)
/etc/default/useradd(相當于useradd -D)
[root@Centos7 ~]# ll /etc/default/useradd -rw-r--r--. 1 root root 119 Mar 6 2015 /etc/default/useradd [root@Centos7 ~]# cat !^ cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [root@Centos7 ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
/etc/skel(創建用戶的家目錄配置文件)
[root@Centos7 ~]# ls -a /etc/skel/ . .. .bash_logout .bash_profile .bashrc .mozilla [root@Centos7 ~]# useradd user111 [root@Centos7 ~]# ls -a /home/user111/ . .. .bash_logout .bash_profile .bashrc .mozilla
/etc/login.defs(修改用戶的密碼策略配置)
用戶管理:
①useradd [options] LOGIN:添加用戶
-u:指定UID
-o:no-uniq,【不唯一,配合-u使用,如將普通用戶提權為管理員】
-g:指定組(前提是組必須存在)
-G:添加附加組
-s:指定shell
-c:添加注釋內容
-M:不創建家目錄
-r:system,創建系統用戶
例:添加一個用戶hello,其UID指定3500,屬組是3550,附加是root,注釋為“你好”,系統用戶,不能登陸系統,同時不創建家目錄
useradd hello -u 3500 -g 3500 -G root -c "nihao" -r -s /sbin/nologin -M
②usermod [OPTION] login:用戶屬性更改
-u:更改用戶UID
-g:更改用戶屬組
-aG:更改用戶附加組,直接-G原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append
-s:修改shell
-c:修改注釋信息
-L:鎖定用戶不能登陸
-U:解鎖用戶
-l:login_name,修改用戶的登陸名字
③userdel [OPTION]… login
-r:刪除家目錄
④passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限
-l:鎖定用戶
-u:解鎖
-e:強制用戶下次登陸需要更改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
⑤chage [OPTION]… LOGIN:修改用戶的密碼策略(實際是修改了/etc/login.defs的配置文件)
[root@Centos7 ~]# chage hill Changing the aging information for hill Enter the new value, or press ENTER for the default Minimum Password Age [0]: Maximum Password Age [99999]: Last Password Change (YYYY-MM-DD) [2016-08-01]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [-1]:
⑥id [OPTION]… [USER]:查看用戶信息
-u:
-g:
-n:
⑦finger UserName:查看用戶信息
⑧chfn:修改注釋信息
⑨chsh: 修改shell
用戶組管理:
①groupadd [OPTION]… group_name:添加組
-r:系統組
-g:GID
②groupmod [OPTION]… group:組屬性修改
-g
-n:新組名字
③groupdel GROUP:組刪除
④gpasswd [OPTION] GROUP:修改密碼
-a:添加組用戶
-A;user1,user2,…: 設置有管理權限的用戶列表
-d:刪除組用戶
批量增加用戶和修改密碼
批量增加用戶:
先創建一個文件,里面輸入需要添加的賬號,格式與passwd格式一致,然后用newusers命令運行賬號文件即可
[root@Centos7 ~]# cat user.txt user11:X:3000:3000::/testdir/user11:/bin/bash user12:X:3001:3001::/testdir/user12:/bin/bash user13:X:3002:3002::/testdir/user13:/bin/bash user14:X:3003:3003::/testdir/user14:/bin/bash user15:X:3004:3004::/testdir/user15:/bin/bash [root@Centos7 ~]# newusers user.txt
批量修改密碼:
先創建一個文件,里面輸入需要批量修改密碼的賬號,格式【賬號:密碼】,然后重定向給chpasswd命令運行賬號文件即可
[root@Centos7 ~]# cat pass.txt user11:centos user12:centos user13:centos user14:centos user15:centos [root@Centos7 ~]# cat pass.txt |chpasswd
【】練習:手動添加一個用戶hive,uid=gid=5000,附加組是bin
1.vipw 2.vigr 3.vim /etc/shadow 4.vim /etc/gshadow 5.cp -r /etc/skel/. /home/hive 6.chown -R hive:hive /home/hive 7.chmod -R go= /home/hive
文件權限和管理
文件權限
[root@Centos7 ~]# ll total 5280 -rw-r--r--. 1 root root 37 Jul 31 14:48 11111 -rw-r--r--. 1 root root 61 Jul 31 14:41 11.sh drwxr-xr-x. 2 root root 6 Aug 1 09:04 1.a.nihaoma
其中drwxr-xr-x.指的是文件的類型及權限
每三位為一組,對應:u(屬主),g(屬組),o(其他)
權限為r(讀)、w(寫)、x(執行)
文件:
r: 可使用文件查看類工具獲取其內容
w: 可修改其內容
x: 可以把此文件提請內核啟動為一個進程(一般為二進制程序或者腳本)
目錄:
r: 可以使用ls查看此目錄中文件列表
w: 可在此目錄中創建文件,也可刪除此目錄中的文件【重點理解】
x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此目錄
X:只給目錄x權限,不給文件x權限
1、chmod WHO OPT FILE:文件權限修
WHO:u,g,o,a
OPT:+,-,=
修改文件的屬主和屬組
2、chown [OPTION]… [OWNER][:[GROUP]] FILE…:修改文件的屬主
-R:遞歸
chown USERNAME:GROUPNAMDE FILE… :一并修改文件的屬主和屬組【】
3、chgrp [OPTION]… GROUP FILE…:修改文件的屬組
-R:遞歸
chown:只有root有權限
chgrp:只有root和所有者有權限
新建文件和目錄的默認權限和掩碼umask
umask:從最大權限中屏蔽掉相應的權限位,從而得出默認權限
[root@Centos7 ~]# umask 0022
新建文件和目錄的默認權限
新建FILE權限: 666-umask
如果所得結果某位存在執行(奇數)權限,則將其權限+1【即系統默認是不會給文件有執行權限】
[root@Centos7 ~]# umask 113 [root@Centos7 ~]# touch f22222 [root@Centos7 ~]# ll f22222 -rw-rw-r--. 1 root root 0 Aug 2 20:27 f22222
文件f22222的某位存在執行(奇數)權限,則將其權限+1
新建DIR權限: 777-umask
特殊權限:SUID SGID STICKY(sst)
suid:【只作用在二進制的可執行的文件】,添加了s權限后,所運行的程序就可以以命令的屬主身份權限進行運行
【當文件本身屬主u有執行權限x時,加上s權限會在x權限的位置顯示小寫的s,如果沒有x執行權限,則會變成大寫的S】
chmod u+s FILENAME
chmod u-s FILENAME
-rwxr-xr-x. 1 root root 117616 Nov 20 2015 /usr/bin/ls [root@Centos7 ~]# ll f22222 -rw-rw-r--. 1 root root 0 Aug 2 20:27 f22222 [root@Centos7 ~]# chmod u+s f22222 [root@Centos7 ~]# ll f22222 -rwSrw-r--. 1 root root 0 Aug 2 20:27 f22222
sgid:作用在可執行文件或者目錄
chmod g+s FILENAME/Documents
chmod g-s FILENAME/Documents
當作用在文件時,添加了s權限后,所運行的程序就可以以命令的屬主身份權限進行運行
當作用在目錄時:
默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組,一旦某目錄被設定了SGID,
【則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組】
【當文件本身屬組g有執行權限x時,加上s權限會在x權限的位置顯示小寫的s,如果沒有x執行權限,則會變成大寫的S】
sticky:【具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權
在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件】
【只作用在目錄上】
【當文件本身其他用戶o有執行權限x時,加上s權限會在x權限的位置顯示小寫的t,如果沒有x執行權限,則會變成大寫的T】
chmod o+t DIR…
chmod o-t DIR…
[root@Centos7 ~]# ll -d TTTT/ drwxr-xr-x. 2 root root 18 Aug 2 14:48 TTTT/ [root@Centos7 ~]# chmod o+t TTTT/ [root@Centos7 ~]# ll -d TTTT/ drwxr-xr-t. 2 root root 18 Aug 2 14:48 TTTT/
特殊權限數字法:
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod4777 /tmp/a.txt
chattr:修改文件屬性
只有超級權限的用戶才具有使用該命令的權限,這項指令可改變存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系統上的文件或目錄屬性
+i:即Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
+a:Append-only,系統只允許在這個文件之后追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
文件訪問控制列表(file ACL)
[root@Centos7 ~]# ll -d TTTT/ drwxrwxr-x+ 2 root root 18 Aug 2 14:48 TTTT/ ll user.txt -rw-rw-r--+ 1 root root 230 Aug 2 09:46 user.txt
已添加文件訪問控制列表的目錄或文件在最有一位顯示為+
【】添加了facl的文件的權限判斷順序:
owner–>facl,user–>group–>facl,group–>other
getfacl file |directory:查看文件或目錄當前的facl情況
setfacl -m u:user:rwx file/document:添加某個用戶的訪問控制列表
setfacl -m g:group:rw file| directory:添加某個組的訪問控制列表
setfacl -x u:user file |directory:刪除某個用戶的訪問控制列表
setfacl -x g:group file |directory:刪除某個組的訪問控制列表
setfacl -b file 清除所有ACL權限
原創文章,作者:麥德良,如若轉載,請注明出處:http://www.www58058.com/27638
思路清晰,理論與實踐結合,如果能有一些恰當的縮進就更好了。