Linux入门笔记5. 多用户多任务
1、用户与组
Linux是一个多用户多任务的操作系统,可以允许多个用户同在系统上执行不同的任务。
Linux的用户一般分为超级用户、普通用户,还有虚拟用户。
用户与组:
把具有相同权限的用户统一到一个组中,可以方便权限的管理。比如有多个用户具有修改数据库的权限,那么可以将他们放在同一个组中,对这个组赋予修改数据库的权限。
用户与组不是一一对应的,一个用户可以存在于多个组中,一个组可以包含多个用户。
2、用户配置文件
/etc/passwd 文件用于配置用户,可用vim查看或修改这个文件
每行代表一个用户,具体格式如下:
用户名 : 密码 : 用户标识号 : 组标识号 : 描述 : 主目录 : 默认shell
其中,有几点需要注意:
- 密码是加密后的密码,在/etc/passwd中用’x’或’*’表示。加密后的密码存在/etc/shadow中
- 用户标识号,UID,范围是【0-65535】,0是超级用户,普通用户从500开始
- 组标识号,GID,在/etc/group文件中管理
- 默认shell,用户登陆后默认的shell
3、用户管理工具
(1)useradd 添加一个用户
添加用户时分为以下几个步骤:
- 首先根据/etc/login.defs和/etc/defaut/useradd 中定义的规则添加用户
- 然后在/etc/passwd和/etc/group中添加用户和组(对应的加密文件也会自动添加记录)
- 最后建立用户主目录,并讲/etc/skel 目录下的文件/目录复制到主目录下
skel目录下包含Desktop、Documents等子目录:
通过useradd –help查看它有哪些选项
创建一个用户user1,指定组为mygroup1,附加组为mygroup2
(2)usermod 修改用户信息
修改用户user1的组为mygroup3
(3)userdel 删除用户
删除用户user1 并删除主目录及子目录的所有文件
4、组管理工具
(1)groupadd 命令用来新建用户组
执行上面的命令后,然后使用命令more /etc/group
查看组,可以看到多了一个GID为1020的mygroup
(2)groupdel 命令用来删除用户组
(3)newgrp 命令用来切换组
如果当前用户属于组group1,同时又属于组group2,可用newgrp命令切换组
5、文件权限
(1)不同的用户拥有不同的文件权限,用ls -al
可以查看文件的权限
其中:d表示目录,r表示读,w表示写,x表示可执行,- 表示空
以Desktop目录为例:
类型 | 所有者 | 所属用户组组 | 其它用户 |
d | r w x | r - x | r - x |
目录 | 读 写 执行 | 读 执行 | 读 执行 |
- Desktop是一个目录,
- 它的所有者(user)可以对它进行“读、写和执行”操作;
- 它所属的用户组中的用户,可对它进行“读和执行”操作;
- 其他用户可对它进行“读和执行”操作
2 表示目录的硬链接数量
后面两项lijialin表示目录所属的用户和组
4096是文档的大小,即4096B
11月 5 15:06表示最后的修改的日期
Desktop是文档名称
(2)改变权限的命令:chmod
chmod 命令有两种使用方式:
- chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file
- chmod [xyz] file
A. 先看 chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file
选项 | 作用 |
u | User,文件的所有者 |
g | Group,用户组 |
o | Other,即其他用户 |
a | ALL,所有用户 |
+ | 增加权限 |
- | 取消权限 |
= | 赋予权限 |
r | Read,即读文件 |
w | Write,即写文件 |
x | 运行文件 |
file | 文件的路径 |
现在有一个名为test.txt的文件,它的权限如下:
除了所有者外,其他用户对它的权限是“只读”的
现在要给所有用户“写”的权限,可以用下面的命令,效果如下图所示
B. 再看 chmod [xyz] file
其中,x,y,z分别表示数字(最大不超过7),并分别对应User、Group、Other
x,y,z的值由r(r=4),w ( w=2 ),x ( x=1 )来确定
使用命令 ls -al | grep test.txt
查看test.txt的权限,可以看到test.txt的权限被修改为:-rwxrw-r-x
补充:
当然,你也可以使用通配符 ‘*’,来设置当前路径下的所有文件的权限
For example:
假如,当前你的路径下有文件:1.txt, 2.html, 3.py
使用命令 chmod 777 *
可以同时设置上述三个文件的权限为rwx
如果你要修改整个目录的权限,比如你有一个目录WhoJoy,
你想修改这个目录(包括内部的所有文件)的权限,那么
可以使用命令 chmod -R 777 WhoJoy/
递归地修改
其中:-R表示以递归整个文件夹中的子文件