目录
一、用户管理
(一)用户和用户组的基本概念
1.概念
2.设置原因
3.用户与用户组的关系
4.用户类型
(二)用户的创建、修改属性和删除用户
1.用户信息文件
2.创建用户
3.修改用户密码
4.修改用户信息
5.用户查询
6.用户删除
(三)用户之间的切换
(四)用户组的创建和删除
二、文件权限管理
(一)Linux的文件访问权限和访问者种类
(二)修改Linux文件的访问权限
(三)修改Linux文件所属用户和用户组
1.chown命令
2.chgrp命令
一、用户管理
(一)用户和用户组的基本概念
1.概念
Linux是一个多用户的操作系统
任何一个要使用系统资源的用户,必须登录进入系统
Linux用户属于一个或多个特定的组,称为用户组,即group
2.设置原因
- 资源访问控制
- 文件(泛义上的文件)
- 所有文件都属于一个特定的用户,和一个特定的用户组
- 每个文件都有一定的访问权限,用户限制不同用户和用户组的访问行为
3.用户与用户组的关系
Linux系统以组Group方式管理用户,用户和组的对应关系为多对多,即某个用户可属于一个或多个组,某个组可以有0个、1个或多个用户。
组的分类:从用户的角度,分为主组和附属组
- 主组:也被称为primary group、first group或initial login group,用户的默认组,用户的gid所标识的组
- 附属组:也被称为Secondary group或supplementary group,用户的附加组
- 用户必须有且只能有一个主组,就可以有0个、1个或多个附属组,如我们一定会有一个用来安家的房子(类同主组),还可以有n个用于投资或其他打算的房子(附属组)
4.用户类型
- root用户
- 超级管理员用户,具有操作系统的最大权限
- 普通用户
- 由超级用户创建及授权,并且可以登录到Linux系统执行某些任务
- 系统用户
- 系统内创建了若干用户,如mail、ftp、bin等,默认情况下,系统用户都是无法登录的
(二)用户的创建、修改属性和删除用户
1.用户信息文件
Linux的/etc/passwd文件是用来记录用户的所有信息
- 1-用户名:长度在1到32个字符之间
- 2-密码:x加密密码存在/etc/shadow
- 3-用户ID(UID):root用户的ID是0
- 4-用户主组ID(GID):用户的主组ID,root组的ID是0
- 5-用户ID说明
- 6-用户家目录
- 7-用户默认的shell
2.创建用户
命令:useradd
格式:useradd 用户名
root用户使用useradd命令创建用户,比如:useradd jim
参数:
- -d:指明用户家目录,若该目录不存在则创建目录
- -g:指明用户所属组,该用户组必须存在
该命令完成的事情:
- 在/etc/passwd文件中增加一行数据,表示该用户的信息。
- 为该用户创建用户组,将该用户标识符加在/etc/group文件中,如果有-g选项,则不创建用户组,而是将该用户加入指定组中。
- 为该用户创建一个家目录(home directory),将家目录的拥有者改为该用户所有。
3.修改用户密码
命令:passwd 用户名
root用户使用下列命令为用户jim设置密码
[root@localhost ~]# passwd jim
Changing password for user jim.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- 创建了用户之后,其密码是随机的
- 用户可以修改自己的密码(需要输入当前密码)
- 只有root用户可以修改其他用户密码
4.修改用户信息
命令:usermod
修改用户所属的组举例:
- groups jim //查看jim用户所属的组
- usermod -g root jim //修改用户jim的主组为root
- usermod -a -G g4 jim //增加用户jim的附属组g4
- usermod -G g2,g3 jim //修改用户jim的附属组为g2、g3
- usermod -L jim //锁定jim用户,锁定后该用户不能再登录
- usermod -U jim //解锁jim用户,解锁后该用户可以再登录
5.用户查询
用户可以使用下列指令查询用户相关信息
- who:查询当前在线的用户,只能查询在登录页面输入了用户名密码登录的用户,通过su命令切换的用户无法查询到
- whoami:用户身份查询,当前所在的用户
- groups:查询用户所属的组
- [root@localhost ~]# groups jack
- jack : user05 user03 user04
- id:显示当前用户信息
- [root@localhost ~]# id
- uid=0(root) gid=0(root) groups=0(root)
6.用户删除
命令:userdel
格式:userdel 用户名
如果加参数-r,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除
例子
- userdel jim //删除用户jim,但不删除其家目录及文件
- userdel -r jack //删除用户jack,其家目录及文件一并删除
(三)用户之间的切换
命令:su
例如:
- 切换到用户jim:su - jim 或 su jim
- 切换到root用户:su - 或 su
有没有“-”的区别:
有“-”会重新初始化环境,比如全新用户home目录,新的环境变量
举例:
[root@localhost ~]# su - jack
[jack@localhost ~]$ pwd
/home/jack
[root@localhost ~]# su jack
[jack@localhost root]$ pwd
/root
(四)用户组的创建和删除
用户组命令:
Linux系统中,每个用户账号至少属于一个组,每个组可以包括多个用户
管理组的常用命令有如下:
- groupadd:创建组
- groupdel:删除组
- usermod:修改用户所属组
只有root用户可以操作
root用户创建用户组sales
- groupadd sales
root用户删除用户组sales
- groupdel sales
如果有用户属于这个组 --primary组不能删除。
创建用户的时候指定用户组:
root用户创建用户sa01,sa02用户,并把它们添加到sales组里
- useradd -g sales sa01
- useradd -g sales sa02
二、文件权限管理
(一)Linux的文件访问权限和访问者种类
还是从ls -l说起:
文件必须有一个所属用户和一个所属组
不同类型的用户有不同的权限
三种访问权限:可读、可写、可执行。
权限 | 文件的存取权限 | 目录的存取权限 |
r | 具有读文件的权限 | 能查看文件夹里面的内容(比如:用ls命令能查看文件夹里的内容) |
w | 具有写文件的权限 | 能创建和删除文件(比如:在文件夹下面,使用touch命令创建文件) |
x | 具有执行文件的权限 | 能使用该目录下的文件(如cd命令),能进入该目录 |
对于一个文件来讲,把所有用户分成三类:
用户类型 | 说明 |
owner | 文件的所有者(一般来说,谁创建了文件,谁就是所有者) |
group | 文件所属工作组(一般来说,创建文件的用户所在的工作组(主组))--touch file举例说明 |
other | 其他用户(非owner和非group) |
(二)修改Linux文件的访问权限
chmod命令
- 谁可以改变文件访问权限?root和owner
- 语法:chmod [who][op][permission] filename
- 例如:chmod u+x file01
- who项表示用户类型,它的内容为以下一项或多项
- u 拥有者(user --owner)
- g 与拥有者同一组的用户(group)
- o 其他人(other)
- a 所有人(all)
- op项表示动作
- + 表示要加上permission指定的权限
- - 表示要取消permission指定的权限
- permission项为存取权限,它的内容为以下一项或多项
- r 表示可读
- w 表示可写
- x 表示可执行
- who项表示用户类型,它的内容为以下一项或多项
chmod命令举例
- 第一种写法:
- chmod ug+w file01 拥有者和同组用户对file01“可写”
- chmod a-x file02 所有人对file02不可执行
- chmod u+rwx file03 拥有者对file03“可读、可写、可执行”
- 第二种写法:
- chmod u=rwx file01 拥有者对file01“可读可写可执行”
- chmod u=rwx,g=rx,o=r file02 拥有者对file02“可读可写可执行”, 对同组用户“可读可执行”,对其他 用户“可读”
- 第三种写法
- chmod 755 file01
- 等价于
- chmod u=rwx,g=rx,o=rx file01
(三)修改Linux文件所属用户和用户组
1.chown命令
谁可以改变文件的所有者和所属组?
只有root用户,owner都不行
语法:chown [选项]…[所有者]:[所属组] 文件
举例:
- chown jack file01:把文件file01的所有者改成jack
- chown jack:jack file02 :把文件file02的所有者改成jack,所属组改成jack
- chown -R jack dir01:把目录dir01以及下面所有的子目录和文件的所有者改成jack
- chown -R jack:jack dir02:把目录dir02以及下面所有的子目录和文件的所有者改成jack,所属组改成jack】
2.chgrp命令
谁可以改变文件的所属组?
root,owner(只能改变到owner所在的组)
语法:chgrp [选项]…[组] 文件
举例:chgrp jack file01 把file01的所属组改成jack