Skip to content

Commit c1e409d

Browse files
committed
perfect
1 parent a6a1352 commit c1e409d

File tree

2 files changed

+131
-2
lines changed

2 files changed

+131
-2
lines changed

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
- [exec](#exec)
6767
- [.](#)
6868
- [exit](#exit)
69+
- [十. 参考资料](#十-参考资料)
6970

7071
<!-- /TOC -->
7172

@@ -571,8 +572,17 @@ export可以把bash的变量向下带入子bash(即子bash中可以使用父bash
571572

572573
退出Shell程序,在exit之后可有选择地指定一个数位作为返回状态。
573574

574-
[1]:http://omgzui.pub/linux
575+
## 十. 参考资料
576+
577+
- [Linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)][6]
578+
- [bash-guide][7]
579+
- [ssr.sh][8]
580+
581+
[1]:./linux-user-group-file.sh
575582
[2]:./dir/array.sh
576583
[3]:./dir/function.sh
577584
[4]:./dir/operation.sh
578-
[5]:./dir/string.sh
585+
[5]:./dir/string.sh
586+
[6]:http://www.cnblogs.com/skywang12345/archive/2013/05/30/3106570.html
587+
[7]:https://github.com/Idnan/bash-guide
588+
[8]:https://doub.bid/ss-jc42/

linux-user-group-file.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# linux 中用户、组、文件
2+
3+
前言:在linux中一切都是文件
4+
5+
由于修改文本文件如此简单,Linux系统本身肯定要加以规范。这就引出了用户(组)和权限这2个概念。
6+
7+
> 由于一切皆为文件。所以Linux 引入了2个文件来管理用户(组), /etc/passwd存放用户,/etc/group存放组, 然后在文件系统中的每个文件的文件头里面添加了用户和文件之间的关系信息。
8+
9+
```sh
10+
用户和文件的关系只有2种, 拥有和不拥有。
11+
组和文件的关系只有2种,拥有和不拥有
12+
用户和组的关系只有2种, 属于和不属于
13+
```
14+
15+
将这三种关系叠加,用户和文件的最终关系可以归纳为3类
16+
17+
```sh
18+
1,用户拥有该文件
19+
2,用户属于某个组, 某个组拥有该文件(即用户通过属于某组来拥有该文件)
20+
3,用户不拥有该文件
21+
```
22+
23+
下面要说明一下权限。
24+
25+
> 权限一共有三种读4(缩写为r),写2(缩写为w),执行1(缩写为x)
26+
27+
读(缩写为r):查看
28+
写(缩写为w):修改
29+
执行(缩写为x):运行
30+
31+
```sh
32+
- rw- rw- r-- 1 root root 451 10月 31 2016 default.conf
33+
- 文件类型,我们这里不需要关注
34+
rw- 用户(缩写为u)的权限
35+
rw- 组(缩写为g)的权限
36+
r-- 其他用户(缩写为o)的权限
37+
38+
用户root可以读+写 default.conf
39+
组root 可以读+写 default.conf
40+
41+
按照前面我们说的,比如shengj用户属于root组,那么它就拥有组root的所有权限,可以读+写default.conf
42+
43+
```
44+
45+
修改权限
46+
47+
```sh
48+
chmod g+x default.conf 给default.conf的组加上执行x权限
49+
chmod g-x default.conf 给default.conf的组减去执行x权限
50+
51+
```
52+
53+
用户操作
54+
55+
```sh
56+
1. 增加用户
57+
# 新增
58+
useradd shengj
59+
# 设置密码
60+
passwd shengj
61+
# 配置sudo权限
62+
vim /etc/sudoers
63+
找到 root ALL=(ALL) ALL
64+
在下面加条 shengj ALL=(ALL) ALL
65+
66+
2. 修改用户
67+
# 将shengj用户的登录目录改成/home/shengj,并加入root组。
68+
usermod -d /home/shengj -G root shengj
69+
# 将用户shengj加入到root组
70+
gpasswd -a shengj root
71+
# 将用户shengj从root组中移出
72+
gpasswd -d shengj root
73+
74+
3. 删除用户
75+
userdel shengj
76+
77+
4. 查看用户
78+
# 查看当前登录用户
79+
w
80+
who
81+
# 查看当前登录用户
82+
whoami
83+
# 查看单个用户信息
84+
finger shengj
85+
id shengj
86+
# 查看用户登录记录
87+
查看登录成功的用户记录
88+
last
89+
查看登录不成功的用户记录
90+
lastb
91+
# 查看所有用户
92+
cut -d : -f 1 /etc/passwd
93+
cat /etc/passwd |awk -F \: '{print $1}'
94+
```
95+
96+
组操作
97+
98+
```sh
99+
1. 创建组
100+
groupadd shengj
101+
102+
2,修改组
103+
groupmod -n shengj2 shengj
104+
将shengj组的名字改成shengj2
105+
106+
3,删除组
107+
groupdel shengj
108+
109+
4,查看组
110+
# 查看当前登录用户所在的组groups
111+
groups shengj
112+
113+
# 查看所有组
114+
cat /etc/group
115+
116+
# 有的linux系统没有/etc/group文件的,这个时候看下面的这个方法
117+
cat /etc/passwd |awk -F [:] '{print $4}' |sort|uniq | getent group |awk -F [:] '{print $1}'
118+
这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.
119+
```

0 commit comments

Comments
 (0)