资讯专栏INFORMATION COLUMN

Linux用户及权限管理

zzzmh / 3113人阅读

摘要:用户的类别及用户标识管理员普通用户系统用户为了能够让后台进程或者服务类型进程以非管理员的身份运行,通常要为此创建多个普通用户,这类用户从不用登陆系统。

一、用户、组

在Linux中利用用户来实现多任务操作,不同的用户可以同时使用系统,并且对系统进行操作;Linux是一个等级森严的系统,不同的用户对系统上文件操作的权限不同,为了方便管理,对用户进行分组,属于不同组的用户对文件的操作的权限也不同。Linux系统利用不同的ID来标识唯一的用户,同样利用不同的ID来标识不同的组。

用户的类别及用户标识UID

    管理员:0
    普通用户
        系统用户:为了能够让后台进程或者服务类型进程以非管理员的身份运行,通常要为此创建多个普通用户,这类用户从不用登陆系统。1-499(CentOS6), 1-999(CentOS7)
        登陆用户:500-60000(CentOS6), 1000-60000(CentOS7)

组类别及组标识GID

    管理员组:0
    普通用户组
        系统组:1-499(CentOS6), 1-999(CentOS7)
        登陆组:500-60000(CentOS6), 1000-60000(CentOS7)
    组类别2
        用户的基本组
        用户的附加组
    组类别3
        私有组:组名同用户名,且只包含一个用户
        公共组:组内包含了多个用户

Linux系统通过名称解析将用户名组名解析成对应的唯一标识,以此来验证用户的身份以及该用户属于哪个组。

和用户相关的文件:

1、/etc/passwd: 用户的信息库

    name:passwd:UID:GID:GESOS:directory:shell
    name: 用户名
    passwd: 可以是加密的密码,也可以是占位符x
    UID:
    GID: 用户所属的主组的ID号
    GESOS: 注释信息
    directory: 用户的家目录
    shell: 用户的默认shell,登录时默认shell程序

2、/etc/passwd: 用户密码

用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段

3、/etc/group: 组的信息库

    group_name:password:GID:user_list    
    user_list: 该组的用户成员,以此组为附加组的用户列表

4、/etc/gpasswd: 组密码

组密码的作用:当一个用户切换其基本组的时候,如果该组不属于用户的附加组,此时,如果该组设定了组密码,那么该用户知道该组的密码时就可以临时将该组切换成其基本组;如果这个组没有设定组密码,那么该用户不能切换至该组。

二、权限

之前说过Linux是一个等级森严的系统,一个文件或者目录对于不同的用户有不同的权限,这个权限主要有r,w,x(可读、可写、可执行),对于文件和目录这三个权限的作用是不同的:

文件:
    r: 可获取文件的数据;
    w: 可修改文件的数据;
    x: 可将文件运行为进程;
目录:
    r: 可使用ls命令获取其下的所有文件列表(不包括详细信息)
    w: 可修改此目录下的文件列表;即创建或删除文件;
    x: 可cd到此目录中,且可使用ls -l来获取所有文件的详细属性信息;
    一个文件或者目录的权限主要是对于该文件或目录的属主、属组以及其他用户来说,利用ls -l可以查看一个文件对于属主、属组和其他用户的权限

那么Liunx系统怎么让一个文件的权限起作用呢?

作为用户来操作一个文件,该用户必须发起一个进程,而这个进程是以该用户的身份运行的,所以系统会查看进程的属主(发起进程的用户)与文件的属主是否相同,如果相同,则应用属主权限;否则,则检查进程的属主是否属于文件的的属组,如果是,则应用属组权限;否则,就只能应用其他用户的权限。此过程为进程对文件访问权限应用模型。

三、用户、组管理相关的命令

1、用户管理命令
useradd, userdel, usermod, passwd

(1) useradd命令:创建用户

    useradd [option] 登陆名
        -u UID: 指定UID;
        -g GROUP: 指定基本组ID,此组事先要存在;
        -G GROUP1[,GROUP2…]: 指明用户所属的附加组,多个组之间用逗号分隔;
        -c COMMENT: 指定用户的注释信息;
        -d HOME_DIR: 以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果实现存在,则不会为用户复制环境配置文件;
        -s SHELL: 指定用户的shell,所有可用的shell存储在/etc/shells文件中;
         -r: 创建系统用户;
        注意:创建用户时的诸多默认选项设定的配置文件为/etc/login.defs

(2) usermod命令:修改用户属性

    usermod [option] username
        -u UIG: 修改用户的UID;
        -g GROUP: 修改用户所属的基本组;
        -G GROUP1[,GROUP2…]: 修改用户所属的附加组;原来的附加组会被覆盖;
        -a: 与-G一同使用,用于为用户追加新的附加组;
        -c COMMENT: 修改注释信息;
        -d HOME_DIR: 修改用户的家目录;用户原有的文件不会被转移至新的位置;
        -m: 与-d一同使用,用于将原有的家目录移动为新的家目录;
        -l NEW_LOGIN: 修改用户名;
        -s SHELL: 修改用户默认shell;
        -L: 锁定指定用户密码;即在用户原来的密码字符串之前添加一个”!”;
        -U: 解锁指定用户密码; 

(3) userdel命令:删除指定用户

    userdel [option] username
        -r: 删除用户时一并删除其家目录;默认不删除用户的家目录;

(4) passwd命令:用户密码管理命令

    passwd: 修改用户自己的密码
    passwd USERNAME: 修改指定用户的密码,但仅root有此权限;
        -l, -u: 锁定和解锁用户;
        -d: 清除指定用户的密码;
        -e DATE: 过期期限,日期;
        -i DAYS: 非活动期限;天数
        -n DAYS: 密码的最短使用期限;
        -x DAYS: 密码的最长使用期限;
        -w DAYS: 密码警告期限;
        --stdin:
            echo “PASSWORD” | passwd –stdin USERNAME

2、组管理命令

groupadd, groupdel, groupmod, gpasswd

(1) groupadd命令: 添加组

    groupadd [option] group_name
        -g GID: 指定GID;默认是上一个组的GID+1
        -r: 创建系统组

(2) groupmod命令:修改组的属性

    groupmod [option] GROUP
        -g GID: 修改GID
        -n new_groupname: 修改组名

(3) groupdel命令:删除组

    groupdel [option] GROUP

(4) gpasswd命令

    gpasswd [option] group  不带选项为组添加密码
        -u USERNAME: 向组中添加用户;
        -d USERNAME: 从组中移除用户;

3、其他命令
newgrp, chage, chsh, id, su, finger, chfn, pwck, grpck

(1) newgrp GROUP: 将GROUP临时切换为用户的基本组

    newgrp [-] [group]
        -: 会模拟用户重新登录以实现重新初始化其工作环境

(2) chage命令:修改用户密码的过期信息

    chage [option] username

(3) chsh命令:修改指定用户的默认shell;

(4) id命令:显示用户真是有效的ID信息

    id [option]… [username]
        -u: 仅显示有效的UID;
        -g: 仅显示用户所属基本组ID;
        -G: 显示用户所属的所有组ID;
        -n: 显示名称而非ID;

(5) su命令:switch user

    登录式切换:会通过读取用户的配置文件来重新初始化
        su – USERNAME
        su -l USERNAME
    非登录式切换:不会读取目标用户的配置文件进行初始化
        su USERNAME
    注意:管理员可无密码切换至其他任何用户;
        su -c ‘COMMAND’: 仅以指定用户的身份运行此处指定的命令;
        su – dabric -c ‘whoami’

(6) finger命令:显示指定用户的信息;

(7) chfn命令:修改用户的信息;

(8) pwck命令:检查指定用户用户密码文件是否异常;

(9) grpck命令:检查指定用户组密码文件是否异常;

四、权限管理相关的命令

1、文件权限管理命令
chmod

chmod命令(用户仅能修改属主为自己的文件)

    chmod [OPTION]… MODE[,MODE]… FILE…
    chmod [OPTION]… OCTAL-MODE FILE…
    chmod [OPTION]… --reference=RFILE FILE…

(1) chmod [OPTION]… MODE[,MODE]… FILE…

    MODE表示法:
        赋权表示法:直接操作一类用户的所有权限位
            u=
            g=
            o=
            a=
        授权表示法:直接操作一类用户的一个权限位r,w,x
            u+,u-
            g+,g-
            o+,o-
            a+,a-

(2) chmod [OPTION]… OCTAL-MODE FILE…

    八进制表示法:

(3) chmod [OPTION]… --reference=RFILE FILE…

    引用参考文件的权限来修改当前文件的权限
    选项:
        -R, --recursive: 递归修改(在授权表示法中常用)

2、文件从属关系管理命令
chown, chgrp(仅管理员可修改文件的属主和属组)

(1) chown命令:

    chown [OPTION]… [OWNER][:[.][GROUP]] FILE…
    chown [OPTION]… --reference=RFILE FILE…
    选项:
        -R, --recursive: 递归修改

(2) chgrp命令:

    chgrp [OPTION]… GROUP FILE…
    chgrp [OPTION]… --reference=RFILE FILE…

3、umask: 文件的权限反向掩码,遮罩码

    文件:666-umask
    目录:777-umask
    注意:之所以文件用666去减,表示文件默认不能拥有执行权限,如过减得的结果中有执行权限,则需要将其加1;
    umask命令:
        umask: 查看当前umask
        umask MASK: 设置umask
    注意:命令的设定仅对当前shell进程有效;
五、扩张命令

1、 install的使用

    install命令:
    install – copy files and set attributes
    单源复制:
        install [OPTION]… [-T] SOURCE DEST
    多源复制:
        install [OPTION]… SOURCE… DIRECTORY
        install [OPTION]… -t DIRECTORY SOURCE…
    创建目录:
        install [OPTION]… -d DIRECTORY…
    常用选项:
        -m, --mode=MODE: 设定目标文件的权限,默认为755
        -o, --ownwer=OWNER: 设定目标文件的属主
        -g, --group=GROUP: 设定目标文件的属组

2、 mktemp的使用

    mktemp命令:创建临时文件或者临时目录
    mktemp [OPTION]… [TEMPLATE]
        -d: 创建临时目录
        mktemp /tmp/mytmp.XXXX
    引用该文件名,将其执行的结果保存在变量中使用
    注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存至变量中;
练习

完成以下任务

新建系统组mariadb, 新建系统用户mariadb,要求其没有家目录,且shell为/sbin/nologin:
尝试root切换至用户,查看其命令提示符;

新建GID为5000的组dabric,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;

新建用户fedora,其家目录为/users/fedora,密码同用户名;

新建用户www,其家目录为/users/www;删除www用户,但保留其家目录;

为用户gentoo和fedora新增附加组dabric;

复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/33559.html

相关文章

  • linux 的常用命令文件权限管理

    摘要:拥有所有文件的读写运行权限。用户组,可以获得临时权限这主要用于修改权限什么的。目录列表文件所属用户及文件所有者变更查看当前目录下的文件加上会显示开头的文件查看当前目录下的文件信息变更文件所有者为变更文件的权限。 一些常规命令 # 切换目录 cd /www/app # 显示当前目录绝对路径 pwd # tab键可以自动补全路径,命令;及提示选择,自动补全、避免输入错误、 tab #...

    王陆宽 评论0 收藏0
  • 详解Linux用户和组的权限管理相关命令

    在Linux中,用户和组的权限管理是很基础,也是很至关重要的。本文,对这个知识点做了一次详细的梳理; [TOC] 一、文件的权限主要针对3类用户定义 owner:属主,简写为:u;group:属组,简写为:g;other:其它,简写为:o; 每个文件针对每类访问者都定义了三种权限: r:Readable:可读 w:Writable:可写 x:eXcutable:可执行 对文件来说以上三种权限的...

    张金宝 评论0 收藏0
  • 详解Linux用户和组的权限管理相关命令

    在Linux中,用户和组的权限管理是很基础,也是很至关重要的。本文,对这个知识点做了一次详细的梳理; [TOC] 一、文件的权限主要针对3类用户定义 owner:属主,简写为:u;group:属组,简写为:g;other:其它,简写为:o; 每个文件针对每类访问者都定义了三种权限: r:Readable:可读 w:Writable:可写 x:eXcutable:可执行 对文件来说以上三种权限的...

    ddongjian0000 评论0 收藏0
  • Linux系列笔记】-------用户账户和组管理详解实用指令补充(四)

    摘要:每个组都有唯一的跟类似,除了,每个组还有唯一的组名,与用户账户类似,组信息也保留系统文件中。及相关资料网友自取。 作者:嵌入式历练者 ID : Eterlove 记下相关笔记,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants! 该文章...

    baiy 评论0 收藏0
  • Linux命令

    摘要:所以用数值表示为所以操作此文件的权限用数值表示为更改权限所属用户所属组其他用户所有用户增加权限减少权限目录名例如有一个文件,权限为将权限值改为,用数值表示为上面的例子可以用数值表示 常用指令 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir ...

    graf 评论0 收藏0

发表评论

0条评论

zzzmh

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<