Linux-账号和权限管理
发布日期:2021-05-10 03:45:52 浏览次数:22 分类:精选文章

本文共 2804 字,大约阅读时间需要 9 分钟。


Linux 账号和权限管理

1. 用户账号概述

在Linux系统中,用户账号分为以下几类:

  • 超级用户(root):是Linux系统中默认的超级用户账号,对本主机拥有最高权限。系统中只有一个超级用户账号,通常由系统管理员负责管理。
  • 普通用户:由超级用户或其他具有管理员权限的用户创建。普通用户的权限会受到限制,一般只能读写自己的宿主目录。
  • 程序用户:安装Linux操作系统或某些应用程序时,会自动创建一些低权限用户账号。这些用户通常不能登录系统,例如bindaemonftpmail等。

组账号

组账号分为基本组附加组

  • 基本组:创建用户时指定的组,记录在/etc/passwd文件的第4个字段(GID)。
  • 附加组:用户可以加入多个附加组,附加组的名称或GID号需要预先存在。

UID和GID

  • UID(User ID):用户账号的标识号,root账号的UID为0。
  • GID(Group ID):组账号的标识号,root账号的GID也为0。
  • 程序用户:UID和GID号默认为1~499。
  • 普通用户:UID和GID号默认为500~60000。

2. 用户账号文件 /etc/passwd

保存用户的基本信息,每行对应一个用户账号,格式为:

username:x:UID:GID:full name:home directory:shell
  • x:密码占位符。
  • UID:用户身份标识号。
  • GID:用户所属基本组的组标识号。
  • full name:用户的全名。
  • home directory:用户的宿主目录。
  • shell:用户登录的Shell程序路径。

3. 密码文件 /etc/shadow

保存用户的密码信息及其他安全相关属性,每行对应一个用户账号,格式为:

username:Encrypted password:latest=F transcend:GID表示密码过期时间等信息

默认只有root用户可以读取该文件,普通用户无法访问。


4. 添加用户账号 useradd

命令语法:

useradd [选项]... username

常用选项:

  • -u UID:指定用户的UID号。
  • -d dir:指定用户的宿主目录。
  • -e:指定用户账户失效时间。
  • -g GID或组名:指定用户的基本组。
  • -G GID或组名:指定用户的附加组。
  • -M:不创建宿主目录。
  • -s shell:指定用户的登录Shell程序。

示例:

useradd -d /ftphome/mike -g ftpuser -G root mike

添加用户后,用户账号信息会被添加到/etc/passwd/etc/shadow等文件中。


5. 设置用户密码 passwd

命令语法:

passwd [选项]... username

常用选项:

  • -d:清空用户密码。
  • -l:锁定用户账号。
  • -S:查询用户账号状态。
  • -u:解锁用户账号。

示例:

echo "新密码" | passwd --stdin username

6. 修改用户账号属性 usermod

命令语法:

usermod [选项]... username

常用选项:

  • -l:更改用户登录名称。
  • -s:指定用户的登录Shell程序(如/sbin/nologin表示不可登录)。
  • -d:修改用户的宿主目录。
  • -g-G-e:修改用户的基本组、附加组及账户失效时间。

示例:

usermod -l zhangsan1 zhangsan

7. 删除用户账号 userdel

命令语法:

userdel [-r] username

选项:

  • -r:删除用户的宿主目录及相关文件。

示例:

userdel -r zs

8. 用户初始配置文件

用户登录后会自动读取以下配置文件:

  • ~/.bashrc:设置用户登录时自动执行的环境变量和命令。
  • ~/.bash_profile:设置用户每次登录时自动执行的环境变量和命令。
  • ~/.logout:设置用户退出登录时自动执行的命令。

9. 组账号文件 /etc/group/etc/gshadow

  • /etc/group:保存组账号的基本信息,格式为:
    groupname:x:GID: username1,username2,...
  • /etc/gshadow:保存组账号的密码信息,格式与/etc/shadow类似。

10. 添加组账号 groupadd

命令语法:

groupadd [-g GID] groupname

选项:

  • -g GID:指定组的GID号。

示例:

groupadd -g 1000 market

11. 添加/删除组成员 gpasswd

命令语法:

gpasswd [选项]... groupname

常用选项:

  • -a:添加一个用户到组中。
  • -d:删除一个用户从组中。
  • -M:指定组成员列表,用户用逗号分隔。

示例:

gpasswd -a user market

12. 删除组账号 groupdel

命令语法:

groupdel groupname

示例:

groupdel market

13. 查询用户信息

  • groups命令:查询用户所属的组。
    groups username
  • id命令:查询用户UID号。
    id username
  • finger命令:查询用户详细登录属性。
    finger username
  • whowusers命令:查询已登录到主机的用户信息。

14. 文件和目录权限管理

权利项

权限为3位数字,每位数字对应如下:

  • 4:读取(读)
  • 2:写入(写)
  • 1:执行(执行)

组织权限

权限项与文件或目录的归属关系为:

权限位:所有者、所属组、其他用户

例如:

  • drwxr-xr-x:所有者有写、读、执行权限,所属组有读、写权限,其他用户有读执行权限。

15. 设置文件和目录权限 chmod

命令语法:

chmod [ugoa][±=][rwx]... file/directory

选项:

  • u:属主
  • g:属组
  • o:其他用户
  • a:所有用户
  • +:加上权限
  • -:移除权限
  • =:设置特定权限

示例:

chmod ugo+x file
chmod -x file

如果使用3位八进制数:

chmod 755 file

16. 设置文件和目录归属 chown

命令语法:

chown [owner]:[group] file/directory

示例:

chown root:dba /database

17. 设置默认权限 umask

默认权限控制新建文件或目录的权限,值从0到7,0表示最严格的权限。

umask 022

例如:

  • umask 0:新建文件为(不可读、不可写、不可执行)。
  • umask 777:新建文件为777(执行权限给所有人)。

通过合理设置文件和目录的权限及归属,可以有效保护系统安全。

上一篇:Linux-磁盘管理与文件系统
下一篇:Linux-rpm与yum安装和应用程序基础

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月12日 16时48分22秒