站長資訊網
最全最豐富的資訊網站

linux 文件與用戶管理

1、Linux上的文件管理類命令

(1)ls 顯示文件

ls [OPTION]… [FILE]…

-a 顯示所有文件

-A:顯示除.和..之外的所有文件

-l:顯示文件的詳細屬性信息 ,也可以用ll來表示

-h:對文件大小進行單位換算,可能影響精度

-d:查看目錄本身而非其內部的文件

–S: 按從大到小排序

-r:逆序顯示文件

-R:遞歸顯示文件

-X 按類別顯示文件

示例:ll -ah /–詳細顯示根目錄下的所有文件(包括隱藏文件)

ll -dh /etc–詳細顯示/etc目錄本身

ll -hv /–倒序顯示/目錄下所有文件(包括隱藏文件)

ls -R /etc –遞歸顯示/etc下所有文件

l. 只顯示隱藏文件

ls -d */ 只顯示當前目錄所有子目錄

ls */ 顯示當前文件目錄及目錄下的文件

(2)mkdir:創建目錄

mkdir [OPTION]… DIRECTORY…

-p:自動按需創建父目錄

-m:創建目錄時給定權限

示例:mkdir -p /data/A/B –在/data目錄下遞歸創建date/A/B三個目錄

(3) rmdir:刪除目錄只能刪除空目錄

rmdir [OPTION]… DIRECTORY…

-p:刪除目錄后如果其父目錄為空,則一并刪除

示例:rmdir -p /data/test/A –刪除A目錄后,test目錄為空,一并刪除

(4)cd:切換目錄

示例:cd ..:切換到上級目錄

cd ~:切換回自己的家目錄

cd -:在上一次目錄與當前目錄直接來回切換

(5)pwd:顯示當前目錄

(6)cp:復制

單源復制:cp [OPTION]… [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)

多源復制:cp [OPTION]… SOURCE… DIRECTORY(DEST必須為directory)

-i:交互式復制,即覆蓋前提醒用戶確認(默認)

-a:保留原文件屬性的前提下復制文件,支持目錄復制,備份常用選項

-f:強制覆蓋目標文件

-r,-R:遞歸復制目錄

–backup=numbered 選項會創建一個在文件名末尾用數字標記(~)的備份文件

-u 只覆蓋最新文件

示例:cp -f /data/[1-3].txt /data/test test必須為目錄,把三個文件一起復制到test中

cp -a /data /practice 把data目錄及目錄下的內容一起復制到practice中

(7)mv:剪切

單源復制:mv [OPTION]… [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)

多源復制:mv [OPTION]… SOURCE… DIRECTORY(DEST必須為directory)

-i:交互式復制,即覆蓋前提醒用戶確認

-f:強制覆蓋目標文件

-u :若目標文件已經存在,且 source 比較新,才會更新(update)

-t : 即指定mv的目標目錄,該選項適用于移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在后。

示例:mv -i /data/[1-3].txt /practice 把/data目錄下三個txt文件剪切到/practice下

alias rm='mv -t /data' 把rm 替代為mv 把要刪除的文件移動到/data 目錄下

(8)rm:刪除

rm [OPTION]… FILE…

-i:交互式復制,即覆蓋前提醒用戶確認

-f:強制覆蓋目標文件

-r,-R:遞歸處理,將制定目錄下的所有文件包括目錄一并刪除

示例:rm -rf /practice 遞歸刪除/practice目錄

(9)cat:正向查看文本內容

cat [OPTION]… [FILE]…

-n:給顯示的文本行編號

-E:顯示行結束符號$

示例:cat -n /etc/fstab 查看/etc/fatab內容并顯示行號

(10)tac:倒敘查看文本內容

tac [OPTION]… [FILE]…

示例:tac /etc/passwd 倒敘查看文本內容

(11)head:顯示文本內容,默認顯示頭10行

head [OPTION]… [FILE]…

-n #:顯示文本頭#行內容

示例:head -5 /etc/passwd 顯示/etc/passwd文件頭5行內容

(12)tail:顯示文本內容,默認顯示后10行

tail [OPTION]… [FILE]…

-n #:顯示文本后#行內容

-f:查看文件尾部內容結束后不退出,跟隨顯示新增的行

示例:tail -8 /etc/passwd 顯示/etc/passwd文件后8行內容

(13)more:分屏顯示文本內容,每次顯示一屏顯示完停止

more [options] file […]

Space鍵:顯示文本下一屏內容

Enter鍵:只顯示文本下一行內容

b鍵:顯示文本上一屏內容

q鍵:退出

(14)less:分屏顯示文本內容,不主動退出

less [options] file […]

Space鍵:顯示文本下一屏內容

Enter鍵:只顯示文本下一行內容

b鍵:顯示文本上一屏內容

q鍵:退出

(15) ln 鏈接文件

ln [OPTION]… [-T] TARGET LINK_NAME (1st form)

ln [OPTION]… TARGET (2nd form)

ln [OPTION]… TARGET… DIRECTORY (3rd form)

ln [OPTION]… -t DIRECTORY TARGET… (4th form)

-b  刪除,覆蓋以前建立的鏈接

-d  創建指向目錄的硬鏈接(只適用于超級用戶)

-f  強制執行,操作前不詢問

-i  交互模式,文件存在則提示用戶是否覆蓋

-n  把符號鏈接視為一般目錄

-s  軟鏈接(符號鏈接)

-v  顯示詳細的處理過程

示例:ln -s a.txt a 為a.txt創建軟鏈接

ln a.txt a 為a.txt創建硬鏈接

1)軟連接和Windows系統中的快捷方式有點類似

2)硬鏈接,相當于多了一個文件名指向同一塊內存空間,目錄無法創建硬鏈接,不可以跨文件系統創建

(16) file 檢查文件的類型

file [options] …

-f filelist 列出文件filelist中文件名的文件類型 (把需要判斷的文件名寫入一個文件中批量判斷)

-F 使用指定分隔符號替換輸出文件名后默認的”:”分隔符(輸出結果修改)

2、使用命令行展開功能,創建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b

執行命令mkdir -pv /tmp/a{1/{a,b},2}

mkdir: created directory ‘/tmp/a1’

mkdir: created directory ‘/tmp/a1/a’

mkdir: created directory ‘/tmp/a1/b’

mkdir: created directory ‘/tmp/a2’

執行命令tree /tmp/

/tmp/

├── a1

│ ├── a

│ └── b

└── a2

在/tmp目錄下創建目錄:x_y, x_z, q_y, q_z

執行命令mkdir -pv {x,q}_{y,z}

mkdir: created directory ‘x_y’

mkdir: created directory ‘x_z’

mkdir: created directory ‘q_y’

mkdir: created directory ‘q_z’

執行tree查看效果

.

├── q_y

├── q_z

├── x_y

└── x_z

3、文件的元數據信息包括

Size 文件大小(字節)

Blocks 文件使用的數據塊總數

IO Block 數據塊的大小

regular file:文件類型(常規文件)

Device 設備編號

Inode 文件所在的Inode

Links 硬鏈接次數

Access 權限 Uid 屬主id/用戶 Gid 屬組id/組名

Access Time:簡寫為atime,表示文件的訪問時間。當文件內容被訪問時,更新這個時間

Modify Time:簡寫為mtime,表示文件內容的修改時間,當文件的數據內容被修改時,更新這個時間。

Change Time:簡寫為ctime,表示文件的狀態時間,當文件的狀態被修改時,更新這個時間,例如文件的鏈接數,大小,權限,Blocks數。

查看文件的元數據信息用stat命令

[root@centos7 ~]#stat hello.sh

File: ‘hello.sh’

Size: 32 Blocks: 8 IO Block: 4096 regular file

Device: 802h/2050d Inode: 100663387 Links: 1

Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2018-10-31 20:37:17.757059440 +0800

Modify: 2018-10-28 21:25:08.485016670 +0800

Change: 2018-10-28 21:26:26.959023084 +0800

Birth: –

修改文件的時間戳信息

touch [OPTION]…FILE…

-a:only atime

-m:only mtime

-t:使用指定的日期時間,而非現在的時間;[[CC]YY]MMDDhhmm[.ss]

4、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

執行命令 touch /tmp/tfile-`date "+%Y-%m-%d-%H-%M-%S"`

ll /tmp/

total 0

-rw-r–r–. 1 root root 0 Nov 22 19:36 tfile-2018-11-22-19-36-45

5、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

執行命令mkdir /tmp/mytest1;cp -a /etc/p*[^0-9] /tmp/mytest1

結果如下

ls /tmp/mytest1/

pam.d pbm2ppa.conf plymouth popt.d prelink.conf.d profile.d purple

passwd pinforc pm postfix printcap protocols python

passwd- pki pnm2ppa.conf ppp profile pulse

6、創建用戶tom,指定UID為5001,指定家目錄為/tmp/tom, 指定shell為/bin/zsh, 指定基本組為tom,附加組為jack

執行命令groupadd jack;useradd -u 5001 -d /tmp/tom -s /bin/zsh -U -G jack tom

結果如下tom:x:5001:5001::/tmp/tom:/bin/zsh

uid=5001(tom) gid=5001(tom) groups=5001(tom),1003(jack)

ll -a /tmp/tom

total 12

drwx——. 3 tom tom 78 Nov 22 19:55 .

drwxrwxrwt. 10 root root 217 Nov 22 19:55 ..

-rw-r–r–. 1 tom tom 18 Aug 3 2017 .bash_logout

-rw-r–r–. 1 tom tom 193 Aug 3 2017 .bash_profile

-rw-r–r–. 1 tom tom 231 Aug 3 2017 .bashrc

drwxr-xr-x. 4 tom tom 39 Oct 17 20:27 .mozilla

7、常用的用戶以及文件管理命令

(1)查看當前用戶:whoami 和who 或者 who am i

(2)useradd :添加用戶命令

useradd [options] LOGIN

-u UID -o 配合-u 選項,不檢查UID的唯一性

-g GID:指明用戶所屬基本組,可為組名,也可以GID

-c "COMMENT":用戶的注釋信息

-d HOME_DIR: 以指定的路徑(不存在)為家目錄

-s SHELL: 指明用戶的默認shell程序 可用列表在/etc/shells文件中

-G GROUP1[,GROUP2,…]:為用戶指明附加組,組須事先存在 -N 不創建私用組做主組,使用users組做主組

-r: 創建系統用戶 CentOS 6: ID<500,CentOS 7: ID<1000

-m 創建家目錄,用于系統用戶

-M 不創建家目錄,用于非系統用戶

示例:useradd -s /bin/sh -g group –G adm,root abc 增加用戶abc,并指定它的shell ,主組和附加組

useadd 默認配置文件/etc/default/useradd

/etc/login.defs這個文件就是用來設置用戶創建時默認屬性的文件

(3)usermod:修改用戶信息命令

usermod [options] LOGIN

-u UID: 新UID

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

-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: 設定非活動期限

示例:usermod -s /bin/ksh -d /home/z –g developer sam 修改sam用戶的shell和目錄以及主組

(4)userdel 刪除用戶

userdel [OPTION]… login

-r: 刪除用戶家目錄

userdel -r sam 刪除sam用戶并清空相關目錄

(5)su 切換用戶

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

su – 完全切換

(6)passwd 更改密碼

passwd [OPTIONS] UserName

-l:鎖定指定用戶

-u:解鎖指定用戶

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

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

-x maxdays:最大使用期限

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

-i inactivedays:非活動期限

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

示例:echo magedu | passwd –stdin varnishs 非交互式更改密碼

(7)chage 修改用戶密碼策略

chage [OPTION]… LOGIN

-d LAST_DAY

-E –expiredate EXPIRE_DATE

-I –inactive INACTIVE

-m –mindays MIN_DAYS

-M –maxdays MAX_DAYS

-W –warndays WARN_DAYS

–l 顯示密碼策略

示例: chage -d 0 tom 下一次登錄強制重設密碼

(8)groupadd 增加組

groupadd [OPTION]… group_name

-g GID: 指明GID號;

-r: 創建系統組

(9)groupmod 修改組信息

groupmod [OPTION]… group

-n group_name 新名字

-g 修改gid

示例:groupmod -n linux linux2

(10)groupdel 刪除組

groupdel GROUP

(11)chown 修改文件所屬組

chown [OPTION]… [OWNER][:[GROUP]] FILE…

-R: 遞歸

示例:chown -R myuser:mygroup /test

chown myuser test

chown :mygroup test 修改test所屬組

(12)chmod 修改文件權限 (rwxX)(421)

chmod [OPTION]… OCTAL-MODE FILE…

-R: 遞歸修改權限

對于文件來說rwx分別是可讀可寫可執行權限

對于目錄目錄r權限可以看到文件列表~ w可以刪文件 x可以進入目錄和文件具體屬性 無法操作該目錄 目錄基本權限

+X:只給目錄x權限,不給文件x權限,或者給有執行權限的文件 加執行權限 如-rwxrw-rw- 變成 -rwxrwxrwx

root不受rw限制受x權限限制

示例:chmod u+wx,g-r,o=rx file

chmod -R g+rwX /testdir 給目錄的所屬組遞歸增加rwx權限,該目錄下文件所屬組只增加rw權限

chmod 600 file

(13)SUID, SGID, Sticky 特殊權限

suid u+s 4777 作用于二進制程序,權限與程序所有者有關

guid g+s 2777 作用于二進制程序,權限與程序所屬組有關;作用于文件夾中,文件夾里新建文件繼承目錄所屬組

stick o+t 1777 作用目錄,此目錄的文件只能被所有者刪除

chattr +i +a(只能追加) 鎖定文件 +A 不能修改atime(訪問時間) lsattr file查看特殊權限

(14)umask 系統默認生成權限

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

新建DIR權限: 777-umask

(15)ACL高級權限

centos6版本需要手動加acl權限功能

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt/test

ACL生效順序:所有者,自定義用戶,自定義組,其他人

應用ACL后 文件本身組權限變成acl中的mask,而非傳統的組權限

常用命令

getfacl: 獲取文件或目錄的ACL設置信息

getfacl [-bkndRLP] { -m|-M|-x|-X … } file …

-a , –access:顯示文件或目錄的訪問控制列表

-d , –default:顯示文件或目錄的默認(缺省)的訪問控制列表

-R , –recursive:操作遞歸到子目錄

setfacl: 設置文件或目錄的ACL設置信息

setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

-m, –modify=acl:修改文件或目錄的擴展ACL設置信息

-x, –remove=acl:從文件或目錄刪除一個擴展的ACL設置信息

-b, –remove-all:刪除所有的擴展的ACL設置信息

-k, –remove-default:刪除默認的acl設置信息

-n, –no-mask:不要重新計算有效權限。setfacl默認會重新計算ACL mask,除非mask被明確的制定

-d, –default:設置默認的ACL設置信息(只對目錄有效)

-R, –recursive:操作遞歸到所有子目錄和 文件

示例:getfacl file

setfacl -m u:wang:rwx txt

setfacl -Rm g:sales:rwX directory

setfacl -m d:u:wang:rx /data 設定該目錄的默認權限,只對目錄有效 或者setfacl -dmu:wang:rx /data

setfacl -x u:wang file 移除設置好的wang賬號對該文件權限

備份和恢復ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要 加上-p 參數。

但是tar等常見的備份工具是不會保留目錄 和文件的ACL信息

getfacl -R /tmp/dir1 > acl.txt 把目錄的acl保存在acl.txt文件中

setfacl -R -b /tmp/dir1 刪除該目錄所有acl權限

setfacl -R –set-file=acl.txt /tmp/dir1 恢復權限到目錄中

setfacl –restore acl.txt

getfacl -R /tmp/dir1 查看目錄acl權限

(16)pwck grpck 檢查/etc/passwd 和 /etc/group 文件正確性

用文件批量創建用戶密碼: newusers chpasswd

創建user文件,寫入用戶列表,格式與/etc/passwd 一致

如:

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

tomcat:x:1001:1002::/home/tomcat:/bin/bash

tom:x:5001:5001::/tmp/tom:/bin/zsh

然后newusers txt 創建這些用戶

在創建password文件,格式

用戶:密碼

tomcat:123456

tom:123456

然后cat password |chpasswd 自動添加密碼

newgrp 切換當前用戶主組

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
精品动漫一区二区无遮挡| 久久精品电影免费动漫| 国产天堂亚洲精品| 日产精品卡一卡二卡三的概述| 久久99国产精品尤物| 日韩精品国产自在久久现线拍 | 久久夜色精品国产www| 日韩精品无码免费视频| 日韩精品无码人妻一区二区三区| 精品久久久无码中字| 国产精品卡一卡二卡三| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久99热只有频精品8| 久久久这里有精品999| 久久99精品久久久久久| 一色屋精品视频在线观看| 久久精品国产WWW456C0M| 国产精品igao视频| 亚洲精品无码日韩国产不卡?V| 精品一区二区高清在线观看| 精品日韩亚洲AV无码一区二区三区| 国产乱人伦真实精品视频| 国产精品高清在线观看93| 国产精品高清在线观看93| 精品亚洲福利一区二区| 最新国产午夜精品视频不卡| 成人精品一区二区不卡视频| 国产日产欧产精品精品浪潮| 国产精品嫩草影院AV| 精品国产理论在线观看不卡| 岛国精品在线观看| 精品国产_亚洲人成在线| 国产精品免费播放| 亚洲av日韩av不卡在线观看| 日韩吃奶摸下AA片免费观看| 精品福利一区3d动漫| 亚洲av午夜精品一区二区三区| 亚洲精品和日本精品| 久久精品国产99国产精品| 中文字幕精品无码久久久久久3D日动漫| 国产日韩精品SUV|