用户和文件管理

用户和用户组概述

用户介绍

1)超级用户:

默认是root用户。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限。在生产环境,一般禁止root账号远程登录SSH连接服务器,以加强系统安全。
其UID和GID均为0

2)普通用户:

这类用户一般是由具备系统管理员root的权限的运维人员添加的。
在 centos 7中 ,普通用户的UID范围为1000-60000。

3)程序用户:

与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在,且默认情况不能登录系统。它们是系统正常运行必不可少的,他们的存在主要是方便系统管理,满足相应的系统进程都文件属主的要求。例如系统默认的bin、adm、nodoby、mail用户等。
在centos 7中,系统用户的UID范围为1-999。
由于服务器角色的不同,有部分用不到的系统服务被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务对应的虚拟用户也是可以处理掉的(删除或注释)。

用户组介绍

linux系统中的用户组(group)就是具有相同特性的用户(user)集合。
有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件,只需要把授权的用户都加入到同一个用户组里,然后通过修改该文件对应组的权限,让用户组具有符合需求的操作权限,这样组内所有用户对该文件就会具有相同的权限,这就是用户组的用途。
将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了运维管理工作。
组账号类型:
1)基本组(私有组)

创建用户账号时,如果没有指定用户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,默认只容纳一个用户。
在用户所属组中的第一个组称为基本组,基本组在/etc/passwd 文件中指定。
基本组有且唯一。

2)附加组(公共组)

在用户所属组中,除了第一个组(基本组)以外的其他组就是附加组,附加组在/etc/group文件中指定。
附加组可有可无,且可以有多个。

用户账号管理

用户信息存储文件

用户账号文件/etc/passwd  

用途:保存用户名称、宿主目录、登录shell等基本信息

 冒号(:)作为分隔符,将每行分为了7段。以第一行“root:x:0:0:root:/root:/bin/bash”为例,解释每段含义:
字段1:root,用户名。
字段2:x,密码占位符。为保障用户密码的安全性,密码实际存放在/etc/shadow文件中。
字段3:0,用户编号UID。
字段4:0,用户基本组编号GID。
字段5:root,用户描述说明。
字段6:/root,用户家目录。
字段7:/bin/bash,用户的登录shell。

 用户口令文件/etc/shadow
用途:存储用户的密码信息,又称为“影子文件” 。/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

/etc/shadow文件也是以冒号(:)作为分隔符,将每行分成了9段,每个字段的含义如下:

字段1:用户名。

字段2:密码加密值。当此字段为*或!!时,表示用户不能登录到此系统。当为空时,表示用户无需密码即可登录。

字段3:上次修改密码时间。从1970/1/1到上次修改密码的天数。 0 有特殊意思,表示用户应该在下次登录系统时更改密码。

字段4:最小修改密码间隔天数,即两次修改口令之间所需的最小天数。若不设置,默认为0,表示当天即可修改。 空字段或 0 都表示当天即可修改。

字段5:密码有效期。若为99999,表示永久有效。

字段6:警告时间。表示从系统开始警告用户到用户密码正式失效之间的天数。空字段或者 0 表示没有密码警告期。

字段7:密码过期后的宽限天数。
密码过期后,仍然接受使用此密码进行登录的天数(在此期间,用户应该在下次登录时修改密码)。

字段8:账户失效时间。从1970/1/1日起,到用户被禁用的天数。默认为空。
账户过期不同于密码过期。账户过期后,用户将不被允许登录。密码过期后,用户将不被允许使用此密码登录。

字段9:保留字段。此字段保留作将来使用。

添加用户账号 useradd

命令格式:
useradd [选项] 用户名

在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
若未明确知道用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和 /etc/shadow 文件中。

选项说明
-u指定用户的UID,要求该UID未被其他用户使用
-d指定用户的宿主目录位置(当与-M一起使用时,-d不生效)。必须使用绝对路径指定目录,且不需要事先创建目录。
-e指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g指定用户的基本组名(或使用GID号),对应的组名必须已存在
-G指定用户的附加组名(或使用GID号),对应的组名必须已存在
-M不建立宿主目录(一般用于系统用户账号)
-s指定用户的登录shell(比如/bin/bash为可登陆系统,Isbin/nologin和/bin/false禁止用户登陆系统)

设置/更改用户口令 passwd

root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。

普通用户只能执行单独的passwd命令修改自己的密码

命令格式:passwd [用户名]

选项作用
-d清空指定用户的密码,仅使用用户名即可登录系统
-l锁定用户密码,锁定的用户账号将无法再登录系统。(一定要事先设好密码)
-u解锁用户密码
-S查看用户账户的状态(是否被锁定)

设置或修改用户密码

passwd 用户名    直接修改

echo "新密码"  |  passwd --stdin 用户名

修改用户账号的属性 usermod

usermod  [选项]... 用户名

选项作用
-l更改用户账号的登录名称。格式:usermod -l 新名称 旧名称
-L锁定用户账户
-U解锁用户账户
-u修改用户的UID号
-d修改用户的宿主目录位置
-e修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式
-g修改用户的基本组名(或使用GID号)
-G修改用户的附加组名(或使用GID号)
-s指定用户的登录Shell

删除用户 userdel

userdel [-r] 用户名  //结合-r可以删除宿主目录

用户账号的初始配置文件

文件来源:
新建用户账号时,从 /etc/skel 目录中复制而来, 比如默认bin/bash,默认家目录。
用户宿主目录下的初始配置文件只对当前用户有效。
主要的用户初始配置文件:

~/.bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行 ”source /etc/profile“ 命令使profile文件被读取。
~/.bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。
~/.bash_logout: 每一个允许bash shell 的用户都会执行此文件。可通过执行bash命令打开一个新的bash,使bashrc文件被读取。
 

组管理

 组账号文件
文件位置:

/etc/group:保存组账号基本信息。
/etc/gshadow:保存组账号的密码信息。

 group文件每行分成了4段,每个字段含义如下:

字段1:组账号名称。
字段2:密码占位符x;通常不需要设置组密码。由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。类似/etc/shadow文件。
字段3:组编号GID。
字段4:本组的成员用户列表 (一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔 。

添加组账号 groupadd

groudadd [-g GID] 组账号名

添加删除组成员 gpasswd

gpasswd  [选项]...  组账号名

选项作用
-a向组内添加一个用户
-d删除组内一个用户
-M定义组人员列表

 

修改组账号的属性 groupmod

groupmod  [选项]... 组名

选项作用
-g修改用户组的编号GID
-n修改用户组的名称

删除组账号 groupdel

groupdel 组账号名

查询账号信息

查询用户所属的组 groups

groups [用户名]

查询用户身份标识 id

id [用户名]

查询用户账号的详细信息 finger

finger [用户名]

查询已登录到主机的用户信息

1)w、who、users 命令

2) last 命令,用于显示用户最近登录信息

      last [选项]

选项作用
-x显示系统开关机以及执行等级信息
-a将登录IP显示在最后一列
-f读取特定文件,可以选择 -f /var/log/btmp 文件
-d将IP地址转换为主机名
-n设置列出名单的显示行数(last -n 3 表示只显示前三行)
-t查看指定时间之前的用户登录历史(格式:-t YYYYMMDDHHMMSS)

lastlog 命令, 用于显示系统中所有用户最近一次登录信息

选项作用
-t <天数>显示指定天数内的登录信息
-u <用户名>显示指定用户的最近登录信息

文件和目录的归属管理

查看文件和目录的归属

文件的归属(所有权):

属主:拥有该文件或目录的用户账号。
属组:拥有该文件或目录的组账号

使用 ls -l 命令查看文件的属性

 

文件的属性分为9列,每列含义如下:

第一列:表示文件类型,-属于普通文件。

第二列:表示文件的UGO权限。rw-r--r--每三个一组。
rw- :属主的权限;
r-- :属组的权限;
r-- :其他人的权限。

第三列:表示ACL表中是否设置了ACL权限。“.” 表示无ACL权限,“+”表示设置了ACL权限。

第四列:表示硬链接数。

第五列:表示文件的属主。

第六列:表示文件的属组。

第七列:表示文件的大小,有多少字节。

第八列:表示最后一次修改时间。

第九列:表示文件名。


设置文件和目录的归属chown、chgrp

chown 属主 文件或目录         //修改属主
chown :属组 文件或目录        //修改属组
chown 属主:属组  文件或目录    //修改属主和属组

chgrp 属组 文件或目录       //修改属组

-R:递归修改指定目录下所有文件、子目录的归属

文件和目录的权限管理

文件的访问权限

权限类型对文件的影响对目录的影响
r 读取可读取文件内容可列出目录内容
w 写入可修改文件内容可在目录中新建、移动、删除文件或子目录
x 执行可作为程序执行可切换目录

文件的读、写、执行权限,既可以用字符r、w、x表示,也可以分别表示为八进制数字4、2、1 。

      当只有 r 权限时,不能进入该目录,也不能在目录内创建、删除、修改文件。只能通过 “ls 目录路径”查看目录内的文件名称,不能查看文件的属性信息。

      当只有 w 权限时,不能进入目录,不能列出目录内的文件,也不能在目录内创建、删除、修改文件。必 须同时有 x 权限,才能创建、删除、修改目录内的文件。


       当只有x权限时,只能进入该目录,但不能列出目录内容,也不能创建文件。


   x 权限是目录最基础的权限,没有x权限,其他权限也会受影响。
 

基本权限UGO

u 属主(user);
g 属组(group);
o 其他人(other)。
a 所有人 all(u+g+o)

设置文件和目录的权限 chmod

chmod命令格式:

字符形式:

chmod   对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)   文件/目录

“+”号代表增加权限,“-”号代表减少相应权限,“=”号代表覆盖对应的权限。

数字形式:

chmod  nnn  文件/目录

R 递归修改知道目录下所有子项的权限

权限掩码umask

umask作用:
控制新建的文件或者目录的权限。
默认权限去除umask的权限为新建的文件

umask查看: umask
umask设置: umask 0022

创建新文件和目录时,落地权限计算:

系统默认umask为0022(第一个0与特殊权限有关,目前只需要看后三位)。
目录的落地权限=0777-0022=0755。目录必须要有执行权限,用户才能访问该目录。
文件的落地权限=0666-0022=0644。系统出于安全考虑,创建文件时去掉了所有的执行权限,防止一些不安全的程序文件被错误执行。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值