Linux-账号与权限管理(管理用户账号、组账号,设置文件和目录的权限与归属)

一、 管理用户账号

与windows系统相比,Linux系统中的用户账号和组账号的作用在本质上是一样的,同样是基于用户的身份来控制资源的访问,只是在表现形式及个别细节方面有部分差异

1.1 用户账号

  • 超级用户:root用户是Linux系统中默认的超级用户账号,对本机拥有最高的权限,只有进行系统管理、维护时,才建议使用root账号。
  • 普通用户:需要由root账户或者其他管理员账户创建,权限受到部分限制,一般只在用户自己的宿主目录内拥有完整权限。
  • 程序用户:在安装Linux系统及部分应用时会添加一些特定低权限的用户账号,一般不允许登录系统,仅用于维持系统或者某个程序的正常运行。

1.2 UID

UID(User Identification)是每一个用户账号的数字形式的身份标记,原则上每一个用户的UID是唯一的,root默认是0,程序用户默认是1-999,普通用户是1000-60000.

1.3 用户账号文件

在linux系统中用户信息文件被保存在/etc/passwd文件中,在文件中我们可以看到用户的相关信息,但这个文件中并没有用户的密码
我们每创建一个用户,用户信息会自动加入到/etc/passwd文件中,在文件中以冒号为分隔符
在这里插入图片描述

第一位代表用户名,
第二位代表密码占位符,
第三位代表用户ID,
第四位代表用户组ID,
第五位代表用户描述信息,
第六位代表用户主目录,
第七位代表用户默认shell。

用户的密码文件在/etc/shadow文件中,可以通过查看命令进行查看
在这里插入图片描述

第一位代表用户名,
第二位代表用户密码,如果!!代表用户还没有密码,
第三位代表用户上次修改密码距离1970年1月1日的天数,
第四位代表密码最短有效天数,0为无限制,
第五位代表密码最长有效天数,99999可以理解为无限制,
第六位代表密码到期警告天数默认是7,进行警告后可以使用旧密码,
第七位代表密码宽限期,宽限期内不允许使用旧密码,
第八位代表密码失效日期

1.4 用户账号管理

1.4.1 useradd命令–添加用户账号

useradd命令可以用于添加用户账号,最简单的用法是不添加任何选项,只用用户名作为useradd命令的参数。

useradd命令
useradd -d    //指定宿主目录 
useradd -u    //指定UID多少 
useradd -e    //指定账户失效时间
useradd -g    //指定用户基本组 
useradd -G    //指定用户附加组,既可以属于用户组也可以同时属于其他
useradd -M    //不建立宿主目录 
useradd -s    //指定登录的shelluser 

1.4.2 passwd命令–设置更改口令

新建账户后需要为账户设置密码才能正常使用

passwd命令
passwd -d    //清空密码
passwd -l    //锁定账户
passwd -S    //查看账户是否被锁定
passwd -u    //解锁用户账户

1.4.3 usermod命令–修改用户账号属性

对于系统中已经存在的用户账号,可以使用usermod命令重新设置属性

usermod命令
usermod -u    //修改用户UID
usermod -d    //修改用户的宿主目录位置
usermod -e    //修改用户账户失效时间  可以YYYY-MM-DD日期
usermod -g    //修改用户的基本组名
usermod -G    //修改用户的附加组名
usermod -s    //指定用户登录的shell
usermod -l    //更改用户登录的名称
usermod -L    //锁定账户
usermod -U    //解锁用户账户

1.4.4 userdel–删除用户账号

当某个账户不需要再使用的时候,我们就可以进行删除


userdel命令
userdel 账号名
userdel -r     //可以同时删除账户宿主目录

1.4.5 用户账号的初始配置文件

新建账户以后。useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件来自于账号模板目录“/etc/skel”,基本都是隐藏文件,查看时应该用ls -a。
.bash_logout:每次退出登录时执行
.bash_profile:每次登录时被执行
.bashrc:每次加载/bin/bash程序时执行,优先级更高

二、 管理组账号

2.1 组账号管理

对于用户来说,对应组账户可分为基本组(私有组)和附加组(共有组)两种类型。每一个账户可以是多个组账户的成员,但是基本组账号只有一个。
组账号的标识就是GID。

2.1.1 组账户文件

组账户相关的配置文件也有两个,分别存在**/etc/group** 和 /etc/gshadow。前者用于保存组账号名称,GID号,组成员等基本信息,后者用于保存组账号的加密密码字符串等信息(但是很少使用到)。
某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用逗号“,”分隔。

2.1.2 添加、删除、修改组账号

groupadd命令--添加组账号,需要指定GID号
例如
groupadd -g 1000 class  //添加一个名为class的组账户,指定GID为1000
groupdel命令--删除组账号
groupdel class    //删除组账号class
gpasswd命令--添加、删除、修改组成员
举例说明
gpasswd tom   	//给tom设置密码
gpasswd -a      //添加、设置、删除成员
gpasswd -a tom1 root     //正在将用户“tom1”加入到“root”组中
gpasswd -d tom1 root     //将用户“tom1”从“root”组中删除

2.2 查询账号信息

在Linux系统中,可以使用几个常用的命令查询工具直观的查看账户文件信息。

2.2.1 id命令

可以查询用户账号的身份标识,快速查看指定用户账号的UID,GID等表示信息。
在这里插入图片描述

2.2.2 groups命令

可以查看指定的用户账号属于哪些组
在这里插入图片描述

2.2.3 finger命令

可以查询指定的账号的登录属性等详细信息,包括登录名称,完整名称,宿主目录,登录shell等。
在这里插入图片描述

2.2.4 w命令

可以查询当前主机中用户登录的情况,列出登录账号名称,所在终端,登录时间,来源地点等信息。
在这里插入图片描述

三、 文件的权限和归属

在Linux文件系统的安全模型中,为系统中的赋予了2个属性,访问权限和文件所有者,简称权限和归属,其中权限包括读取R-4、写入W-2、可执行X-1三种基本类型,归属包括属主、属组。

3.1 查看文件权限及归属

首先我们使用命令ls -ld /etc /etc/passwd 查看文件权限及归属
在这里插入图片描述

文件类型

普通文件(-): 是记录在存储介质上的ASCII或二进制流。
目录文件(d): 是包含若干个文件和子目录的文件。
设备文件(b,c): 代表连接在系统上的物理设备
字符设备(c):又叫raw设备:读写与存储之间没有任何缓冲,一次读写1byte。
                                              如磁带
块设备(b):读写与存储之间有缓冲,一次读写一个block。如终端或磁盘设备。
符号链接(l) :是指向另一个文件的文件。

文件权限说明

读r - 4
允许用户打开、浏览文件内容
写w - 2
允许用户打开、编辑文件
执行x -1
允许用户执行

3.2 设置文件权限及归属

默认文件权限根据umask值设置(默认为0022)
新文件权限为rw-r-r(644)
666 – 022 = rw-r-r

权限掩码umask的作用

  • 控制新建的文件或目录的权限
  • 默认权限去除umask的权限就为新建的文件或者目录的权限

如何修改Umask值呢?

  1. 临时修改 umask 066 (这个066根据的根据的需求定,可以理解成反子网掩码,这个是临时的)
  2. vi /etc/bashrc 最后一样插入umask 066 (这个是永久生效的) [root@localhost tmp]#
    vim /etc/profile

3.2.1 设置文件或目录权限及归属

常用的是700 755 最大权限是777
默认文件夹 755
默认文件   644
一般操作习惯都用数字来描述
chmod命令
chmod [ugoa] [+-=] [rwx] 文件或目录   //(u,g,o,a分别表示属
                                       主,属组,其他用户,所有
                                       用户)(+-=分别表示增加,
                                       去除,设置权限)
chmod nnn 文件或目录	 //nnn表示三位八进制数字,也就是改变权限值

chmod -R	//递归修改指定目录下所有子项的权限
chown命令
chown 属主 文件或目录
chown:属组 文件或目录
chown 属主:属组 文件或目录
-R		//递归修改指定目录下所有文件,子目录的归属

猜你喜欢

转载自blog.csdn.net/kimowinter/article/details/106832887