Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3f8dade

Browse files
author
haotf
committed
linux
1 parentf0c23d0 commit3f8dade

File tree

6 files changed

+1066
-1
lines changed

6 files changed

+1066
-1
lines changed

‎source/_posts/ACL管理.md‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
---
2+
title:ACL管理
3+
date:2020-02-24 21:43:46
4+
categories:
5+
tags:
6+
---
7+
8+
##ACL(Access Control List)
9+
10+
传统的权限仅有三种身份(owner, group, others)搭配三种权限 (r,w,x)而已,并没有办法单纯的针对某一个使用者或某一个群组来设置特定的权
11+
限需求, 此时就得要使用 ACL 这个机制。
12+
13+
测试系统是否有支持 ACL:
14+
```linux
15+
// dmesg命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信息。
16+
[root@localhost ~]# dmesg | grep -i acl
17+
[ 1.138270] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
18+
[ 2.320454] SGI XFS with ACLs, security attributes, no debug enabled
19+
```
20+
21+
#####查看ACL
22+
```linux
23+
[root@localhost ~]# touch acl.test1
24+
[root@localhost ~]# ll acl.test1
25+
-rw-r--r--. 1 root root 0 May 13 06:19 acl.test2
26+
27+
[root@localhost ~]# getfacl acl.test1
28+
# file: acl.test1
29+
# owner: root
30+
# group: root
31+
user::rw-
32+
group::r--
33+
other::r--
34+
```
35+
36+
#####设置ACL
37+
```linux
38+
[root@localhost ~]# setfacl -m u:user1:rwx acl.test1
39+
[root@localhost ~]# ll acl.test1
40+
-rw-rwxr--+ 1 root root 0 May 13 06:12 acl.test1
41+
```
42+
43+
选项与参数:
44+
-m :设置后续的 acl 参数给文件使用,不可与 -x 合用;
45+
-x :删除后续的 acl 参数,不可与 -m 合用;
46+
-b :移除“所有的” ACL 设置参数;
47+
-k :移除“默认的” ACL 参数,关于所谓的“默认”参数于后续范例中介绍;
48+
-R :递回设置 acl ,亦即包括次目录都会被设置起来;
49+
-d :设置“默认 acl 参数”的意思!只对目录有效,在该目录新建的数据会引用此默认值
50+
51+
```linux
52+
[root@localhost ~]# getfacl acl.test1
53+
# file: acl.test1
54+
# owner: root
55+
# group: root
56+
user::rw-
57+
user:user1:rwx // 新增
58+
group::r--
59+
mask::rwx // 新增
60+
other::r--
61+
```
62+
63+
64+
#####移除ACL
65+
```linux
66+
[root@localhost ~]# setfacl -x u:user1 acl.test1
67+
[root@localhost ~]# getfacl acl.test1
68+
# file: acl.test1
69+
# owner: root
70+
# group: root
71+
user::rw-
72+
group::r--
73+
mask::r--
74+
other::r--
75+
```
76+
77+
78+
#####测试ACL权限
79+
```linux
80+
[root@localhost ~]# cd /home/user1/
81+
[root@localhost user1]# ll
82+
total 0
83+
[root@localhost user1]# touch acl.test
84+
[root@localhost user1]# setfacl -m u:user1:rx acl.test
85+
[root@localhost user1]# su user1
86+
[user1@localhost ~]$ ll
87+
total 4
88+
-rw-r-xr--+ 1 root root 0 May 13 07:01 acl.test
89+
90+
// 没有w权限
91+
[user1@localhost ~]$ echo 'some text' >> acl.test
92+
bash: acl.test: Permission denied
93+
94+
// 有x权限,可以删除
95+
[user1@localhost ~]$ rm -f acl.test
96+
[user1@localhost ~]$ ll
97+
total 0
98+
```
99+
100+
101+
#####有效权限:“ m:权限 ”
102+
103+
细心的朋友可能注意到设置ACL值的时候,出现了一个`mask`值;
104+
105+
意义是: 使用者或群组所设置的权限必须要存在于 mask 的权限设置范围内才会生效,此即“有效权限 (effective permission)”
106+
107+
```linux
108+
[root@localhost user1]# touch acl.mask.test
109+
[root@localhost user1]# setfacl -m u:user1:rwx acl.mask.test
110+
[root@localhost user1]# getfacl acl.mask.test
111+
# file: acl.mask.test
112+
# owner: root
113+
# group: root
114+
user::rw-
115+
user:user1:rwx
116+
group::r--
117+
mask::rwx // 默认rwx
118+
other::r--
119+
120+
[root@localhost user1]# setfacl -m m:x acl.mask.test
121+
[root@localhost user1]# getfacl acl.mask.test
122+
# file: acl.mask.test
123+
# owner: root
124+
# group: root
125+
user::rw-
126+
user:user1:rwx #effective:--x // 表示起效果的权限
127+
group::r-- #effective:---
128+
mask::--x
129+
other::r--
130+
```
131+
132+
133+
测试验证一番:
134+
```linux
135+
[root@localhost user1]# su user1
136+
[user1@localhost ~]$ ll
137+
total 4
138+
-rw---xr--+ 1 root root 0 May 13 07:34 acl.mask.test
139+
140+
[user1@localhost ~]$ echo 'other text' >> acl.mask.test
141+
bash: acl.mask.test: Permission denied
142+
143+
[user1@localhost ~]$ rm -f acl.mask.test
144+
[user1@localhost ~]$ ll
145+
total 0
146+
```
147+
148+
149+
#####使用默认权限给文件夹设置ACL
150+
151+
```linux
152+
[root@localhost user1]# setfacl -m d:u:user1:rwx acl.dir/
153+
[root@localhost user1]# getfacl acl.dir/
154+
# file: acl.dir/
155+
# owner: root
156+
# group: root
157+
user::rwx
158+
group::r-x
159+
other::r-x
160+
default:user::rwx
161+
default:user:user1:rwx
162+
default:group::r-x
163+
default:mask::rwx
164+
default:other::r-x
165+
166+
// 不能默认权限设置文件
167+
[root@localhost user1]# touch acl.txt
168+
[root@localhost user1]# setfacl -m d:u:user1:rwx acl.txt
169+
setfacl: acl.txt: Only directories can have default ACLs
170+
```

‎source/_posts/Linux文件压缩.md‎

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
---
2+
title:Linux文件压缩
3+
date:2020-02-24 21:43:47
4+
categories:
5+
tags:
6+
---
7+
文件压缩是Linux环境下非常常见的操作,我们可以通过一个常用的常见来熟悉相关命令。
8+
9+
####查看文件
10+
```linux
11+
[root@localhost ~]# ll -hS /etc/* | head -n 3
12+
// -h: 显示默认单位
13+
// -S: 按照大小排序
14+
// -n: 从头显示前3行
15+
-rw-r--r--. 1 root root 655K Jun 7 2013 /etc/services
16+
-rw-r--r--. 1 root root 25K Aug 5 2015 /etc/dnsmasq.conf
17+
-rw-r--r--. 1 root root 19K Mar 31 07:47 /etc/ld.so.cache
18+
```
19+
20+
####拷贝文件
21+
```linux
22+
[root@localhost ~]# ll /home/user1
23+
total 0
24+
-rw-rw-r--. 1 user1 user1 0 Apr 18 09:00 a
25+
[root@localhost ~]# cp -ai /etc/services /home/user1/services.cp
26+
- a 保留链接和文件属性,递归拷贝目录,相当于下面的d、p、r三个选项组合。
27+
- d 拷贝时保留链接。
28+
- f 删除已经存在目标文件而不提示。
29+
- i 覆盖目标文件前将给出确认提示,属交互式拷贝。
30+
- p 复制源文件内容后,还将把其修改时间和访问权限也复制到新文件中。
31+
- r 若源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件
32+
[root@localhost ~]# ll /home/user1/
33+
// total后面的数字是指当前目录下所有文件所占用的空间总和
34+
total 656
35+
-rw-rw-r--. 1 user1 user1 0 Apr 18 09:00 a
36+
-rw-r--r--. 1 root root 670293 Jun 7 2013 services.cp
37+
```
38+
39+
####打包与压缩
40+
首先要弄清两个概念:打包和压缩。
41+
42+
打包是指将一大堆文件或目录变成一个总的文件;
43+
44+
压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
45+
46+
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
47+
48+
######准备拷贝文件
49+
```linux
50+
// 拷贝两份文件
51+
[root@localhost user1]# cp services.cp services.cp01
52+
[root@localhost user1]# cp services.cp services.cp02
53+
```
54+
55+
######打包压缩
56+
```linux
57+
// 打包
58+
[root@localhost user1]# tar -cvf 1.tar services.cp services.cp01 services.cp02
59+
60+
// 打包与压缩
61+
[root@localhost user1]# tar -zcvf 1.tar.gz services.cp services.cp01
62+
// 打包与压缩
63+
[root@localhost user1]# tar -jcvf 1.tar.bz2 services.cp services.cp02
64+
选项与参数:
65+
-c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
66+
-t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了;
67+
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
68+
特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。
69+
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
70+
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
71+
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
72+
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!
73+
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
74+
75+
-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
76+
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
77+
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
78+
```
79+
80+
######查看打包效果
81+
```linux
82+
// 查看打包与压缩效果
83+
[root@localhost user1]# ll -hS
84+
total 84K
85+
-rw-r--r--. 1 root root 40K Apr 24 10:35 1.tar
86+
-rw-r--r--. 1 root root 10K Apr 24 10:07 services.cp
87+
-rw-r--r--. 1 root root 10K Apr 24 10:34 services.cp01
88+
-rw-r--r--. 1 root root 10K Apr 24 10:34 services.cp02
89+
-rw-r--r--. 1 root root 161 Apr 24 10:38 1.tar.gz
90+
-rw-r--r--. 1 root root 148 Apr 24 10:38 1.tar.bz2
91+
```
92+
93+
######查看打包后包含文件
94+
```linux
95+
[root@localhost user1]# tar -tvf 1.tar
96+
-rw-r--r-- root/root 10240 2019-04-24 10:07 services.cp
97+
-rw-r--r-- root/root 10240 2019-04-24 10:34 services.cp01
98+
-rw-r--r-- root/root 10240 2019-04-24 10:34 services.cp02
99+
100+
[root@localhost user1]# tar -tvf 1.tar.gz
101+
-rw-r--r-- root/root 10240 2019-04-24 10:07 services.cp
102+
-rw-r--r-- root/root 10240 2019-04-24 10:34 services.cp01
103+
104+
[root@localhost user1]# tar -tvf 1.tar.bz2
105+
-rw-r--r-- root/root 10240 2019-04-24 10:07 services.cp
106+
-rw-r--r-- root/root 10240 2019-04-24 10:34 services.cp02
107+
```
108+
109+
####解压
110+
111+
######解压打包文件
112+
```linux
113+
[root@localhost user1]# mkdir untar
114+
[root@localhost user1]# tar -xvf 1.tar -C ./untar/
115+
services.cp
116+
services.cp01
117+
services.cp02
118+
[root@localhost user1]# ll ./untar/
119+
total 36
120+
-rw-r--r--. 1 root root 10240 Apr 24 10:07 services.cp
121+
-rw-r--r--. 1 root root 10240 Apr 24 10:34 services.cp01
122+
-rw-r--r--. 1 root root 10240 Apr 24 10:34 services.cp02
123+
```
124+
125+
######解压压缩文件
126+
```linux
127+
[root@localhost user1]# mkdir untar.gz
128+
[root@localhost user1]# tar -xvf 1.tar.gz -C ./untar.gz/
129+
// 也可以加上压缩类型 -zxvf , -jxvf
130+
services.cp
131+
services.cp01
132+
[root@localhost user1]# ll ./untar.gz/
133+
total 24
134+
-rw-r--r--. 1 root root 10240 Apr 24 10:07 services.cp
135+
-rw-r--r--. 1 root root 10240 Apr 24 10:34 services.cp01
136+
```
137+
138+
######解压部分文件
139+
```linux
140+
[root@localhost user1]# mkdir untar.bz2
141+
[root@localhost user1]# tar -jxvf 1.tar.bz2 services.cp02 -C ./untar.bz2/
142+
services.cp02
143+
[root@localhost user1]# ll ./untar.bz2/
144+
total 0 ???为什么没有解压过来?
145+
```
146+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp