Linux 用户与组

2021-11-22

账号和权限管理

  • 管理用户和组账号

    • 用户和组账号概述
    • 用户账号管理
    • 组账号管理
    • 查询账号信息
  • 管理目录和文件属性

    • 查看目录或文件属性
    • 设置目录或文件的权限
    • 设置目录或文件的归属

用户账号

  • 超级用户
  • 普通用户
  • 程序用户

组账号

  • 基本组(私有组)
  • 附加组(公共组)

UID和GID

  • UID(User IDentity,用户标识号)
  • GID(group IDentify,组标识号)

用户账号初始配置文件

文件来源

新建用户账号时,从/etc/skel/目录复制而来

主要的用户初始配置文件

./bashrc:是交互式shell的初始化文件,默认的shell初始化为bash

./bash_profile:用户环境变量文件,用户在登录到系统时被读取,它所包含的命令被bash执行。

./bash_logout:每次登录shell退出时被读取并执行

passwd命令

用途:更改用户密码

语法:passwd [选项] 用户名

选项:

  • -d 清空密码
  • -l 锁定用户
  • -S 查看用户锁定状态

/etc/shadow 中!!表示用户被锁定,禁止登录

usermod命令

用途:改变用户属性,与usreradd无异,没有-M选项。多出来了-L和-U锁定和解锁账号

语法:usermod [选项] 用户名

-l:用户登录

-L:用户锁定

-U:解锁用户账号

-m 移动家目录

修改家目录,先该属性,再把属于该账号的原家目录搬走

userdel命令

语法:userdel [-r] 用户名

-r 不保留宿主文件目录,不加则保留宿主文件

/etc/group:查各组内成员

/etc/gpshadow:保存组账号的密码信息

添加组账号

groupadd命令

用途:添加一个新的用户组

语法:groupadd [选项] 用户组名

选项:

-g 指定组GID

-r 创建系统群组

groupdel命令

用途:删除一个用户组

语法:groupdel 用户组名

gpasswd命令

用途:将用户加入到用户组中

语法:gpasswd [选项] 用户名 用户组名

选项:

-a :将单个用户加入到组中

-d :将用户单独剔除组

-M:刷新组成员列表

-M 用法:gpasswd -M 对象1,对象2,对象3 用户组名 不在列表中用户组不存在

-a用法:gpasswd -a 对象1 用户组 将对象1加入用户组中

gpasswd:将用户加入组,-a 选项将单个用户加入组,-d 选项单独剔除组,-M 选项刷新组成员列表,不保留原有组成员

例子:

将zhangsan加入到root组

gpasswd -a zhangsan root

usermod -G root zhangsan

将zhangsan从root组剔除

gpasswd -d zhangsan root

让root组中只保留test和test2账户

gpasswd -M test,test2 root

groupdel 删除组

linux中的权限ACE

r:读取权限,对于文件表示有读取文件内容的权限,对于目录表示有查看目录检索权限(列出目录下的内容,例如ls命令)

w:写入权限,对于文件表示有修改文件内容,修改文件名,删除文件等权限,对目录表示有在目录下创建新对象,删除对象,修改对象属性等权限。

x:执行权限,对文件表示可以将文件的代码调入内存运行,对于目录表示有切换到当前目录的权限(使用cd命令)

归属ACL

属主:拥有该文件或目录的用户账户

属组:拥有该文件或目录的组账号

-rw-r--r-- 1 root root 0 7月 27 20:49 aaa

chmod命令

用途:修改文件或目录的权限

语法1:chmod augo+-=rwx 文件或目录

语法2:chmod nnn 目标对象

方法一:

chmod ugoa+-=rwx 目标对象

u属主 g属组 o其他 a所有用户

+增加权限 -删除权限 =刷新权限

方法二:

chmod nnn 目标对象

练习题:当前权限为-r-xr--r--修改为-rwxrw-r--

方法1:chmod ug+w 目标对象

方法2:chmod 764 目标对象

附加选项-R 递归修改(影响子目录和子文件权限)

chown命令(需要root权限)

用途:修改属主和属组

语法:

chown xxxx:yyy 对象 将对象属主改为xxx属组为yyy

chown xxxx: 对象 仅修改属主为xxx

chown :yyy 对象 仅修改属组为yyy

选项:

-c 显示更改部分的信息

-f 忽略错误信息

-h 修复符号链接

-v 显示详细的处理信息

附加选项-R 递归修改(影响子目录和子文件权限)

chattr命令

用途:修改文件或目录的底层属性

语法:chattr +/-/=[属性] 文件或目录

属性:

  • a :让文件或目录进共附加用途,不可删除
  • i:不得任意更改文件或目录,不可追加,不可修改,不可删除
  • b:不更新文件或目录的最后存取时间
  • c:将文件或目录压缩后存放
  • d:将文件或目录排除在倾倒操作之外
  • u:预防删除文件或目录

lsattr命令

用途:查看文件或目录得底层属性

语法:lsattr [选项] 文件或目录

选项:

-a 显示所有文件和目录,包括以"." 为名称开头的额外内建,现行目录"." 与上层目录".."

-d 显示,目录名称,而非其内容

-R 递归处理,将指定目录下得所有文件及子目录一并处理

"-"代表控制位没有附加任何底层属性

SET位,有SUID和SGID。可以让其他用户执行该文件时临时获得属主或属组权限。让被执行参数认为是root账户在执行该命令,

权限字符为"s"

用法“chmod o+s 对象

粘滞位:让多个用户在用一个设置了开放权限得目录中只可以修改属于自己的文件,防止用户互相修改其他属性属主的对象,有粘滞位,用户只能操作自己的文件或目录

权限字符为"t"

用法:chmod o+t 对象

问题汇总:当文件底层属性和权限修改时,进行usermod修改用户的一些属性无法进行修改

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容