账号和权限管理

管理用户账号和组账号

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

用户账号:
超级用户:root,在系统中具有最高权限;
普通用户:由root或其他管理员创建的用户,默认只具有低权限;
程序用户:用于给用用程序运行的低权限用户,一般不允许登录系统。

组账户:
基本组:用户加入的第一组;
附加组:用户额外加入的除了基本组以外的组。

UID:用户账号ID
GID:组账号ID

root的UID和GID都固定为0

centos7以前 从centos7开始
程序用户默认的UID/GID范围 1~499 1~999
普通用户默认的UID/GID范围 500~60000 1000~60000

(2)用户账号文件/etc/passwd、/etc/shadow

用户账号文件/etc/passwd

保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录

七个字段
用户名:x密码占位符:UID:GID:用户说明:家目录:登录shell

允许登录系统/bin/bash 不允许登录系统/sbin/nologin /bin/false

用户账号文件/etc/shadow

保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录

九个字段
用户名:密码字符串:上一次修改密码的时间:密码最短有限期:密码最长有限期:密码过期提前告警的时间:密码过期禁用用户的时间:账号失效的时间:空

*注:从1970.1.1开始算起;默认为0不限制;默认为99999永不过期;默认为7

(1)添加用户账号-useradd

useradd [选项]... 用户名

常用选项
-u 指定UID
-g 基本组名或GID
-G 附加组名或GID
-d 指定家目录
-s 指定登录shell
-M 不建立家目录,不可与-d同时使用
-e YYYY-MM-DD 指定账号失效日期

*注:useradd=adduser

在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。

(2)设置/更改用户口令(修改用户密码)-passwd

passwd [选项]... 用户名

常用选项
-d 清空用户密码
-l 锁定/禁用用户
-u 解锁用户
-S 查看锁定状态

*注:你指定用户名时,修改当前账号的密码
修改用户密码两种方法
echo 密码 | passwd --stdin 用户名
echo 用户名:密码 | chpaasswd

(3)修改用户账号的属性(修改已存在的用户)-usermod

usermod 用户名 [选项]... 新用户

常用选项
-l 修改用户名
-L 锁定/禁用用户
-U 解锁用户
-u 指定UID
-g 基本组名或GID
-G 附加组名或GID
-d 指定家目录
-s 指定登录shell
-e YYYY-MM-DD 指定账号失效日期

usermod 用户名 -l 新用户名 #修改用户名

(4)删除用户-userdel

userdel [-r] 用户名
*注:-r代表删除用户时,家目录也会一起删除

(5)用户账号的初始配置文件

文件来源:
useradd命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件;这些文件来自于账号模版目录/etc/skel/,基本上都是隐藏文件。

主要的用户初始配置文件:
~/.bash_profile
~/.bashrc
~/.bash_logout

系统环境初始化配置文件:
/etc/profile /etc/bashrc #对所有用户有效

用户环境初始化配置文件:
~/.bash_profile ~/.bashrc ~/.bash_logout #只对当前用户有效

设置用户每次登录时要执行的命令:
/etc/profile ~/.bash_profile

设置切换shell环境时(包括登录系统时)要执行的命令:
/etc/bashrc ~/.bashrc

设置退出登录或shell环境时执行的命令:
~/.bash_logout

(3)组账号文件

与用户账号文件相类似:
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息

/etc/group 有4个字段:
组账号名:x占位符:GID号:组账号成员

(1)添加组账号-groupadd

groupadd [-g GID] 组账号名

(2)添加/删除组成员-gpasswd

gpasswd 组名 [选项].. 用户名名

常用选项
-a 添加组成员
-d 删除组成员
-M 用户1,用户2,... 重新定义(覆盖原来成员)组成员列表,以逗号分隔

(3)删除组账号-groupdel

groupdel 组账号名

(4)查询账号组信息-groups

(1)查询用户组的信息

proup 用户名

查询用户身份标识
id 用户名

(2)查询用户账号的登录属性-finger

finger [用户名]
*注:需要先进行安装finger软件包

查询登录系统用户:
w、who、users

管理目录和文件的属性

(1)查看文件/目录的权限和归属

(2)设置文件和目录的权限-chmod

①chmod [ugoa] [+-=] [rwx]

*注:u、g、o、a分别表示:属主、属组、其他用户、所有用户;
+、-、=分别表示:增加、去除、重新定义权限;
r、w、x分别表示:读、写、执行。

②chmod [-R] XXX 文件/目录

*注:#-R表示递归修改目录及其所有子目录和文件权限;
XXX数字表示:rwx的数字表示421

(3)设置文件和目录的归属-chown

chown [-R] 属主 文件/目录 #修改属主
chown [-R] :属组 文件/目录 #修改属组
chown [-R] 属主:属组 文件/目录 (chown [-R] 属主.属组 文件/目录) #修改属主和属组

(4)设置目录和文件的默认权限-umask

umask作用:
控制新建立的文件或者目录的权限;默认权限去除umask的权限为新建的文件或者目录的权限。

设置默认权限: umask XXX
查询umask的值: umask

文件的最大默认权限为 6 ; 目录的最大默认为 7
新建的文件/目录的默认权限 = 最大默认权限 - umask值
文件666-022=644
目录777-022=755

posted @   无敌小鲁班  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示