Linux入门笔记5. 多用户多任务

Linux入门笔记5. 多用户多任务

1、用户与组

Linux是一个多用户多任务的操作系统,可以允许多个用户同在系统上执行不同的任务。

Linux的用户一般分为超级用户、普通用户,还有虚拟用户。

用户与组:

把具有相同权限的用户统一到一个组中,可以方便权限的管理。比如有多个用户具有修改数据库的权限,那么可以将他们放在同一个组中,对这个组赋予修改数据库的权限。

用户与组不是一一对应的,一个用户可以存在于多个组中,一个组可以包含多个用户。

2、用户配置文件

/etc/passwd 文件用于配置用户,可用vim查看或修改这个文件

vim /etc/passwd

这里写图片描述

每行代表一个用户,具体格式如下:

用户名 : 密码 : 用户标识号 : 组标识号 : 描述 : 主目录 : 默认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

sudo useradd -g mygroup1 -G mygroup2 user1

(2)usermod 修改用户信息

修改用户user1的组为mygroup3

sudo usermod -g mygroup3 user1

(3)userdel 删除用户

删除用户user1 并删除主目录及子目录的所有文件

sudo userdel -r user1

4、组管理工具

(1)groupadd 命令用来新建用户组

这里写图片描述

sudo groupadd -g 1020 mygroup

执行上面的命令后,然后使用命令more /etc/group 查看组,可以看到多了一个GID为1020的mygroup

这里写图片描述

(2)groupdel 命令用来删除用户组

sudo groupdel mygroup

(3)newgrp 命令用来切换组

如果当前用户属于组group1,同时又属于组group2,可用newgrp命令切换组

sudo newgrp group2

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的文件,它的权限如下:
除了所有者外,其他用户对它的权限是“只读”的
这里写图片描述

现在要给所有用户“写”的权限,可以用下面的命令,效果如下图所示

sudo chmod a+w 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 )来确定

sudo chmod 765 test.txt 

这里写图片描述

使用命令 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表示以递归整个文件夹中的子文件

猜你喜欢

转载自blog.csdn.net/u010429424/article/details/78447699