一、前言概述
Linux是一个多用户、多任务的操作系统,为了让各个用户具有较保密的文件数据,因此用户的权限管理就比较重要了。Linux一般将档案可存取的身份分为三个类别,分别是owner/group/others,这三种身份各有 read / write / execute 等权限。
Linux的文件所有权和访问授权是与用户id和组密切相关的。Linux 一般将文件可存取访问的身份分为3个类别,分别是owner, group, others,且3中身份各有 read, write, execute等权限。当用户登录系统时,就会进行身份验证。成功登录系统后的用户,都携带用户身份(User ID, UID)以及组身份(Group ID, GID),当需要访问文件或者执行程序时,需要检查用户是否拥有访问的权限。
- 用户账号类别:
- 超级用户——root,权限最高
- 普通用户——自定义用户 匿名用户(nobody)类似于Windows中的Guest
- 程序用户——控制程序和服务的,无法登陆
- 组账号——用户的集合(其实可以认为是用户权限的集合)
- 基本组(私有组)——伴随着用户创建而创建 与用户同名 也就是说创建一个用户的时候必有其组
- 附加组(公有组)——直接创建空组,可以添加已有的用户,给组设置权限,该组中所有用户都具备此权限
- UID和GID
- UID(User IDentity) ——用户标识号 (默认情况下0表示root 1~999 表示(系统)程序用户 1000~60000 表示(登录)普通用户)
- GID(Group IDentity)——组标识号
二、用户账号文件
/etc/passwd-------保存用户名称、宿主目录、登录shell等基本信息
root:x:0:0:root:/root:/bin/bash--------以冒号分隔
- root-------用户账号名称
- x-------使用加密算法加密的密码,这里是不会显示的
- 0-------用户UID号
- 0-------所属基本组账号的UID
- root-------用户全名,可以填写用户详细信息
- /root-------宿主目录
- /bin/bash-------指定用户的登录Shell
root:$6$tuYD3Zus15.q1AUA$Ie5ml7a0mcUWYSqQDX8ocNQ/CL.fTb1wBJi5Z/nKLFSJ8Bvzy0vMfq/4wtZibc4KmU8C1eL3RBwIWYN.tt/R0/::0:99999:7::::
- root-------用户账号名称
- 粗体部分-------表示加密算法加密的密码,登录输入该密码是无效的
- ::-------之间的内容是上次修改时间
- 0-------密码的最短有效天数
- 99999-------密码的最长有效天数
- 7-------提前7天提醒用户口令将过期
- 之后的内容是密码和账号过期之后的操作处理
三、管理用户账号
1、添加用户账号-------useradd命令
选项
- -u-------指定用户的UID号,且该UID号没有被其他用户使用
- -d-------指定用户的宿主目录位置(与-M一起使用时不生效)
- -e-------账号失效时间
- -g-------基本组
- -G-------附加组
- -M-------不创建家目录
- -s-------指定用户的登录shell
2、设置/更改用户口令passwd
passwd 选项 .... 用户名
- -d-------清除密码
- -l-------锁定
- -S-------查看是否锁还是未锁
- -u-------解锁
总结:1.其中/sbin/nologin用户无法直接登录和被切换登录
2.执行passwd - rice 后用户被锁定,在图形用户界面是无法登录的,但是可以从root切换登录是不需要密码的
3、修改用户账号的属性usermod
- -u-------修改用户的UID号
- -d-------修改用户的宿主目录位置
- -e-------修改用户账户失效时间
- -s-------指定用户的登录shell
- -l-------更改用户登录账号名称
- -L 锁定-------相当于passwd -l
- -U 解锁-------相当于passwd -u
4、删除用户账号userdel
-r-------宿主目录一起删除,下面的演示接着上面的操作
四、管理组账号
组账号文件-------与用户账号文件啊类似
- /etc/group:保存组账号基本信息
- /etc/shadow:保存组账号的密码信息(一般不会设置)
1、添加组账号groupadd命令
groupadd
-g-------指定GID
2、添加组成员和删除组成员
添加-------gpasswd
- -a-------向组中添加一个用户 a不会覆盖
- -d-------从组中删除一个用户
五、文件/目录的线权及归属
1、访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行: 允许运行程序、切换目录
2、归属(所有权)
属主:用于该文件或目录的用户账号
属组:用于该文件或目录的组账号
3、结合实例介绍权限
下面对drwxr-xr-x. 2 root root 6 8月 31 20:00 公共 进行解释
- d-------文件类型(d表示目录、l表示链接文件、c表示字符设备(输入输出)文件、b块设备(存储)文件 - 普通文件)
- rwx 、 r-x、r-x分别代表是属主权限(这里表示可读可写可执行)、属组权限(这里表示可读可执行)、other权限(这里表示可读可执行)
- 2-------子目录的数量
- root-------属主
- root-------属组
- 6-------大小
- 8月 31 20:00-------创建时间
- 公共-------目录名(文件)
4、设置文件和目录的权限chmod命令(-R递归)
- chmod 【ugoa】【+-=】【rwx】
- chmod nnn 文件或目录(优先选择)
下面是对文件的权限操作
下面是对目录的权限操作
5、设置文件和目录的归属chown
- chown属主
- chown:属组
- chown 属主: 属组