Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)

一. 概述

  linux安全系统的核心是用户账户。 创建用户时会分配用户ID(UID)。 UID是唯一的,但在登录系统时不是用UID,而是用登录名。在讲文件权限之之前,先了解下linux是怎样处理用户账户的。以及用户账户需要的文件和工具,这样处理文件权限问题时,就知道如何使用它们了。

  1.1  /etc/passwd用户文件
    /etc/passwd 是用来将用户的登录名,匹配到对应的UID上。它包含了一些与用户有关的信息。下面截取二个片断。如下图所示:
        
        
    root用户账户是linux系统管理员,固定分配给它的UID是0。 上面linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真正的用户。它们叫作系统账户,是系统上运行各种服务进程访问资源用的特殊账户。root用户UID是0,mysql用户的UID是998。如下图所示:
        
    linux系统账户预留了500以下的UID值。有些服务甚至要用特定的UID才能正常工作。在/etc/passwd文件中冒号分隔的字段包含以下信息:

            mysql:x:998:1000::/home/mysql:/bin/bash

登录用户名


例如:mysql


用户密码


x (密码字段都被设置成了x)


用户UID


998


用户的组ID (GID)


I000


用户的文本描述


mysql 用户描述为空


用户的HOME目录位置


/home/mysql


用户的默认shell


/bin/bash

  

  1.2  /etc/shadow 用户文件

    /etc/shadow文件对linux系统密码管理提供了更多的控制。只有root用户才能访问/etc/shadow文件。比起/etc/passwd安全许多,文件内容如下图所示:
        
    比如让mysql 用户来查看该文件,是没有这个权限的。
        
    下是copy出来的root用户账户信息:

root:$6$BSeXl2xuiNYlDwkO$X4dfd8A97XHRO9S.9KNqL/bRX4B33tIAzOu1dwiPVLDS42YqwaY8JrwYAExGPuvc42yhnMmO28VRMP.qVjYDY1::0:99999:7:::

    每条记录都有9个字段,字符串以冒号分隔的字段信息如下:第一个字段:登录名。 第二个字段:加密后的密码。其它字段以后在解读。使用/etc/shadow,可以控制用户多久更改一次密码,以及什么时候禁用该用户账户(在其它字段上设置这些功能)。

 

二. 用户工具管理

  2.1 useradd 模板介绍

    在linux系统中添加新用户的工具是useradd, 可以一次性创建新用户账户及设置用户HOME目录结构。useradd命令使用系统的默认值以及命令行参数来设置用户账户。系统默认值被设置在/etc/default/useradd文件中,可以定位到/etc/default/useradd文件,修改默认值。使用useradd       -D 选项查看这些默认值。如下图所示:
        
    如果用户不指定具体的值,使用useradd添加用户时就会使用这些默认值。默认值解释如下:


GROUP=100


新用户会添加到GID为100的公共组中


HOME=/home


新用户的HOME目录将位于/home/loginname下


INACTIVE=-1


新用户密码在过期后不会被禁用


EXPIRE=


新用户未设置过期日期


SHELL=/bin/bash


新用户将bash shell作为默认shell


SKEL=/etc/skel


系统会将/etc/skel目录下的内容复制到用户的HOME目录下


CREATE_MAIL_SPOOL=yes


系统为用户账户在mail目录下创建一个用于接收邮件的文件

    SKEL参数是指:useradd命令允许管理员创建一份默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板。这样就能自动在每个新用户的HOME目录里放置默认的系统文件(上篇讲到的系统环境变量位置)。新用户HOME目录下的系统文件模板。如下图所示:
        
    在上篇中,知道了.bashrc, .bash_profile这些文件都是bash shell的标准启动文件。系统会自动将这些默认文件复制到你创建的每个用户HOME目录下。我的linux系统在很久前创建了一个mysql用户,下面去/home/mysql下检查有没有这些标准启动文件。
        
    上图告诉我们,mysql目录不存在,这是因为创建用户默认情况下,useradd命令不会创建HOME目录,需要使用useradd -m 命令来创建HOME目录。我推测当mysql用户没有这些bash shell标准启动文件时,会去继承root用户下的标识启动文件。

   2.2  useradd -m
    上面mysql用户没有指定HOME目录,下面是创建一个新test用户,并使用参数m来创建HOME目录,并将/etc/skel目录中的文件复制了过来,/home/test 下面就有了标准启动文件。如下图所示:
        
    再次查看passwd用户列表,多出来一个test用户,创建的这个test除了指定了HOME目录,其它参数都是使用的默认值(没有指定组,密码,过期时间)。如下图所示:
        
    下面是切换到test用户下,如下图所示:
        

  2.3 useradd 命令参数
    要想在创建用户时改变默认值或默认行为,可以使用命令参数,下面列出一些常用参数


参数


描述


-c comment


给新用户添加备注


-d home_dir


为主目录指定一个名字(如果不想用登录名作为主目录名)


-e expire_date


用YYYY-MM-DD格式指定一个账户过期日期


-f inactive_days


指定这个账户密码过期后多少天,这个账户被禁用;0表示密码一过期就立即禁用, 1表示禁用这个功能


-g initial_group


指定用户登录组GID


-m


创建用户HOME目录


-r


创建系统账户


-p passwd


指定默认密码

    当创建用户账户时,如果总需要修改某个值的话,最好还是修改一下系统的默认值,修改(useradd模板),也可以使用"useradd -D 默认参数"来修改模板,这里就不再介绍useradd默认值参数。

原文地址:https://www.cnblogs.com/MrHSR/p/9670010.html

时间: 2024-08-07 18:13:43

Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)的相关文章

Linux编程 17 文件权限(权限设置chmod,改变文件属主属组关系chown,chgrp)

一. 概述 如果创建了一个目录或文件,有时会需要改变它的安全性设置,在linux系统上有一些工具可以完成这任务,包括使用chmod命令改变已有默认权限,分别能对属主,属组,其它用户的权限的控制分别以读取.写入.执行3种权限来区分设置,还有使用chown,chgrp来改变默认属主属组关系. 1 . 改变权限 chmod chmod命令用来改变文件和目录安全性设置,该命令的三种用法格式如下: model模式参数可以使用八进制或符号模式进行安全性设置,八进制模式设置非常直观,直接用期望赋予文件的标准3

深入理解Linux中的文件权限

Linux中文件权限 Linux中每个文件都有一个特定的拥有者(一般是创建它的用户)和所属用户组,这是它的固有属性.文件可以利用这两个固有属性来规定它的拥有者或者是所属用户组内的用户是否拥有对它的访问权利,即读.写和执行的权利.此外为了提高适应性,文件还规定了其他不相关的人等的访问权限,也就是第三个固有属性.这三个固有属性和三个权利合起来,就构成了文件针对系统中所有用户的访问控制,也就构成了Linux中的文件权限体系. 1.1 使用ls命令的-l选项查看root家目录,结果如下 [[email 

Linux入门之文件权限

Linux入门之文件权限 不同的文件系统下,对于文件都会有文件有各种权限的分配机制,而Linux系统中的文件系统对于文件权限的管理机制也是有多种类划分的,权限属性为文件的元数据,及inode表中   简单解析一个文件的元数据 下面用ls  -l命令来列出一个文件的常见元数据 [[email protected] ~]# ls -l install.log -rw-r--r--. 1 root root 44298 Jul 20 17:11 install.log 解析元数据: 如果把instal

Linux基础之文件权限详解

Linux中对于权限的制定虽然没有Windows的那么精细,但是如果你了解并掌握Linux中文件的权限知识,也可以像Windows那样对权限做到精确配置. Linux中的文件权限是什么? 如何查看Linux中的文件权限 [[email protected] test]# ll -d /test/ drwxr-xr-x. 2 root root 52 8月   7 20:18 /test/ 上面的rwxr-xr-x即为文件的权限位共九位.下面分别对其进行介绍.                 rw

linux目录或文件权限

linux目录或文件权限 字符 解析drwxr-xr-x 通过 ls -l 可以查看 目录 或 文件 的权限时间 大小 等信息, 权限 占据10 个字符,eg: "drwxrwxrwx" 格式: "目录标记" + “所有者操作权限” + “所有者所在组成员操作权限” + “其他人操作权限” 1.“目录标记”:  如果是目录 ‘d’ 否则 ‘-’ 2.“所有者操作权限” 和 “所有者所在组成员操作权限” 和 “其他人操作权限” 每段都站3位分别 可读(r)+可写(w)

Linux如何修改文件权限

Linux如何修改文件权限 修改文件权限前,需要了解一下权限中的”rwx”与数字的对应关系,其中r=4,w=2,x=1. 例如:”drwxr-xr-x”,第一个”d”是代表文件夹,这里不用考虑,后面九个字符,每三个一组相加: rwx=4+2+1=7 r-x=4+0+1=5 那么drwxr-xr-x = 755 同理-rwxrw-rw- = 766 (rw-就是 4+2+0=6) 可以通过”chmod”来修改文件属性中的权限字段的值,请看下面的实例: 1 /*新建一个文件*/ 2 [[email 

Linux入门:文件权限、用户、用户组(比较清楚)

单个文件名或目录名长度不超过255字符: 文件或目录的绝对路径长度不超过4096字符: 一.文件所有者与用户组 一个文件有很多属性,包括文件类型.文件权限.文件隐藏权限.文件所有者.用户组.文件大小.创建日期.修改日期.访问日期等,比如下面是/etc/inittab文件的属性:   1.文件类型   (1)d:目录:find / -type d 查询: (2)-:一般文件:find / -type f 查询: (3)l:链接文件:find / -type l 查询: (4)b:块设备,即存储设备

linux:用户和组文件解释(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)

一.用户文件:/etc/passwd [[email protected] ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash  1   2 3 4  5     6      7  |   | | |  |     |      |  |   | | |  |     |      |--用户默认使用的SHELL  |   | | |  |     |--用户家目录  |   | | |  |--用户finger信息(注释信息)  |   |

Linux基础:文件权限

用户与用户组 Linux是一个多用户.多任务的操作系统,为了让各个用户具有较保密的文件数据,因此未见的权限管理就比较重要了.Linux的文件所有权和访问授权是与用户id和组密切相关的.Linux 一般将文件可存取访问的身份分为3个类别,分别是owner, group, others,且3中身份各有 read, write, execute等权限. 当用户登录系统时,就会进行身份验证.成功登录系统后的用户,都携带用户身份(User ID, UID)以及组身份(Group ID, GID),当需要访