Linux系统下的用户账号与权限管理(二)
一、 用户账号的初始配置文件
1 、文件来源
- useradd命令添加一个新的用户账号后会在该用户的宿主命令中建立一些初始配置文件;
- 这些文件来自于账号模板目录/etcskel/,基本上都是隐藏文件。
2、主要的用户初始配置文件
2.1 用户宿主目录下的初始配置文件
只对当前用户有效!
~./bash_profile:此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的 ~./bashrc文件;
~./bashrc:此文件中的命令会在每次打开新的bash shell(也包括登录系统)被执行,并且会调用/etc/bashrc文件。
~./bash_logout:此文件中的命令将会在用户每次登录或退出bash shell时执行。
2.2 全局配置文件
对所有用户有效
/etc/profile
这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
/etc/profile.d/
这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
/etc/bashrc
每一个运行bash shell 的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时,使bashrc文件被读取
2.2.1 进入etc/bashrc,修改配置文件,使其切换用户不受影响
2.2.2 进入/etc/profile,修改之后要保证切换用户之后查找到别名设置
2.3 PATH变量生效的原理
PATH变量用于设置可执行程序的默认搜索路径。
每次启动系统的时候会初始化命令,会执行/etc/profile 和 ~./bash.profile。 /etc/profile会将路径/usr/local/bin、/usr/bin、/usr/local/sbin、/usr/sbin追加到PATH中去,然后调用/etc/profile.d目录下的脚步。
二、组账号文件
1、格式
- /etc/group:保存组账号的基本信息
- /etc/gshadow:保存组账号的密码信息
2、group信息字段组成
- 字段1:组帐号的名称
- 字段2: 占位符“x”
- 字段3:组账号的GID号
- 字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔
三、组账号管理
1、添加组账号——groupadd
1.1 格式
groudadd [-g GID] 组账号名
1.2 实例操作
2、添加删除组成员——gpasswd
2.1 作用
设置组账号密码(极少用)、添加/删除组成员
2.2 格式
gpasswd [选项]...组账号名
2.3 常用选项
2.4 实例操作
3、 删除组账号——groupdel
3.1 格式
group 组账号名
3.2 实例操作
四、查询账号信息
1、groups命令
作用:查询用户所属的组
格式:groups 【用户名】
2、 id命令
作用:查询用户身份标识
格式:id 【用户名】
3、 finger命令
作用:查询用户账号的登录属性
注:需要先进行安装finger软件包
格式:finger 【用户名】
4、w命令
作用:是用来显示当前登录用户及这些用户正在做什么的命令。它同时也能显示系统运行时长,当前系统时间和系统平均负载情况 cpu负载
格式:w [ 选项] 用户名
第一行信息输出内容包含的信息说明如下:
16:43:29 ——当前系统时间.
up 16:56——系统运行时长.
1 users ——登录用户数.
load average: 0.00 0.01, 0.05 ——系统过去1,5,15分钟的平均负载信息。平均系统负载是对当前正在运行或正在等待磁盘I/O的作业数的度量。 它基本上告诉您系统在给定间隔内的繁忙程度。
第二行信息包括如下字段说明:
USER ——登录用户名.
TTY ——登录用户使用的终端名.
FROM ——登录用户来源的主机名或IP地址.
LOGIN@ ——用户登录时长.
IDLE —— 自用户上一次与终端进行交互以来的空闲时间.
JCPU ——附加到tty的所有进程使用的时间.
PCPU ——用户当前进程所用的时间。 显示在“ WHAT”字段中的那个.
WHAT —— 用户当前的进程及选项/参数。
5、who命令
作用:用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
使用权限:所有使用者都可使用
格式:who
6、users命令
作用:users命令 用于显示当前登录系统的所有用户的用户列表。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数
格式:users
五、文件/目录的权限及归属
1、访问权限与归属(所有权)
① 访问权限
✔ 读取r: 允许查看文件内容、显示目录列表
✔ 写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
✔ 可执行x: 允许运行程序、切换目录
② 归属(所有权)
✔ 属主: 拥有该文件或目录的用户帐号
✔ 属组: 拥有该文件或目录的组帐号
2、文件/目录信息字段分析
第一字段分析:
在上述输出信息中,第3、4个字段的数据分别表示该文件的属主、属组,上面的"/etc/passwd"文件都属于root用户,
root组:而第1个字段的数据表示该文件的访问权限,如:"-rw-r–r--"。权限字段由四部分组成,各自的含义如下:
第1个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“ l ”(链接文件)等;
第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限;
第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限;
第8~10个字符:表示其他任何用户(Other)对该文件的访问权限;
第11个字符:这里的“ . ”与SELinux有关,目前不需要关注。
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---|---|---|---|---|---|---|---|---|---|
字符提示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 | ||||||
八进制数表示 | 7 | 7 | 7 |
二、设置文件/目录的权限和归属
1、设置权限 — chmod
1.1 格式
字符形式: chmod [ugoa···][+-=][rwx] 文件...
数字形式: chmod nnn 文件/目录...
• "ugoa"表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表 文件属组内的用户,“o”代表其他任何用户,“a"代表所有用户(缺省时为a)
• “+ - ="表示设置权限的操作动作。“+"代表增加相应权限,“-"代表减少相应权限,“=”代表仅设置对应的权限
• “rwx”是权限的字符组合形式,也可以拆分使用,如“r”"rx” 等
1.2 常用选项
-R:递归修改指定目录下所有子项的权限(包括目录中的文件)
1.3 实例操作
1.3.1 以字符形式设置权限
1.3.2 以数字形式修改权限
1.3.3 以递归方式修改子目录下的权限
2、设置归属 — chown/chgrp
2.1 格式
chown/chgrp 属主 文件或目录
chown/chgrp :属组 文件或目录
chown/chgrp 属主:属组 文件或目录
2.2 常用选项
-R:递归修改指定目录下所有子项的权限(包括目录中的文件)
2.3 实例操作
三、umask应用
新建文件或目录时会用到umask
1、作用
- 设置目录和文件的默认权限;
- 指定目前用户在新建文件或目录时的权限默认值;
- 新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
2、格式
umask查看: umask
umask设置: umask 000
3、实例
3.1 umask 查看
3.2 umask 设置