1.Linux为多用户操作系统各个用户间共享部分主机资源,也分别具有不同的用户空间。但是,其本质他们的文件都存在同一个物理磁盘甚至同一个逻辑分区或目录里的。
2.Linux有其特殊的权限管理机制,故各用户间不可以轻易查看和修改彼此文件。
3.理解linux多用户,多任务的特性
3.1Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响,例如某台linux服务器上有4个用户,分别是root、www、ftp和mysql,在同一时间内,root用户可能在查看系统日志,管理维护系统,www用户可能在修改自己的网页程序,ftp用户可能在上传软件到服务器,mysql用户可能在执行自己的SQL查询,每个用户互不干扰,有条不紊的进行着自己的工作,而每个用户之间不能越权访问,比如www用户不能执行mysql用户的SQL查询操作,ftp用户也不能修改www用户的网页程序,因此可知,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
3.2.linux下用户的角色分类在linux下用户是根据角色定义的,具体分为三种角色:超级用户:拥有对系统的最高管理权限,默认是root用户。普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面提到的www用户、ftp用户等。虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。
3.3用户和组的概念我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。 每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。用户和组的关系:用户和用户组的对应关系有:一对一、一对多、多对一和多对多;
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。
一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展
。5.用户
5.1.查看用户输入 :who am i可查看当前伪终端用户名whoami(无空格)查看当前登录用户的用户名
【【(伪终端与真终端)】】————————————————————————-
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。在Linux系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),与之相关联的设备文件为:tty0、tty1、tty2……。当用户从控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3……上面去。tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端(显示器)上。用户可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。只有系统或超级用户root可以向/dev/tty0进行写操作(系统和超级用户概念在上边)。
在我们的登陆过程中,对于网络用户来说,上面的方式却不能完全实用。很显然,网络用户并不需要一个串口,也不需要一个显示器,他需要的是在他的本地显示设备上,运行Linux的shell。这种网络用户被称为网络虚拟终端这里,这个“某个终设备”,自然不可能是一个实际的物理终端设备,因为压根没有这样的设备。这样,伪终端的概念就被引入进来了。伪终端设备是一种特殊的终端驱动设备, 它并不驱动某个物理设备,而是用来将终端的输出定向到应用程序中进行处理。伪终端设备之所以存在是为了提供在程序控制下的一种模拟串行终端行为的方法。伪终端与前面说的终端在表现形式上,最大的不同,就是它总是成对出现,而不是单一的一个。它分为“伪终端主设备(/dev/ptyMN)”和“伪终端从设备”。(/dev/ttyMN)。
【who其他命令】
参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级
5.2创建用户
5.2.1前提条件(非root用户)知道当前用户的密码,当前用户sudo组
5.2.2 su su- sudo
Su:切换用户(例:su -l user切换到user这个用户,需输入密码)
Su-:切换用户,但是会改变环境变量。
Sudo:创建用户(例:sudo adduser test 创建名为test的用户)
环境变量:给shell以及其他程序使用的一些定义,可部分理解为设置参数
5.2.3退出用户
使用exit 或者ctrl + d
5.3用户组
用户组就是用户的集合,使用groups命令可查看所在用户组(例: groups test 查看test用户所在用户组)
查看 /etc/group 文件
(例:使用cat命令读取指定文件并打印到终端(再输出),再使用 | sort将读取的文本进行字典排序在输出--------------cat /etc/group | sort信息在最下层)
所获得的信息格式为 group_name:password:GID:user_list
用户组名:密码(如果是×代表不可见):GID:包含的用户
5.4将其他用户加入sudo用户组
通过使用root用户或其他已经在sudo组里的用户来添加使用usermod命令。
格式:
{usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s][-u][用户帐号] }
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID-U解除密码锁定。
小例子:sudo usermod -G sudo lilei
5.5 删除用户
sudo deluser--remove-home
6.linux文件权限
6.1
ls命令
列出并显示当前文件夹下所有文件
所列格式::
drwxr-xr-x 2 name group 4096 11月 13 15:31 test
文件类型和权限 文件数 所有者 所属用户组 文件数 最后修改时间 文件名
6.2
变更文件所有者
①进入需要该文件的用户
②使用如下命令
cd /home/user1 (suer1是指原本文件所有者)
ls file (file变更地址的文件)
sudo chown user2 iphone6(user2是指新所有者)
7.adduser 与 useradd 区别
adduser 同时创建用户,创建目录,创建密码
useradd 只创建用户 密码要用passwd user(user指用户名)创建
8.作业
①sudo adduser loutest 创建loutest用户
②sudo touch /opt/forloutest创建loutest文件
③sudo chown loutest /opt/forloutest把文件归属改为loutest
④su loutest登录新用户
⑤chmod 700 /opt/forloutest/修改文件权限