Linux文件管理

linux文件學習

linux文件管理系統

1.掃描硬盤的小技巧

[root@centos7 ~]#echo '- - -' > /sys/class/scsi_host/host2/scan;

或者

[root@centos7 ~]#echo '- - -' > /sys/class/scsi_host/host0/scan;

可以把他們寫在別名中./bashrc中永久保存。保存完後再用. .bashrc重新讀取一次,就可以使用了。

alias scandisk="echo '- - -' > /sys/class/scsi_host/host2/scan;echo '- - -' > /sys/class/scsi_host/host0/scan"

2.basename和dirname

[root@centos7 ~]#basename /etc/sysconfig/network
network
[root@centos7 ~]#dirname /etc/sysconfig/network
/etc/sysconfig

一種具體的用法

[root@centos7 ~]#DIR=/data/a.exe
[root@centos7 ~]#echo $DIR
/data/a.exe
[root@centos7 ~]#touch `dirname $DIR`/5.txt
[root@centos7 ~]#ll /data/
total 8
-rw-r--r--. 1 root root  0 Jul 17 20:55 2019-07-16.log
-rw-r--r--. 1 root root  0 Jul 20 16:01 5.txt
-rw-r--r--. 1 root root 13 Jul 19 14:31 test2.txt
-rw-r--r--. 1 root root  7 Jul 19 14:16 test.txt

3.硬盤快滿的時候,正確的釋放硬盤的方法。

程序在使用硬盤快要滿的時候,rm-rf不能立刻釋放空間

[root@centos7 ~]#cp /dev/zero /boot/bigfile
cp: error writing ‘/boot/bigfile’: No space left on device
cp: failed to extend ‘/boot/bigfile’: No space left on device
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321088 100485312   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9128    524672   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038268        68 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#rm -rf /boot/bigfile 
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321260 100485140   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9120    524680   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038272        64 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#ll /boot/bigfile
ls: cannot access /boot/bigfile: No such file or directory

釋放磁盤空間,刪除文件的正確姿勢。

[root@centos7 ~]#cp /dev/zero /boot/bigfile
cp: overwrite ‘/boot/bigfile’? y
cp: error writing ‘/boot/bigfile’: No space left on device
cp: failed to extend ‘/boot/bigfile’: No space left on device
[root@centos7 ~]#df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      104806400  4321100 100485300   5% /
devtmpfs          517960        0    517960   0% /dev
tmpfs             533800        0    533800   0% /dev/shm
tmpfs             533800     9128    524672   2% /run
tmpfs             533800        0    533800   0% /sys/fs/cgroup
/dev/sda5       52403200    80528  52322672   1% /data
/dev/sda1        1038336  1038268        68 100% /boot
tmpfs             106764       32    106732   1% /run/user/0
/dev/sr0        10491772 10491772         0 100% /run/media/root/CentOS 7 x86_64
[root@centos7 ~]#ll /boot/bigfile 
-rw-r--r-- 1 root root 892141568 Jul 21 13:58 /boot/bigfile
[root@centos7 ~]#> /boot/bigfile 
[root@centos7 ~]#ll /boot/bigfile 
-rw-r--r-- 1 root root 0 Jul 21 13:59 /boot/bigfile
[root@centos7 ~]#df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      1014M  164M  851M  17% /boot
[root@centos7 ~]#rm -f /boot/bigfile

4.批量修改名字,rename示例。

[root@centos7 data]#touch f{1..10}.log
[root@centos7 data]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 21 14:14 f10.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f1.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f2.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f3.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f4.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f5.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f6.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f7.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f8.log
-rw-r--r-- 1 root root 0 Jul 21 14:14 f9.log
[root@centos7 data]#rename .log .log.bak *
[root@centos7 data]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 21 14:14 f10.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f1.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f2.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f3.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f4.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f5.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f6.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f7.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f8.log.bak
-rw-r--r-- 1 root root 0 Jul 21 14:14 f9.log.bak

5.如何創建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,/testdir/dir2/x/b

[root@centos7 data]#mkdir -pv /testdir/dir2/{x/{a,b},y}
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir2’
mkdir: created directory ‘/testdir/dir2/x’
mkdir: created directory ‘/testdir/dir2/x/a’
mkdir: created directory ‘/testdir/dir2/x/b’
mkdir: created directory ‘/testdir/dir2/y’
[root@centos7 data]#tree /testdir/
/testdir/
└── dir2
    ├── x
    │   ├── a
    │   └── b
    └── y

5 directories, 0 files

6.如何創建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b

[root@centos7 data]#mkdir -pv /testdir/dir1/{x,y}/{a,b}
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir1’
mkdir: created directory ‘/testdir/dir1/x’
mkdir: created directory ‘/testdir/dir1/x/a’
mkdir: created directory ‘/testdir/dir1/x/b’
mkdir: created directory ‘/testdir/dir1/y’
mkdir: created directory ‘/testdir/dir1/y/a’
mkdir: created directory ‘/testdir/dir1/y/b’
[root@centos7 data]#tree /testdir/
/testdir/
└── dir1
    ├── x
    │   ├── a
    │   └── b
    └── y
        ├── a
        └── b

7 directories, 0 files

7.如何創建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6,
/testdir/dir5/dir7

[root@centos7 data]#mkdir -pv /testdir/dir{3,4,5/dir{6,7}}
mkdir: created directory ‘/testdir’
mkdir: created directory ‘/testdir/dir3’
mkdir: created directory ‘/testdir/dir4’
mkdir: created directory ‘/testdir/dir5’
mkdir: created directory ‘/testdir/dir5/dir6’
mkdir: created directory ‘/testdir/dir5/dir7’
[root@centos7 data]#tree /testdir/
/testdir/
├── dir3
├── dir4
└── dir5
    ├── dir6
    └── dir7

5 directories, 0 files

8.磁盤空間報錯,不一定是磁盤滿了,可能是因爲節點編號用完了。用df -i查看節點編號。

9.建很多很多文件的方法

[root@centos7 data]#touch f{1..524288}
-bash: /usr/bin/touch: Argument list too long
[root@centos7 data]#echo f{1..524288} |xargs touch

9.硬鏈接不能跨分區,跨設備,硬鏈接不能在文件夾上使用。硬鏈接的節點編號一樣。
軟連接可以跨分區,一般都是相對路徑,不寫絕對路徑。寫相對路徑要注意前後相對的路徑一致。以後一個路徑爲準。後面的可以寫絕對路徑。寫相對路徑可以防止修改文件名稱導致路徑失效。軟連接也支持文件夾。刪除軟連接時後面千萬不能加/,否則會把軟連接對應的文件刪除,軟連接沒有刪除。

硬鏈接和軟連接的區別
(1)本質:硬鏈接:同一個文件多個名字,軟連接不同的文件。
(2)硬鏈接不可以跨分區,軟連接可以。
(3)硬鏈接不支持對目錄創建,軟連接支持。
(4)相互關係:硬鏈接相互是獨立的關係,軟連接相互是依賴的關係。
(5)inode號,硬鏈接相同,軟連接不同
(6)鏈接數。硬鏈接會增長,軟連接不會
(7)路徑問題:原始文件的路徑。硬鏈接的相對路徑是當前工作目錄,軟連接是相對路徑是根據後面軟連接的路徑決定。
(8)文件類型不相同。硬鏈接是根據原來文件,軟連接是l
(9)ln ln -s

錯誤示例:

[root@centos7 data]#ln -s f1 d1/d2/f1.link
[root@centos7 data]#ll !*
ll -s f1 d1/d2/f1.link
0 lrwxrwxrwx 1 root root   2 Jul 21 17:37 d1/d2/f1.link -> f1
4 -rw-r--r-- 1 root root 595 Jul 21 17:09 f1

正確姿勢:

[root@centos7 data]#ln -s ../../f1 d1/d2/f1.link
[root@centos7 data]#ll !*
ll -s ../../f1 d1/d2/f1.link
ls: cannot access ../../f1: No such file or directory
0 lrwxrwxrwx 1 root root 8 Jul 21 17:49 d1/d2/f1.link -> ../../f1

10.查看一個文件的詳細情況。用stat 文件名。

[root@centos7 ~]#stat /etc/motd 
  File: ‘/etc/motd’
  Size: 1694        Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 135858140   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-07-20 08:44:59.905998298 +0800
Modify: 2019-07-18 19:55:06.210323146 +0800
Change: 2019-07-18 19:55:06.211323146 +0800
 Birth: -

11.查看目錄大小,一般用du -sh 文件 -h -m -k

root@centos7 ~]#du -sh /root/
6.7M    /root/
[root@centos7 ~]#du -sh /data/
51M /data/

12.影響文件顏色的文件。/etc/DIR_COLORS

[root@centos7 ~]#vim /etc/DIR_COLORS

13.查看防火牆狀態

[root@centos7 ~]#iptables -vnL

關閉防火牆7版本

[root@centos7 ~]#systemctl disable firewalld.service

關閉防火牆6版本

[root@centos6~]#chkconfig iptables off

14.通配符模式
預定義的字符類:man 7 glob

[:digit:]:任意數字,相當於0-9

[:lower:]:任意小寫字母

[:alnum:]:任意數字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:標點符號

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:圖形字符

[:xdigit:]:十六進制字符

15.刪除,防止恢復的一個小用法。

[root@centos7 data]#shred -zvn 10 f1
shred: f1: pass 1/11 (random)...
shred: f1: pass 2/11 (ffffff)...
shred: f1: pass 3/11 (777777)...
shred: f1: pass 4/11 (492492)...
shred: f1: pass 5/11 (00c00c)...
shred: f1: pass 6/11 (random)...
shred: f1: pass 7/11 (aaaaaa)...
shred: f1: pass 8/11 (000000)...
shred: f1: pass 9/11 (555555)...
shred: f1: pass 10/11 (random)...
shred: f1: pass 11/11 (000000)...

16.查看2進制文件,一半hexdump -c

[root@centos7 data]#hexdump /bin/a2p 
[root@centos7 data]#xxd /bin/a2p

17.幾種特殊文件的創建辦法。

[root@centos7 data]#mknod /data/disk b 8 0
brw-r--r--    1 root root 8, 0 Jul 22 19:01 disk
[root@centos7 data]#mknod /data/pfile p
prw-r--r-- 1 root root 0 Jul 22 19:04 pfile
[root@centos7 data]#mkfifo /data/pfile2
prw-r--r-- 1 root root 0 Jul 22 19:04 pfile2
[root@centos7 data]#nc -Ul /data/sockfile
srwxr-xr-x 1 root root 0 Jul 22 19:05 sockfile

17.只顯示/etc下的非隱藏目錄

[root@centos7 data]#ls -d /etc/*/

18.原理

cp 命令:
分配一個空閒的inode號,在inode表中生成新條目
在目錄中創建一個目錄項,將名稱與inode編號關聯
拷貝數據生成新的文件。

rm 命令:
鏈接數遞減,從而釋放的inode號可以被重用
把數據塊放在空閒列表中
刪除目錄項
數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋

如果mv命令的目標和源在相同的文件系統,作爲mv 命令
用新的文件名創建對應新的目錄項
刪除舊目錄條目對應的舊的文件名
不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動!
如果目標和源在一個不同的文件系統, mv相當於cp和rm。

19.記錄當前工作目錄和上次工作目錄和cd - 直接回到上次工作目錄。

[root@centos7 data]#cd ~zhang
[root@centos7 zhang]#pwd
/home/zhang
[root@centos7 zhang]#echo $PWD
/home/zhang
[root@centos7 zhang]#echo $OLDPWD
/data
[root@centos7 zhang]#cd -
/data
[root@centos7 data]#

20.CP 複製軟連接時不加參數會複製原文件, + -d複製軟連接

21.刪除大文件是考慮到對系統性能的影響,可以先創建一個硬鏈接後,把原文件刪除,不會真的刪除數據塊,等系統不忙的時候再刪除。。

[root@centos7 data]#ln /data/mysql/db1 /data2/db1 ;rm -f /data/mysql/db1

22.輸出結果加顏色。

[root@centos7 ~]#echo -e '\033[31;2mfaliang\033[0m'
faliang

23.把win文件轉化爲Linux文件。 tr用法

[root@centos7 data]#hexdump -c win.txt 
0000000   a  \r  \n   b  \r  \n   c  \r  \n   d  \r  \n   e            
000000d
[root@centos7 data]#hexdump -c linux.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e  \n                        
000000a
[root@centos7 data]#tr -d '\r' < win.txt >win1.txt
[root@centos7 data]#hexdump -c win1.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e                            
0000009

24.除了abc,其他的都刪除,CTRL+D執行。-c是取補集。-d是刪除。

[root@centos7 data]#tr -dc 'abc'
abc11234
abc[root@centos7 data]#

25.相當於cp命令。只有內容不變,屬性權限都可能改變。

[root@centos7 data]#cat < /etc/issue > /data/issue1.bak

26.hostn 2>&1 | tr 'a-z' 'A-Z' = hostn |& tr 'a-z' 'A-Z'2種把錯誤結果重定向的方法

[root@centos7 data]#hostn 2>&1 | tr 'a-z' 'A-Z'
BASH: HOSTN: COMMAND NOT FOUND...
SIMILAR COMMAND IS: 'HOST'
[root@centos7 data]#hostn  |& tr 'a-z' 'A-Z'
BASH: HOSTN: COMMAND NOT FOUND...
SIMILAR COMMAND IS: 'HOST'

27.發郵件mail -s 用. ENTER退出寫完。後面加上<<EOF,可以多行郵件。

[zhang@centos7 ~]$mail  -s hi root
hello 
how are you 
.
EOT

mail 查看郵件,查看完用q退出。也可以先寫好再發送cat /etc/issue | mail -s hi2 root

[root@centos7 data]#mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 zhang                 Tue Jul 23 15:55  19/623   "hi"
& 
Message  1:
From [email protected]  Tue Jul 23 15:55:28 2019
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Date: Tue, 23 Jul 2019 15:55:28 +0800
To: [email protected]
Subject: hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected] (zhang)
Status: R

hello 
how are you 

& q
Held 1 message in /var/spool/mail/root
You have mail in /var/spool/mail/root

28.tee的用法,tee既可以把輸出結果顯示出來,又可以重定向到文件裏(相當於>的作用)。 tee -a追加相當於>>,不覆蓋後面的文件。

[root@centos7 data]#hostname |tee /data/f111.log
centos7.6.localdomain
[root@centos7 data]#cat /data/f111.log 
centos7.6.localdomain

可以多次處理文件

[root@centos7 data]#hostname |tee -a /data/ff2.log |tr 'a-z' 'A-Z'
CENTOS7.6.LOCALDOMAIN

29.將/etc/issue文件中的內容轉換爲大寫後保存至/data/issue.out文件中

[root@centos7 data]#cat /etc/issue |tr 'a-z' 'A-Z' >/data/issue.out
[root@centos7 data]#cat /data/issue.out 
\S
TIME IS \T
TTY IS \L
HOSTNAME IS \N 
KERNEL \R ON AN \M

30.將當前系統登錄用戶的信息轉換爲大寫後保存至/data/who.out文件中

root@centos7 data]#who | tr 'a-z' 'A-Z' >/data/who.out
[root@centos7 data]#cat /data/who.out 
ROOT     :0           2019-07-23 08:12 (:0)
ZHANG    PTS/0        2019-07-23 15:50 (192.168.6.1)
ROOT     PTS/2        2019-07-23 12:55 (192.168.6.1)

31.一個linux用戶給root發郵件,要求郵件標題爲”help”,郵件正文如下:
Hello, I am 用戶名,The system version is here,please help me to check
it ,thanks!

操作系統版本信息

寫多行郵件時後面加上<<EOF

[zhang@centos7 ~]$mail -s help root <<EOF
> Hello,I am $USER,The system version is here,please help me to check         it ,thanks! 
> `cat /etc/centos-release`
> EOF

32.將/root/下文件列表,顯示成一行,並文件名之間用空格隔開

[root@centos7 ~]#ls /root/ |tr '\n' ' '
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg lS2s Music Pictures Public Templates Videos 

33.計算1+2+3+...+99+100的總和

[root@centos7 ~]#echo {1..100} |tr ' ' '+' |bc
5050

seq 默認的分隔符爲\n,使用-s+可以把\n換成+號

[root@centos7 ~]#seq -s+   1 100
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[root@centos7 ~]#seq -s+   1 100 |bc
5050

34.刪除Windows文本文件中的回車字符 ,即“\r”

[root@centos7 data]#cat win2.txt | tr -d '\r' >win22.txt
[root@centos7 data]#hexdump -C win2.txt 
00000000  61 0d 0a 62 0d 0a 63 0d  0a 64 0d 0a 65           |a..b..c..d..e|
0000000d
[root@centos7 data]#hexdump -c win2.txt 
0000000   a  \r  \n   b  \r  \n   c  \r  \n   d  \r  \n   e            
000000d
[root@centos7 data]#hexdump -c win22.txt 
0000000   a  \n   b  \n   c  \n   d  \n   e                            
0000009

35.處理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的數字和空格

[root@centos7 data]#echo 'xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4' | tr -dc '0-9 ' 
 1  2  3  4

36.將PATH變量每個目錄顯示在獨立的一行

[root@centos7 data]#echo $PATH |tr ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

37.將指定文件中0-9分別替代成a-j

[root@centos7 data]#cat >f3.txt
1155547520246
^C
[root@centos7 data]#cat f3.txt 
1155547520246
[root@centos7 data]#cat f3.txt | tr '0-9' 'a-j'
bbfffehfcaceg

38.將文件/etc/centos-release中每個單詞(由字母組成)顯示在獨立一行,並無空行

[root@centos7 data]#cat /etc/centos-release |tr -d '0-9.' |tr -s ' ' '\n' 
CentOS
Linux
release
(Core)

39.隨機產生密碼。

[root@centos7 ~]#openssl rand -base64 9
wDF4A/GZym5X
[root@centos7 ~]#cat /dev/urandom | tr -dc '[0-9a-zA-Z]'|head -c 12
w1aJXq9YhXXG

40.查看創建用戶組的配置信息。

[root@centos7 ~]#cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

41.放郵件的地方。

[root@centos7 ~]#ls /var/spool/mail
alice  jack  jerry  mage  root  rose  rpc  tom  tset  zhang  zhao

42.家目錄模板文件。

[root@centos7 ~]#ls /etc/skel/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@centos7 rose]#touch /etc/skel/test.txt
[root@centos7 rose]#useradd test1
[root@centos7 rose]#ls /home/test1/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  test.txt

43.用戶新建默認的文件。

[root@centos7 rose]#vim /etc/login.defs 

44.在/testdir/dir裏創建的新文件自動屬於webs組,組apps的成員如:tomcat能對這些新文件有讀寫權限,組dbs的成員如:mysql只能對新文件有讀權限,其它用戶(不屬於webs,apps,dbs)不能訪問這個文件夾.

setfacl -d 設置默認的ACL權限。 例setfacl -Rm d:g:g2:rw /testdir/dir/

[root@centos7 data]#groupadd webs
[root@centos7 data]#groupadd apps
[root@centos7 data]#groupadd dbs
[root@centos7 data]#useradd -G apps tomcat
[root@centos7 data]#useradd -G dbs mysql
[root@centos7 data]#chgrp -R webs /testdir
[root@centos7 data]#chmod g+s /testdir/dir/
[root@centos7 data]#setfacl -d -m g:apps:rw /testdir/dir/
[root@centos7 data]#setfacl -d -m g:dbs:r /testdir/dir/
[root@centos7 data]#setfacl -d -m o::0 /testdir/dir/

45.備份/testdir/dir裏所有文件的ACL權限到/root/acl.txt中,清除
/testdir/dir中所有ACL權限,最後還原ACL權限

[root@centos7 /]getfacl -R testdir/dir/ > /root/acl.txt        
複製ACL權限到/root/acl.txt
[root@centos7 /]#setfacl -b -R testdir/dir/
取消ACL權限。
[root@centos7 /]#getfacl testdir/dir/    
查看ACL權限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rwx
group::r-x
other::r-x
[root@centos7 /]#setfacl -R --set-file=/root/acl.txt /testdir/dir/      
複製ACL權限到/testdir/dir/
[root@centos7 /]#getfacl testdir/dir/       
查看ACL權限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rw-
group::r-x          #effective:r--
group:apps:rw-
group:dbs:r--
mask::rw-
other::---
default:user::rwx
default:group::r-x
default:group:apps:rw-
default:group:dbs:r--
default:mask::rwx
default:other::---
[root@centos7 /]#setfacl -m mask::rwx testdir/dir/          
修改mask最高權限
[root@centos7 /]#getfacl testdir/dir/      
查看ACL權限
# file: testdir/dir/
# owner: root
# group: webs
# flags: -s-
user::rw-
group::r-x
group:apps:rw-
group:dbs:r--
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:apps:rw-
default:group:dbs:r--
default:mask::rwx
default:other::---

46.誤刪除了用戶git的家目錄,請重建並恢復該用戶家目錄及相應的權限屬性

[root@centos7 home]#cp -aR /etc/skel /home/mage
[root@centos7 home]#chown -R mage:mage mage
[root@centos7 home]#chmod  -R 700 mage

47.複製/etc/fstab文件到/var/tmp下,設置文件所有者爲tomcat讀寫權限,所屬組爲apps組有讀寫權限,其他人無權限

[root@centos7 ~]#cp /etc/fstab /var/tmp
[root@centos7 var]#chown tomcat:apps /var/tmp
[root@centos7 var]#chmod u=rw,g=rw,o=  /var/tmp

48.創建用戶guiyuan,初始密碼爲123456,下次登錄必須修改密碼。

[root@centos7 ~]#useradd guiyuan;echo 123456 | passwd --stdin guiyuan ;passwd -e guiyuan
useradd: user 'guiyuan' already exists
Changing password for user guiyuan.
passwd: all authentication tokens updated successfully.
Expiring password for user guiyuan.
passwd: Success

49.修改用戶名,組名,家目錄。直接繼承遺產。

[root@centos7 data]#usermod -l magedu mage
[root@centos7 data]#groupmod -n magedu mage
[root@centos7 data]#mv /home/mage /home/magedu

50.

修改組的2種用法
[root@centos7 data]#chown :zhang f2
[root@centos7 data]#chgrp  zhang f1

2種把用戶添加在組中的用法
[root@centos7 data]#gpasswd -a xiongshao zhang
Adding user xiongshao to group zhang

[root@centos7 data]#groupmems -a mage -g zhang
[root@centos7 data]#id mage
uid=1002(mage) gid=1002(mage) groups=1002(mage),1000(zhang),1016(renyue)

查看當前組裏面的用戶
[root@centos7 data]#groupmems -l 
gentoo  xiongshao 

查看某個用戶屬於那幾個組
[root@centos7 data]#groups zhang

查看組裏面有那幾個用戶
[root@centos7 data]#groupmems -l -g zhang
mage  xiongshao  root 

[root@centos7 data]#getent group root
root:x:0:gentoo,xiongshao

臨時切換主組,創建的用戶的組就爲切換的。
[root@centos7 data]#newgrp zhang

下次登錄強制修改密碼
passwd -e tom  ===chage -d 0 tom

批量修改密碼,密碼格式爲  user1:123456
[root@centos7 data]#cat pass.txt | chpasswd
[root@centos7 data]#echo jack:123456 |chpasswd

chattr +i 不能刪除,改名,更改
chattr +a 只能追加內容
lsattr 顯示特定屬性

批量創建用戶
[root@centos7 data]#newusers users.txt
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章