一.用户账号和组账号概述
1.1用户账号类型
1.2组账号
1.3ID
二.用户账号管理
2.1文件位置
2.2添加用户
2.3密码管理
2.4修改用户账号的属性
2.5删除用户
三.组管理
3.1组织账号文件
3.2添加组
3.3组内管理
3.4删除组账号
四.文件、目录的权限和归属
4.1文件与目录的权限和归属
4.2 chmod
4.3 umask
4.4三种特殊权限
一.用户账号和组账号概述
1.1用户账户类型
linux中每个用户是通过user id(UID)来唯一标识的新建用户1-60000自动分配0-65535 端口号
超级用户、普通用户、程序用户
超级用户:0 root用户是Linux操作系统中默认的超级用户账号,拥有至高无上的权利。
普通用户:账号需要由root用户或其他管理员用户创建,又有的权限受到一定的限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。
1.2组账号
组相当于职位运维工程师,都具有大概相同的权限
基本组(私有组):建立账户时,如果没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。在用户所属组中的第一个组称为基本组,基本组在/etc/passwd文件中指定
基本组:有且唯一
附加组:可有可无,可以有多个
默认新建用户时自动添加同名的组
附加组:除了第一个组外的其他组为附加组或公共组,附加组在/etc/group文件中指定
1.3ID
UID
UID:Linux操作系统中每一个用户账号都有一个数字形式的身份标记,称为UID,对于操作系统的核心来说,UID是分区用户的基本依据,原则上每个用户的UID号应该是唯一的。
centos7
普通用户1000-60000这个值可以调
程序用户:1-999
centos6
普通用户:500-60000这个值可以调
程序用户:1-499
GID
GID:与UID类似,每一个组账号也有一个数字形式的身份信息标记,称为GID。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1-499,500-60000 的 GID 号默认分配给普通组使用。
二.用户账号管理
2.1文件位置
/etc/passwd 存放保存用户名称,宿主目录,登录shell等基本信息
[root@test1 ~]cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
root 用户名称
:x 密码占位符
:0 uid
:0 gid
:root 备注信息
:/root 家目录路径
:/bin/bash shell环境
/etc/shadow 存放保存密码
[root@test1 ~]# head -1 /etc/shadow
root:
$6$HzYRIWo05k6aVw2p$aLg7wfHGwoghmuUrIYced/vtejEu32K/yyP9CrF..hAejvS4Y64if3DCfJxwjV1.NhLow40mm5Pkmd6R8KOBU/:
:0
:99999
:7
:
:
:
$6$F9xdHRnn$Y7h6DXNH.MbjWN/ws1mK4UKAI4ylimRVwc6zOyE2Zvd7z83e9FF9z02YXlMzeD9Ui/M.rO04gDbdnpkIPEvDr0
密码
第一字段:用户名:root
第二字段:密码
第三字段:最后一次修改密码的时间。1970年1月1日是Linux诞生的第一年 date -d '1970-01-01 19031 days'计算实际修改日期
第四字段:最小修改密码间隔时间
第五字段:密码有效期
第六字段:密码到期提醒 7密码表示将要过期的前7天会提醒你
第七字段:密码过期后的使用天数
第八字段:账号失效时间
2.2添加用户
命令:useradd
useradd [选项] 用户名
添加用户:查看是否在passwd和shadow文件中生成信息
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
选项:
-s 修改默认shell类型 /bin/bash /sbin/nologin
-u 指定UID
-M 不建立家目录
-d 指定家目录
-e 用户失效时间
-g 指定基本组
-G 指定附加组
-r 随机生成系统用户
2.3密码管理
为用户账号设置密码
命令:passwd
格式;passwd [选项] 用户名
选项:
-d #清空密码(不需要使用密码登录)
-I #锁定用户
-U #解锁用户
-S #查看用户是否被锁
2.4修改用户账号的属性
命令:usermod
格式:usermod [选项] 用户名
常见选项:
-l(小L) #修改用户
-U #解锁用户
-u #修改用户的UID号
-L #锁定用户
-d #修改用户的宿主目录位置
-e #修改用户的账户失效时间
-g #修改用户的基本组名
-G #修改用户的附加组名
-s #指定用户的登录shell
2.5删除用户
命令:userdel
格式:userdel [选项] 用户
[root@test1 etc]userdel -r zhou1 //连宿主目录一起删除
[root@test1 etc]id zhou1 //验证
id: zhou1: no such user
[root@test1 etc]cd /home/
[root@test1 home]ls
lisi zhangsan
三.组管理
3.1组账号文件
与用户帐号文件相类似
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息基本不使用
[root@test1 /]grep "adm" /etc/group //过滤/etc/group文件下的adm文件
adm:x:4
3.2添加组
命令:groupadd
格式:groupadd [-g GID] 组账号名
[root@test1 /]groupadd zhou //添加组账号
[root@test1 /]tail -1 /etc/group
zhou:x:1002:
[root@test1 /]groupadd -g 88 zhou //-g指定组id
[root@test1 /]tail -1 /etc/group
zhou:x:88:
3.3组内管理
gpasswd 命令 --添加、设置、删除组成员
选项:
-a 将用户加入组
-d 将用户删除出组
-M 批量加减
3.4删除组账号
groudel 组账号名
[root@test1 /]groupdel zhou
[root@test1 /]
四.文件、目录的权限和归属
4.1文件与目录的权限和归属
程序访问文件时的权限,取决于此程序的发起者
进程的发起者,同文件的属主:则应用文件属主权限
进程的发起者,属于文件属组;则应用文件属组权限
应用文件“其它”权限
访问人群分为三类
1所属主(u)
2所属组(g)
3其他人(o)
权限分为三种
1、读权限(r 4),用户可以读取文档的内容
2、写权限(w 2),用户可以编辑文档
3、执行权限(x 1),该目录具有可以被系统执行的权限
对文件的权限
1.r可使用文件查看类工具,比如:cat,可以获取其内容
2.w 可修改其内容
3.x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)
对目录的权限
1.r 可以使用ls查看此目录中文件列表
2.w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
3.x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限
4.2 chmod
修改文件权限
1执行x 2写w 4读r
chmod 对谁(所有者,所属组,其他)操作(+ - =)权限 文件
谁:+ - =
权限:r w x(普通权限对root无效)
文件属于谁有处理的权限,即使一开始没有权限
目录的读写权限与文件夹的同或异(文件是否可以删除与目录有关)
面试题:
文件夹一定要有执行权限
知道文件夹的名字才能去执行
cp /etc/issue /data/dir/所需要的最小的权限
/bin/cp 需要x权限
/etc/ 需要x权限
/etc/issue 需要r权限
/data 需要x权限
/data/dir 需要w,x权限
chown 用户:组名 文件名
修改所属主,和所属组
-R 递归修改
[root@localhost aa]#chown -R zhangsan:zhangsan /opt/aa/
#递归修改
注意!!!
[root@localhost aa]#chown zhangsan:zhangsan /
#此命令效果不亚于删除根目录!!
4.3 umask
umask的值可以用来保留在创建文件权限
实现方式:
新建文件的默认权限是:666-umask,如果所得结果某位存在奇数权限,要把该权限+1,偶数不变
新建目录的默认权限是:777-umask
非特权用户umask默认是002
root的umask默认是022
4.4三种特殊权限
suid (s权限) #把当前文件当成文件所属主
[root@localhost aa]which passwd
/usr/bin/passwd
[root@localhost aa]ll /usr/bin/passwd #这里的s表示当使用这个命令程序时,把当前用户当成文件的所属主
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
[root@localhost aa]which vim
/usr/bin/vim
[root@localhost aa]chmod u+s /usr/bin/vim #给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
[root@localhost aa]ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
7777
guid #把当前文件当成文件所属组
当给文件设置GUID位时,意味着执行文件的任何用户都将拥有与文件组所有者相同的权限。
当GUID权限应用于目录时,在此目录中创建的所有子目录和文件将获得与主目录相同的组所有权(而不是创建文件和目录的用户的组的所有权)
Sticky (t权限) #粘贴位
#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
#sticky 设置在文件上无意义
#Sticky权限设定:
chmod o+t DIR...
chmod o-t DIR..
[root@localhost aa]chmod o+t /opt/aa
# 添加Sticky 位
[root@localhost opt]chmod o-t /opt/aa
#减少Sticky 位