linux系統(tǒng)是多用戶(multi-users)和多任務(wù)(multi-tasks)的,這樣的目的是為了一臺linux主機(jī)可以給很多用戶提供服務(wù)同時運(yùn)行多種服務(wù),但是我們是怎么區(qū)分每個用戶呢?作為一個管理員我對linux系統(tǒng)權(quán)限有哪些?作為一個普通的用戶又可以對linux系統(tǒng)有哪些操作呢?這里就牽扯到了linux的用戶類別和權(quán)限管理。本次博客就用戶和權(quán)限管理作出詳細(xì)的解釋。
用戶和組類型
在linux系統(tǒng)中,有著用戶和組著兩個概念,用戶是被包含在組里面的。
用戶可以分為以下2中類別:
管理員:也就是我們常說的root
普通用戶:分為系統(tǒng)用戶(為了能夠讓有些后臺進(jìn)程或服務(wù)類進(jìn)程以非管理員的身份運(yùn)行,通常需要為此創(chuàng)建多個普通用戶,這類用戶從不用登錄系統(tǒng))和登錄用戶
作為合法居民都應(yīng)該有自己的ID號,在linux中,用戶也有自己的用戶標(biāo)識的UID,是由16bits的二進(jìn)制數(shù)字來標(biāo)識的,所以取值范圍為0-65535.不同類型的用戶取值范圍如下:
管理員:0
普通用戶:
? ? 系統(tǒng)用戶:1-499(centos6),1-999(centos7)
? ??登錄用戶:500-60000(centos6),1000-60000(centos7)
組按不同的分類可以分為以下3中類型的組:
1.按管理員組合普通用戶組
管理員組:對系統(tǒng)有著管理權(quán)限的組
普通用戶組:和普通用戶對應(yīng)也有著系統(tǒng)組和登錄組
組也有著自己的GID,不同組的取值范圍如下(和用戶取值范圍相同)
?
2.按基本組和附加組
基本組:用戶在創(chuàng)建的時候,都會默認(rèn)創(chuàng)建一個與其名字相同的基本組
附加組:一個用戶可以屬于一個基本組后,也可以添加其他的組中,這個其他組就稱為這個用戶的附加組
?
3.按用戶數(shù)目
私有組:組名通用戶名,且只包含一個用戶
公用組:組內(nèi)包含著多個用戶
?
下面我們來說一下系統(tǒng)是怎么識別這個用戶是合法用戶的,用戶在登錄的時候,必須要鍵入用戶名和密碼,系統(tǒng)會把用戶提供密碼與系統(tǒng)中配置文件中的密碼對比(當(dāng)然這里不是簡簡單單的明文對比),如果相同則允許登入,否則不允許。管理員在定義用戶密碼的時候后最好要遵循以下定義標(biāo)準(zhǔn)(雖然linux允許用戶設(shè)置弱類型密碼):
1.使用隨機(jī)的密碼
2.最短長度不要低于8位
3.應(yīng)該使用大寫字母、小寫字母、數(shù)字和標(biāo)點(diǎn)符號四類字符中至少三類
4.定期更換
我們都知道,定義的密碼都是明文的,那么保存在配置文件中是以明文的嗎?那肯定不是的,密碼一般都會被算法加密,在centos中有以下加密算法,密碼被加密成的bit位也不一樣,越長說明安全性越高,加密等級為(1-6),在加密前還會添加上一段隨機(jī)數(shù)進(jìn)行加密,centos默認(rèn)以sha512加密:
可以使用命令對一段明文加密:
[root@localhost ~]# echo "Frank" | sha512sum d373aa36ac1061fab63c4a8ee098102476de1ff1bdff11be3629c54ccb14a35d27f658a4745a61ec183fbbd1077561a5bfcba5ead0fa4b32e2e63492e8fed3ea -
?
用戶和組的相關(guān)配置文件
/etc/passwd
我們先看一下這個文件:
[root@localhost ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin ......(省略) tcpdump:x:72:72::/:/sbin/nologin claire:x:1001:1001::/home/claire:/bin/bash
會看到一行從左到右被冒號分割成了7個部分,下面就這七個部分作出解釋,我們以最后一行為例:
1.claire,也就是用戶名啦
2.x,密碼占位符,密碼不是沒有保存在這個文件下,后面會講
3.1001,UID,也就是用戶ID
4.1001,GID,也就是組ID
5.空的,這里一般是注釋信息,可能是用戶的全稱
6./home/claire,用戶的家目錄
7./bin/bash,用戶登錄的默認(rèn)shell
我們可以看到前面為UID為0的為管理員root,那些UID小于等于999的,如bin為1,是系統(tǒng)用戶,他的默認(rèn)shell為/nologin,也就是不允許登錄的。
?
/etc/shadow
我們先來看一下這個文件:
[root@localhost ~]# cat /etc/shadow root:$6$0CIKvP15hvSin5V5$oc.amWyL11jfB1pYxYiaGNfyN8HVq2s0iaVW0KiUd5RrS2SwKmWhTTqUzJ5uNnHi7.pc3OEqO/BMeLIFPOnpJ.::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7::: adm:*:17110:0:99999:7:::lp:*:17110:0:99999:7:::sync:*:17110:0:99999:7::: .....(省略) tcpdump:!!:17348:::::: claire:$6$ZZ5ZKnr4$UI7/gW2z6rtmZygBpH81V8MawY7oLgPTaU65w.zmNyi8Bd9rWVgLQPuZtB1.Q6p6T5KOcd9wnCEJapqcAKCLj.:17357:0:99999:7:::
會看到一行被冒號分為了9個部分,我們還是以claire為例子來說明:
1.claire,用戶名
2.用戶被加密后的密碼,第一個$和$之間的為加密等級,”6″為sha512(前面說過咯),第二個$和第三個$之間為隨機(jī)數(shù)(也被稱為加salt),之后為加密后的密文,當(dāng)密碼前有”!”或者”*”代表這個用戶被禁用了
3.用戶最近修改密碼的日期,用天數(shù)表示,表示從1970年1月1日到被修改那天之間的天數(shù),可以通過以下方法將天數(shù)換算成具體的日期:
[root@localhost ~]# date -u -d "1970-01-01 UTC $((17357 * 86400 )) seconds"Mon Jul 10 00:00:00 UTC 2017
4.密碼最短使用天數(shù),”0″表示可以隨時修改密碼,如果為”3″,那么表示用戶只有在最近一次修改的三天之后才能修改改密碼
5.密碼最長使用天數(shù),”99999″就不需要修改了,對你來說也就是永久的了
6.密碼告警時間,也就是你密碼最長使用天數(shù)的,前多少天提醒你,如果的你的密碼最長使用天數(shù)為100天,密碼告警時間為7,那么在 ? ? ?94天的時候,就會提示用戶改修改密碼了
7.密碼過期的恕限時間,如果這里的值為2,當(dāng)你在告警時間結(jié)束之后,仍然沒有修改密碼,那么在2天內(nèi),你還可以使用這個密碼登錄
8.賬號失效時間,也是基于1970年1月1日的天數(shù),當(dāng)用戶到了這個時間的時候,就無法在使用了,這一項(xiàng)一般會被使用在收費(fèi)服務(wù)的系統(tǒng)中,當(dāng)超過這個時間的時候,賬戶就不能使用了。
9.保留位,未來有可能會使用
?
/etc/group
我們還是先看一下這配置文件下有什么
[root@localhost ~]# cat /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: ......(省略) slocate:x:21: tcpdump:x:72: claire:x:1001:
每一行被冒號從左至右分割成了4個部分,還是以最后一行來說明:
1.claire:默認(rèn)創(chuàng)建一個用戶,就會自己創(chuàng)建一個與其同名的組
2.x,組密碼占位符,密碼也不是放在這里的哦
3.1001,GID,組ID
4.是一個以逗號分隔的用戶列表,以此組為附加組的用戶的用戶列表
?
/etc/gshadow
先打開文件看一下:
[root@localhost ~]# cat /etc/gshadow root::: bin::: daemon::: sys::: ...... avahi:!:: slocate:!:: tcpdump:!:: claire:!::
每一行被冒號從左至右分割成了4個部分,還是以最后一行來說明:
1.claire:默認(rèn)創(chuàng)建一個用戶,就會自己創(chuàng)建一個與其同名的組
2.如果為”!”或者是”*”,那么其他用戶就不需要密碼就可以加入到這個組中,如果組是設(shè)置的密碼,則為一串密文,如果是空,則表示只有該組的成員可以獲得組的權(quán)限
3.用戶組管理員,是一個以逗號分隔的用戶列表,用戶組管理員可以修改密碼和組成員,也很組里其他成員擁有相同的權(quán)限
4.成員,是一個以逗號分隔的用戶列表,以此組為附加組的用戶的用戶列表,應(yīng)該要和/etc/group下的用戶列表一樣
?
用戶和組管理常用命令
?作為一個管理員,我們可以增刪用戶、增刪組、修改用戶和組屬性,下面我們就來介紹常用的用戶和組管理命令。
?groupadd
NAME:創(chuàng)建一個新的組
SYNOPSIS:groupadd [options] group
常用選項(xiàng):
-g GID:指定GID,默認(rèn)是上一個組的GID+1
-r:創(chuàng)建系統(tǒng)組
舉例如下:
[root@localhost ~]# groupadd my_group [root@localhost ~]# tail -2 /etc/group claire:x:1001: my_group:x:1002: #默認(rèn)上一個組號加一,注意必須是同類型的組,這里都位登錄用戶組 [root@localhost ~]# groupadd -g 1500 cloud #指定GID為1500 [root@localhost ~]# tail -2 /etc/group my_group:x:1002: cloud:x:1500: #GID被指定為1500 [root@localhost ~]# groupadd -r my_sys #創(chuàng)建系統(tǒng)用戶組 my_sys [root@localhost ~]# tail -2 /etc/group cloud:x:1500: my_sys:x:983: #系統(tǒng)用戶組的GID為983
?
?groupmod
NAME:修改組的屬性
SYNOPSIS:groupmod [options] GROUP
常用選項(xiàng):
-g GID:修改GID
-n new_name:修改組名
舉例如下:
[root@localhost ~]# tail -3 /etc/group my_group:x:1002: cloud:x:1500: my_sys:x:983: [root@localhost ~]# groupmod -g 1003 cloud #修改GID為1003 [root@localhost ~]# tail -3 /etc/group my_group:x:1002: cloud:x:1003: my_sys:x:983: [root@localhost ~]# groupmod -n my_system my_sys #將組名my_sys修改為my_system [root@localhost ~]# tail -3 /etc/group my_group:x:1002: cloud:x:1003: my_system:x:983:
?
groupdel
NAME:刪除一個組
SYNOPSIS:groupdel [options] GROUP
舉例如下:
[root@localhost ~]# tail -3 /etc/group my_group:x:1002: cloud:x:1003: my_system:x:983: [root@localhost ~]# groupdel my_system #刪除系統(tǒng)組my_system [root@localhost ~]# tail -3 /etc/group claire:x:1001: my_group:x:1002: cloud:x:1003:
?
useradd
NAME:創(chuàng)建一個用戶或者更新用戶的信息
SYNOPSIS:useradd [options] LOGIN
? ? ? ? ? ? ? ? ? ? ? ?useradd -D
? ? ? ? ? ? ? ? ? ? ? ?useradd -D [options]
常用選項(xiàng):
-u:–uid UID:指定UID
-g:–gid GROUP:指定基本組,此組得事先存在
-G:–groups GROUP1[,GROUP2,…[,GROUPN]]]:指定用戶所屬的附加組,多個組之間用逗號分隔
-c:–comment COMMENT:指明注釋信息
-d:–home HOME_DIR:指定的路徑為用戶的家目錄:通過復(fù)制/etc/skel此目錄并重命名實(shí)現(xiàn),指定的家目錄路徑如果事先存在,則不? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??會為用戶復(fù)制環(huán)境配置文件
-s:–shell SHELL:指定用戶的默認(rèn)shell,可用所有的shell存放在/etc/shells下
-r:–system:創(chuàng)建系統(tǒng)用戶
舉個例子
創(chuàng)建一個組ID為1200,基本組為cloud(已存在),附加組為”my_group”,注釋信息為”my_test”,家目錄為”/home/my_home”,shell為csh,用戶名為my_test的用戶
[root@localhost ~]# useradd -u 1200 -g cloud -G my_group -c "my_test" -d /home/my_home -s /bin/csh my_test [root@localhost home]# id my_test id命令后面會講到 uid=1200(my_test) gid=1003(cloud) groups=1003(cloud),1002(my_group) [root@localhost home]# [root@localhost home]# tail -1 /etc/passwdmy_test:x:1200:1003:my_test:/home/my_home:/bin/csh [root@localhost home]# tail -3 /etc/group claire:x:1001: my_group:x:1002:my_test cloud:x:1003: [root@localhost home]# ll -a /home/my_home/total 12drwx------. 3 my_test cloud 78 Jul 10 06:23 . drwxr-xr-x. 5 root root 48 Jul 10 06:23 ..-rw-r--r--. 1 my_test cloud 18 Aug 2 2016 .bash_logout-rw-r--r--. 1 my_test cloud 193 Aug 2 2016 .bash_profile-rw-r--r--. 1 my_test cloud 231 Aug 2 2016 .bashrc drwxr-xr-x. 4 my_test cloud 39 Jul 1 07:56 .mozilla
?注意:創(chuàng)建用戶時的默認(rèn)設(shè)定配置文件為/etc/login.defs如:
PASS_MAX_DAYS 99999PASS_MIN_DAYS 0PASS_MIN_LEN 5PASS_WARN_AGE 7# # Min/max values for automatic uid selection in useradd # UID_MIN 1000UID_MAX 60000# System accounts SYS_UID_MIN 201SYS_UID_MAX 999# # Min/max values for automatic gid selection in groupadd # GID_MIN 1000GID_MAX 60000# System accounts SYS_GID_MIN 201SYS_GID_MAX 999..... CREATE_HOME yes UMASK 077ENCRYPT_METHOD SHA512
?也可使用useradd -D顯示創(chuàng)建用戶的默認(rèn)配置
[root@localhost home]# useradd -D GROUP=100HOME=/home INACTIVE=-1EXPIRE=SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
修改默認(rèn)的屬性
useradd -D?
選項(xiàng):
-b,–base-dir:家目錄
-e,–expiredate:賬號失效時間
-f,–inactive:密碼過期的恕限時間
-g,–gid:在創(chuàng)建新的用戶的時候,一般都會自動創(chuàng)建與其同命的組,當(dāng)在創(chuàng)建用戶的時候使用了-N/–no-user-group,也就是不創(chuàng)建組或者在/etc/login.defs里的USERGROUPS_ENAB變量被設(shè)置成了no,就會將默認(rèn)指定的組(默認(rèn)為組100,user)指定改用戶的組。
[root@localhost ~]# useradd -N no_group [root@localhost ~]# id no_group uid=1201(no_group) gid=100(users) groups=100(users)
?-s,–shell:用戶登錄的shell
?
?usermod
NAME:修改一個用戶的屬性
SYNOPSIS:usermod [options] LOGIN
常用選項(xiàng):
與useradd類型,這里就不在多說了
?
?userdel
NAME:刪除一個用戶和其相關(guān)的文件
SYNOPSIS:userdel [options] LOGIN
常用選項(xiàng):
-r:刪除用戶時一并刪除其家目錄,默認(rèn)不刪除
[root@localhost home]# userdel no_group [root@localhost home]# ll /home/total 0drwx------. 3 claire claire 78 Jul 10 03:35 claire drwx------. 2 frank frank 62 Jun 30 10:17 frank drwx------. 3 my_test cloud 78 Jul 10 06:23 my_home drwx------. 3 1201 users 78 Jul 10 06:49 no_group
?
passwd
NAME:修改用戶的認(rèn)證信息
SYNOPSIS:?passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S]?[–stdin] [username]
僅適用passwd,修改用戶自己的密碼,要輸入2次,輸入密碼的密碼為隱藏狀態(tài)
[root@localhost home]# passwdChanging password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully.
passwd ?USERNAME:修改指定用戶的密碼,一般只用管理員root才可以修改
常用選項(xiàng):
-l,-u:鎖定和解鎖用戶
-d:清除用戶密碼
-e DATE:賬戶失效時間,日期,也可以使用1970年1月1日到現(xiàn)在的天數(shù),試過不可用,如果兄弟試了可用,麻煩告知,可以通過設(shè)置/etc/default/useradd的EXPIRE的day數(shù),默認(rèn)不設(shè)置,當(dāng)設(shè)置為”99999″時,創(chuàng)建賬戶Never_user默認(rèn)賬戶失效時間就被設(shè)為了”99999″,也可以使用后面的命令chage,后面再說!
[root@localhost home]# cat /etc/default/useradd # useradd defaults fileGROUP=100HOME=/home INACTIVE=-1EXPIRE=99999SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [root@localhost home]# useradd Never_user [root@localhost home]# tail -1 /etc/shadow #用戶失效時間被設(shè)置為了99999 Never_user:!!:0:0:99999:7::99999:
-i DAYS:密碼過期的恕限時間
以上親測(除-e之外)均可設(shè)置,
–stdin:標(biāo)準(zhǔn)輸入,避免重復(fù)輸入2次密碼
使用方法:
[root@localhost home]# echo "Never_user" | passwd --stdin Never_user Changing password for user Never_user.passwd: all authentication tokens updated successfully. [root@localhost home]# tail -1 /etc/shadow Never_user:$6$vogq3txX$7pcR5l4sb6YMRbE9CK2gNg2ZR12tCeqdgMWb3vmhlZmcnw2hfgjozcSellI7w7QLTHoQpuik1EGFkAn.74py30:17357:0:99999:7::99999:
?
gpasswd
NAME:可以設(shè)置組密碼
SYNOPSIS:gpasswd [option] group
常用選項(xiàng):
-a USERNAME:向組中添加用戶
-d USERNAME:從組中移除用戶
比如我們將用戶”Never_user”添加到組”cloud”中
[root@localhost home]# gpasswd -a Never_user cloud Adding user Never_user to group cloud [root@localhost home]# tail -3 /etc/group my_group:x:1002:my_test cloud:x:1003:Never_user Never_user:x:1201: [root@localhost home]#
?
newgrp
NAME:臨時切換基本組
SYNOPSIS:newgrp [-] [group]
常用選項(xiàng):
-:會模擬用戶重新登錄以實(shí)現(xiàn)初始化其工作環(huán)境,返回以前的狀態(tài),是用exit退出
#我們切換到Never_user下,Never_user基本組為Never_user和cloud [Never_user@localhost ~]$ iduid=1201(Never_user) gid=1201(Never_user) groups=1201(Never_user),1003(cloud) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [Never_user@localhost ~]$ touch test.txt [Never_user@localhost ~]$ ll #我們可以看見創(chuàng)建的文件的組為Never total 0-rw-rw-r--. 1 Never_user Never_user 0 Jul 10 08:07 test.txt [Never_user@localhost ~]$ newgrp - cloud #切換為組cloud [Never_user@localhost ~]$ [Never_user@localhost ~]$ touch test1.txt #test1文件的用戶組為cloud [Never_user@localhost ~]$ ll total 0-rw-r--r--. 1 Never_user cloud 0 Jul 10 08:07 test1.txt-rw-rw-r--. 1 Never_user Never_user 0 Jul 10 08:07 test.txt
?
chage
NAME:修改用戶密碼的過期信息
SYNOPSIS:chage [options] LOGIN
常用選項(xiàng):
-d:修改最后一次修改密碼時間
-E:修改用戶失效時間
-I:修改密碼過期怒限時間
-W:修改告警天數(shù)
-m:修改密碼最小使用天數(shù)
-M:修改密碼最長使用天數(shù)
舉個例子:修改Never_user賬戶失效的時間為2017年07月30日
[root@localhost home]# chage -E 2017-07-30 Never_user [root@localhost home]# tail -1 /etc/shadow #2017年07月30日,自動轉(zhuǎn)換為了從1970年1月1日到2017年07月30日的天數(shù) Never_user:$6$vogq3txX$7pcR5l4sb6YMRbE9CK2gNg2ZR12tCeqdgMWb3vmhlZmcnw2hfgjozcSellI7w7QLTHoQpuik1EGFkAn.74py30:17357:0:99999:7::17377:
?
id
NAME:顯示真的和有效的用戶和組ID
SYNOPSIS:id [OPTION]… [USER]
常用選項(xiàng):
-u: 僅顯示有效的UID
-g: 僅顯示用戶的基本組ID
-G:僅顯示用戶所屬的所有組的ID
[root@localhost home]# id frank uid=1000(frank) gid=1000(frank) groups=1000(frank) [root@localhost home]# id -u frank1000[root@localhost home]# id -g frank1000[root@localhost home]# id -G frank1000
?
?su
NAME:切換用戶
SYNOPSIS:su [options…] [-] [user [args…]]
登錄式時切換,會通過讀取目標(biāo)用戶的配置文件來重新初始化
su – USERNAME
非登錄式時切換,不會讀取目的用戶的配置文件進(jìn)行初始化
su USERNAME
管理員可以無密碼切換至其他任何用戶
-c ?‘COMMADN’:僅以指定用戶的身份運(yùn)行此處制定的命令
[root@localhost home]# su -c "whoami" Never_user Never_user
?
權(quán)限的定義
?我們先任意看一下目錄下的文件:
[root@localhost ~]# ll /etc/default/total 12-rw-r--r--. 1 root root 254 Jun 30 10:19 grub-rw-r--r--. 1 root root 1756 Nov 4 2016 nss-rw-r--r--. 1 root root 124 Jul 10 07:20 useradd
每一行的最左位為文件的類型,-代表普通文件,那么接下來的9為又是什么呢?
左三位:定義了owner(屬主)的權(quán)限,也就是user的
中三位:定義了group(屬組)的權(quán)限
右三位:定義了others(其他人)的權(quán)限
?
進(jìn)程以其發(fā)起者的身份運(yùn)行,進(jìn)程對文件的訪問權(quán)限,取決于發(fā)起此進(jìn)程的用戶的權(quán)限;當(dāng)使用一個進(jìn)程對一個文件進(jìn)行操作的時候,會對比進(jìn)行的發(fā)起者是不是和文件的屬主一致,如果一致,則應(yīng)用屬主的權(quán)限,如果不一致,則對比進(jìn)程的發(fā)起者是不是屬于文件的屬組,如果屬于則執(zhí)行屬組的權(quán)限,如果都不是,則只能應(yīng)用其他人的權(quán)限。用戶也只能修改那些屬主是自己的那些文件。
那么rwx分別代表什么呢?
r:readable,可讀
w:writable,可寫
x:excutable,可執(zhí)行
rwx對文件和目錄的操作是不同的:
對文件:
r:可獲取該文件的數(shù)據(jù)
w:可修改文件的數(shù)據(jù)
x:該文件可以執(zhí)行
對目錄:
r:可以使用ls命令回去其下的所有文件的列表,如果只有r,則只能看到目錄下的文件名列表
w:可修改此文件目錄下的文件列表,就是可以刪除和創(chuàng)建文件,前提必須有x的權(quán)限,如果只有w,不能干任何事
x:且可使用ls -l來獲取所有文件的詳細(xì)屬性信息,前提必須是有r的權(quán)限,如果只有x,只能cd到目錄下
?
權(quán)限與二進(jìn)制和八進(jìn)制的對應(yīng)關(guān)系表
?
?
?權(quán)限的管理命令
?chmod
NAME:change file mode bits,修改文件的權(quán)限
SYNOPSYS:
首先我們來了解一下,在命令中使用以下字母代表相應(yīng)用戶類型
u:屬主
g:屬組
o:其他人
a:所有
(1)可以直接將rwx直接賦值給相應(yīng)的用戶類型,比如:u=rwx,g=x,o= ,空代表該位沒有權(quán)限
舉個例子:
[root@localhost ~]# cd /tmp/read/[root@localhost read]# ll total 4-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt [root@localhost read]# chmod u=rwx,g=rw,o= /tmp/read/read.txt [root@localhost read]# ll total 4-rwxrw----. 1 root root 4 Jul 10 09:49 read.txt
(2)直接操作一類用戶的一個權(quán)限位
[root@localhost read]# ll total 4-rwxrw----. 1 root root 4 Jul 10 09:49 read.txt [root@localhost read]# chmod u-x /tmp/read/read.txt [root@localhost read]# ll total 4-rw-rw----. 1 root root 4 Jul 10 09:49 read.txt
2.chmod [OPTION]… OCTAL-MODE FILE…
直接指定八進(jìn)制
舉個例子:
[root@localhost read]# chmod 777 /tmp/read/read.txt [root@localhost read]# ll total 4-rwxrwxrwx. 1 root root 4 Jul 10 09:49 read.txt
3.chmod [OPTION]… –reference=RFILE FILE…
參考其他文件的權(quán)限
[root@localhost read]# chmod --reference=/etc/passwd /tmp/read/read.txt [root@localhost read]# ll total 4-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt
常用選項(xiàng):
-R:–recursive:遞歸修改
?
?chown
只有管理員可以修改文件的屬主和屬組
NAME:修改文件的屬主和屬組
SYNOPSIS:
舉個例子:
[root@localhost read]# ll total 4-rw-r--r--. 1 root root 4 Jul 10 09:49 read.txt [root@localhost read]# chown frank:frank ./read.txt [root@localhost read]# ll total 4-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt
常用選項(xiàng):
-R:如果修改目錄,也想遞歸修改下面的文件,則是用該參數(shù)
?
chgrp
[root@localhost read]# umask0022
對于新建文件的權(quán)限為666-umask=644=rw-r–r–
[root@localhost read]# touch test.txt [root@localhost read]# ll total 4-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt drwxr-xr-x. 2 root root 6 Jul 10 10:36 test-rw-r--r--. 1 root root 0 Jul 10 10:37 test.txt
對于新建目錄的權(quán)限為777-umask=755=rwxr-xr-x
[root@localhost read]# mkdir ./test [root@localhost read]# ll total 4-rw-r--r--. 1 frank frank 4 Jul 10 09:49 read.txt drwxr-xr-x. 2 root root 6 Jul 10 10:36 test
可以使用umask MASK來設(shè)置umask,當(dāng)然只對當(dāng)前Shell進(jìn)程有效
?
補(bǔ)充命令:
install
NAME:復(fù)制文件并設(shè)置屬性,也可以創(chuàng)建目錄,不能復(fù)制目錄和遞歸復(fù)制
SYNOPSYS:
和cp的用法類似,這里不再敖述,新的用法是install -d 可以創(chuàng)建目錄
常用選項(xiàng):
-m:設(shè)置目標(biāo)文件的屬性,默認(rèn)屬性為755
-o:設(shè)置目標(biāo)文件的屬主
-g:設(shè)置目標(biāo)文件的屬組
[root@localhost read]# install -o frank -g frank /etc/fstab /tmp/[root@localhost read]# ll /tmp/total 48drwxr-xr-x. 2 root root 6 Jul 7 02:44 07070244drwxr-xr-x. 2 root root 6 Jul 7 02:45 07070245drwxr-xr-x. 2 root root 6 Jul 7 02:53 07070253drwxr-xr-x. 2 root root 6 Jul 7 01:18 a_c drwxr-xr-x. 2 root root 6 Jul 7 01:18 a_d drwxr-xr-x. 2 root root 6 Jul 7 01:18 b_c drwxr-xr-x. 2 root root 6 Jul 7 01:18 b_d drwxr-xr-x. 2 root root 279 Jul 9 00:57 conf.d-rwxr-xr-x. 1 frank frank 5 Jul 10 10:44 fstab-rw-r--r--. 1 root root 126 Jul 9 01:22 fstab1.out
?
mktemp
NAME:創(chuàng)建臨時的文件或者目錄文件,會直接返回文件名稱
SYNOPSIS:?mktemp [OPTION]… [TEMPLATE]
TEMPLATE為:name.XXXX ?name可以自定義,XXXX必須為大寫的X且最少三位
[root@localhost tmp]# mktemp case.XXXcase.rMB [root@localhost tmp]# mktemp case.XXXXXcase.HeqBH [root@localhost tmp]# mktemp case.XXXXXcase.MatKC
常用選項(xiàng):
-d:創(chuàng)建臨時目錄
[root@localhost tmp]# mktemp -d case.XXXXXcase.TGRtu
?那今天就寫到這里了,如果有誤之處,還望各位大佬多多指教。
?