Linux的用户组与权限用法及说明

2023-12-07 0 905
目录
  • Linux的用户与权限
  • 一.账户管理
    • 1.0 创建用户useradd
    • 2.0 用户账号存储文件
    • 3.0 用户账号文件/etc/shadow
    • 4.0 chage命令
    • 5.0账号的初始设置
    • 6.0 设置更改用户命令passwd
    • 7.0 usermod命令
    • 8.0 删除用户指令/suerdel
  • 二. 用户账号和组账号
    • 1.0 用户账号
    • 2.0 组文件存放位置
    • 3.0 UID 和 GID
    • 4.0 组账号管理
    • 5.0 查询帐号信息
  • 三. 文件/目录的权限和归属
    • 1.0 ‏‎‮‭‪‮‍‬‪‏⁠三种权限
    • 2.0 查看文件/目录的权限和归属
    • 3.0 设置文件和目录的权限chmod
    • 4.0 权限掩码umask
    • 5.0设置目录与文件归属/chown
  • 总结

    Linux的用户与权限

    前言 :

    在Linux操作系统中任何文件都属于某一特定的用户,而任何用户都隶属于至少一个用户组。

    用户是否有权限对某文件进行访问、读写及执行,受到系统严格约束。

    这种清晰、严谨的用户与用户组管理系统在很大程度上保证了Linux系统的安全性。

    一.账户管理

    1.0 创建用户useradd

    作用:useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中

    格式:useradd【选项】用户名

    常用选项说明

    选项说明-c加上备注文字。备注文字会保存在passwd的备注栏位中-d指定用户登入时的起始目录-D变更预设值-e指定帐号的有效期限-f指定在密码过期后多少天即关闭该帐号-g指定用户所属的群组-G指定用户所属的附加群组-m自动建立用户的登入目录-M不要自动建立用户的登入目录-n取消建立以用户名称为名的群组-r建立系统帐号-s指定用户登入后所使用的shell-u指定用户ID

    1.1 示例

    1.1.1添加一般用户

    useradd zhuang

    Linux的用户组与权限用法及说明

    1.1.2.为新添加的用户添加组

    useradd -g root wei

    Linux的用户组与权限用法及说明

    1.1.3.创建一个系统用户

    useradd -r liang1

    Linux的用户组与权限用法及说明

    1.1.4.为新添加的用户指定home目录下

    useradd -d /home/myd liang2

    Linux的用户组与权限用法及说明

    1.1.5.建立用户且定制ID

    useradd liang3 -u 1008

    Linux的用户组与权限用法及说明

    1.1.6.添加一个不能登录的账号

    Linux的用户组与权限用法及说明

    注: useradd命令参数必须是在创建账户时同时输入才有用,创建账户后无法使用useradd更改参数

    2.0 用户账号存储文件

    作用: 保存用户名称,宿主目录,登录Shell等基本信息文件位置:/etc/passwd

    2.1每一行对应一个用户的账号记录

    Linux的用户组与权限用法及说明

    2.2 各个字段含义如下图,他们各自用“:”号隔开

    Linux的用户组与权限用法及说明

    • root:用户名,用户名仅是为了方便用户记忆。Linux系统是通过UID来识别用户身份,分配用户权限。
    • x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。

    补充:

    注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了"x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。

    • 0:用户账号的UID号。
    • 0:所属基本组账号的GID号
    • root:描述性信息,此字段只是用来解释这个用户的意义而已
    • /root:宿主目录,即该用户登录后所在的默认工作目录
    • 注:通常称为用户的主(家)目录。例如:root主目录为/root,普通用户odysee的主目录为/home/ody see
    • /bin/bash录shell等信息,用户完成登录后使用的

    3.0 用户账号文件/etc/shadow

    作用:保存用户的密码,账号有效期等信息

    文件位置: /etc/shadow

    3.1 每一行对应一个用户的密码记录

    如图所示:

    Linux的用户组与权限用法及说明

    /etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

    和/etc/nasswd文件一样,文件中每行代表一个用户,同样使用":"作为分隔符,不同之处在于,每行用户信息被划分为9个字段

    • 第一列:账户名
    • 第二列:存放真正加密的密码,采用SHA512散列算法,更加安全加密原来用MD5或DES“!!”和“*”表示没有密码不能登陆,新创建用户也是“!!”,如果密码前面显示双感叹号表示该账户被销定了
    • 第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是Linux的诞生日,date -d"1970-01-01 18983 days"可以查看哪一天改过
    • 第四列:多久之后才可以修改密码,如果是0,则密码可以随时修改最小修改间隔时间,也就是说该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0刚随时修改密码,如果是20则代表密码修改后20天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的
    • 第五列:密码有效期,默认99999(273年),表示永久生效
    • 第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出"修改密码"的警告信息
    • 第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0则代表密码过期后立即失效;如果是-1则代表密码永远不会失效
    • 第八列:账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间
    • 第九列:保留,未使用

    4.0 chage命令

    作用:修改账号密码的有效期,针对目前系统已经存在的用户

    格式:chage 【选项】用户名

    常用选项

    选项说明-m密码可更改的最小天数,为零代表任何时候都可以更改密码-M密码保持有效的最大天数。chage -M 20 root-W用户密码到期前,收到警告信息的天数-E账户到期的日期,过了这天,此账号将不可用-d上一次更改的日期-i停滞日期,如果一个密码已过期这些天,那么此账号将不可用-l列出当前的设置,由非特权用户来确定他们的密码或账号何时过期

    4.1 示例:

    设置用户liang2将在2022.06.25号失效(不可登录)

    设置账户liang2最后一次修改密码时间为2022.03.30

    Linux的用户组与权限用法及说明

    4.2 小结:

    • 第三个字段为:密码最后一次修改的时间 (chage -d)
    • 第四个字段为:密码最小修改间隔时间 (chage -m)
    • 第五个字段为:密码的有效期 (chage -M)
    • 第六个字段为:密码需要变更前的警告天数 (chage -W)
    • 第七个字段为:密码过期后的宽限天数 (chage -I)
    • 第八个字段为:账号失效时间 (chage -E)

    5.0账号的初始设置

    5.1文件来源

    新建用户帐号时,从 /etc/skel 目录中复制而来,比如默认bin/bash,默认家目录

    Linux的用户组与权限用法及说明

    主要的用户初始配置文件 (对用户有效)

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

    PS:

    1.修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;

    2.修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效;

    6.0 设置更改用户命令passwd

    作用:Linux passwd命令用来更改使用者的密码

    格式 :passwd 【选项】用户名

    常用选项及说明

    选项说明-d清空指定用户的密码,仅使用用户名即可登录系统-l锁定用户账户-S查看用户账户的状态(是否被锁定)-u解锁用户账户-i口令过期后多少天停用账户-g修改群组密码-x指定口令最长存活期-k更新只能发送在过期之后-w口令要到期提前警告的天数-f强迫用户下次登录时必须修改口令

    6.1 示例:

    创建账户liang2,并且设置密码

    Linux的用户组与权限用法及说明

    6.2 扩展:

    在实际生产中为了方便系统管理,passwd命令提供了“–stdin”选项,用于批量给用户设置密码

    Linux的用户组与权限用法及说明

    7.0 usermod命令

    作用:Linux usermod命令用于修改用户帐号。

    usermod可用来修改用户帐号的各项设定

    格式:usermod【选项】用户名

    常用选项及说明

    选项参数-c修改用户帐号的备注文字。-d修改用户登入时的目录-e修改帐号的有效期限-f修改在密码过期后多少天即关闭该帐号-g修改用户所属的群组-G修改用户所属的附加群组-l修改用户帐号名称-L锁定用户密码,使密码无效-s修改用户登入后所使用的shell-u修改用户ID-U解除密码锁定

    7.1 示例:

    锁定liang2账户密码,使密码失效

    Linux的用户组与权限用法及说明

    初始无“!”,锁定后出现“!”密码不可用,解锁后“!”消失密码可用

    Linux的用户组与权限用法及说明

    Linux的用户组与权限用法及说明

    注: usermod 更改用户参数只能在用户设定好之后使用

    8.0 删除用户指令/suerdel

    作用: 删除无用用户信息

    格式: userdel [-r] 用户名

    添加-r选项时, 表示连用户的宿主目录一并删除

    8.1 示例:

    删除用户zhu

    Linux的用户组与权限用法及说明

    二. 用户账号和组账号

    Linux基于用户身份对资源访问进行控制

    1.0 用户账号

    超级用户:root用户是Linux操作系统中默认的超级用户账号,在本机中权限最高,只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事物处理建议只使用普通账号。root拥有对系统最高的管理权限 ID=0

    普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限

    程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。如:ftp,apache,bin,daemon,ftp,mail等

    组账号

    • 基本组(私有组):基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用的基本组(或私有组);
    • 附加组(公共组):若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)

    2.0 组文件存放位置

    /etc/group:保存组帐号基本信息

    /etc/gshadow:保存组帐号的密码信息

    Linux的用户组与权限用法及说明

    Linux的用户组与权限用法及说明

    3.0 UID 和 GID

    UID (User IDentity ,用户标识号):

    • 每个用户的身份标识,类似于每个人的身份证号码
    • 管理员用户:root:0
    • 系统用户: 1-999(CentOS7),1-499(CentOS5,6)

    GID (Group IDentify ,组标识号):

    • 管理员组:root:0
    • 系统组:1-499(CentOS5,6),1-999(CentOS7)
    • 普通组:500+(CentOS5,6),1000+(CentOS7)
    • 默认行为当你创建一个新用户时会自动创建一个和之同名的主组

    3.1 如何查看用户的UID ,GID和组

    示例:查看用户liang的UID,GID和组id liang

    Linux的用户组与权限用法及说明

    **小结:**用户和组的关系:用户是员工,组是职位,人只有一个,但可以身兼数职

    4.0 组账号管理

    4.1 添加组账号命令groupadd

    格式: groupadd【-g GID】组账号名

    示例:

    创建GID为1009的chirou

    Linux的用户组与权限用法及说明

    4.2 扩展:

    1.检索root组包含那些用户

    Linux的用户组与权限用法及说明

    2.检索那些组包含root用户

    Linux的用户组与权限用法及说明

    4.3 添加,设置,删除组成员/gpasswd

    格式: gpasswd 【选项】源账户 目标组

    常用选项说明

    选项说明-a添加用户到组-d从组中删除用户-A指定用户管理员-M指定组成员和-A差不多-r删除密码-R限制用户登入组,只有组中成员才可以用newgrp加入该组

    4.3.1 示例:

    将用户liang2加入到组chirou中

    Linux的用户组与权限用法及说明

    将liang2从chirou组中删除

    Linux的用户组与权限用法及说明

    5.0 查询帐号信息

    5.1 finger命令

    作用:查询用户的帐号的详细信息

    格式:finger 【用户名】

    示例:查询用户liang2的信息

    Linux的用户组与权限用法及说明

    5.2 w,who.users命令

    作用:查询已登录到主机的用户命令

    示例:

    5.2.1 w

    Linux的用户组与权限用法及说明

    通常使用tty来简称各种类型的终端设备,Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换。

    按Ctr1+A1t+F2登陆,执行w命令,查看使用的终端就是ttv2

    • User: 登录用户名
    • TTY: 登录后系统分配的终端号
    • From: 远程主机名,即从哪登录的 loqin@:何时登录
    • IDLE: 用户空闲时间。这是个计时器,一日用户执行任何操作,改计时器就会被重置。
    • JCPU: 和终端连接的所有进程占用时间,包括当前正在运行的后台作业占用时间
    • PCPU: 当前进程所占用时间
    • WHAT: 当前正在运行进程的命令行
    • pts: 说明是用远程工具连接的,比如:xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

    5.2.2 who

    Linux的用户组与权限用法及说明

    5.2.3 users

    Linux的用户组与权限用法及说明

    三. 文件/目录的权限和归属

    1.0 ‏‎‮‭‪‮‍‬‪‏⁠三种权限

    ‏‎‮‭‪‮‍‬‪‏⁠‌‫‏‭‮‫‏‫‌​‏‪‎访问权限

    • 读取r:允许查看文件内容、显示目录列表
    • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
    • 可执行x:允许运行程序、切换目录归属

    属主(所有权):

    • 拥有该文件或目录的用户帐号属组:拥有该文件或目录的组帐号

    2.0 查看文件/目录的权限和归属

    示例:

    ls-l 文件

    Linux的用户组与权限用法及说明

    结构如下

    Linux的用户组与权限用法及说明

    Linux的用户组与权限用法及说明

    3.0 设置文件和目录的权限chmod

    chmod命令格式:

    chmod 【ugoa】 【±=】 【rwx】文件或目录

    chmod nnn 文件或目录

    符号含义

    符号含义u属主g属组o其他用户a所有用户r读w写x运行权限+增加-去除=设置权限nnn3位八进制数

    Linux的用户组与权限用法及说明

    3.1

    示例:

    创建77.txt文件

    Linux的用户组与权限用法及说明

    3.1.1.将文件77.txt去除所有人不可读所有者可写权限:chmod ugo-r 77.txt

    Linux的用户组与权限用法及说明

    3.1.2.设置所有人可读 所有者可写:chmod a+r 77.txt

    Linux的用户组与权限用法及说明

    3.1.3.文件拥有者添加可执行操作:chmod u+x 77.txt

    Linux的用户组与权限用法及说明

    3.1.4.所有人只可读 chmod 444 77.txt

    Linux的用户组与权限用法及说明

    常用选项

    -R:递归修改指定目录下所有子项的权限

    4.0 权限掩码umask

    4.1 umask作用

    1.控制新建的文件或者目录的权限

    2.默认权限去除umask的权限为新建的文件夹或者目录的权限

    • umask设置: umask 002
    • umask查看:umask

    4.2示例:

    查看当前目录极限掩码umask

    Linux的用户组与权限用法及说明

    新建目录laozi权限为所有人可读可写可执行umask 000mkdir laozi

    Linux的用户组与权限用法及说明

    **注:**若想用极限掩码创建目录权限则需要先设置极限掩码,然后再创建目录才能达到要求

    5.0设置目录与文件归属/chown

    Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

    Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

    chown 需要超级用户 root 的权限才能执行此命令。

    只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

    使用权限 : root

    格式:chown 【选项】目的属组 源目录

    示例:将wd 目录属组改到root chown root wd

    Linux的用户组与权限用法及说明

    总结

    用户组与权限之间关系十分紧密,在日常工作中,root权限不可能随意给予别人,但是有的文件又必须给别人更改读写的权利,所以这时候我们就需要设置组和目录权限

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 Linux服务器 Linux的用户组与权限用法及说明 https://www.u-9.cn/server/linux/119442.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务