目录
一、用户账号和组账号概述
1.1 用户账号类型
1.2 组账号
1.2.1 基本组(私有组)
1.2.2 附加组(公共组)
1.3 ID
1.3.1 UID
1.3.2 GID
1.3.3 用户和组的关系
1.4 用户账号管理
1.14.1文件位置
1.4.2添加用户 useradd
1.4.3 密码管理 passwd
1.4.4修改用户账号的属性 usermod
1.4.5 删除用户 userdel
1.4.6用户账号的初始配置文件
1.5组管理
1.5.1组账号文件
1.5.2添加组groupadd
1.5.3组内管理gpasswd
1.5.4删除组账号groupdel
1.5.5查询账号信息
二、文件、目录的权限和归属
1.2.1 chmod
1.2.2 chown
1.2.3 umask
三、总结
一、用户账号和组账号概述
1.1 用户账号类型
Linux中每个用户是通过 User Id (UID)来唯一标识的新建用户 1-60000 自动分配 0-65535 端口号
超级用户(默认root)UID:0
普通用户(权限受制的用户)UID:500+ (CentOS6以前), 1000+(CentOS7以后) 不指定顺序
程序用户(系统默认不登录的用户)UID:1-499 (CentOS 6以前), 1-999 (CentOS 7以后)
1.2 组账号
将多个用户集合起来,统一分配某种相同的权限(开通或关闭)
基本组:有且唯一
附加组:可有可无,可以有多个
1.2.1 基本组(私有组)
建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。只有当系统建立的和用户同名的组才是私有组
在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定
1.2.2 附加组(公共组)
附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
[root@localhost ~]# id lisi uid=1004(lisi) gid=1004(lisi) 组=1004(lisi),1005(stevelu) 1004为基本组或私有 1005为附加组或公共组
[root@localhost ~]# cat /etc/group root:x:0: mail:x:12:postfix --------------------------- postfix:代表附加组 root:组名 x:密码占位符 0:GID
1.3 ID
1.3.1 UID
UID(User IDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。
root 用户账号的 UID 号为固定值 0
centos7普通用户是从1000起到60000
centos6 普通用户500~60000
#uid 的范围定义在此文件中 [root@localhost ~]# vim /etc/login.defs # # Please note that the parameters in this configuration file control the # behavior of the tools from the shadow-utils component. None of these # tools uses the PAM mechanism, and the utilities that use PAM (such as the # passwd command) should therefore be configured elsewhere. Refer to # /etc/pam.d/system-auth for more information. # # *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence. # QMAIL_DIR is for Qmail # #QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #MAIL_FILE .mail # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 #设置密码最大的天数,99999表示永久 PASS_MIN_DAYS 0 #设置密码最小的天数,表示什么时候可以改密码 PASS_MIN_LEN 5 #密码最小长度 PASS_WARN_AGE 7 #告警 # # Min/max values for automatic uid selection in useradd # UID_MIN 1000 UID_MAX 60000 #最大UID号 # System accounts SYS_UID_MIN 201 SYS_UID_MAX 999 # # Min/max values for automatic gid selection in groupadd # GID_MIN 1000 GID_MAX 60000 #最大GID号 # System accounts SYS_GID_MIN 201 SYS_GID_MAX 999 # # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local # # If useradd should create home directories for users by default # On RH systems, we do. This option is overridden with the -m flag on # useradd command line. # CREATE_HOME yes # The permission mask is initialized to this value. If not specified, # the permission mask will be initialized to 022. UMASK 077 # This enables userdel to remove user groups if no members exist. # USERGROUPS_ENAB yes # Use SHA512 to encrypt password. ENCRYPT_METHOD SHA512
1.3.2 GID
GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)
root 组账号的 UID 号为固定值 0
centos7普通用户组账号是从1000起到60000
centos6 普通用户组账号500~60000
1.3.3 用户和组的关系
用户是员工,组是职位
员工可以兼职多个岗位
默认当你创建一个新用户时会自动创建一个和之同名的主组
用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
用户的附加组(supplementary group): 一个用户可以属于零个或多个附加组
1.4 用户账号管理
1.14.1文件位置
/etc/passwd
存放保存用户名称、宿主目录、登录 Shell 等基本信息
[root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin 。。。。。。 zhangsan:x:1001:1001::/home/zhangsan:/bin/bash 1.zhangsan:用户名 2.x:密码占位符 3.1001:UID 4.1001:GID 5. :描述信息(备注) 6./home/zhangsan:家目录 7./bin/bash:shell环境
/etc/shadow
存放保存密码
[root@localhost ~]# cat /etc/shadow root:$6$g/wLiv/XMGAlswxL$yYGP/WJbaT8aBazAizikoBoXFx6Ggl/q5pcZcTqzw7H8PMliWbQQm2oQqq1ZFD60c6IyZGoNyTCR36.sYYgF10::0:99999:7::: bin:*:17632:0:99999:7::: 。。。。。。 zhangsan:!!:19043:0:99999:7:::
第一字段:用户名
第二字段:密码 ,当为*或!!时表示用户不能登录到此系统,若该字段为空,则表示无需密码即可登录
第三字段:上次修改密码时间,最后一次修改密码的时间
以linux诞生的第一年(1970 年 01 月 01 日 )作为元年开始计算
date -d '1970-01-01 19043 days' #计算实际修改日期
第四字段:最小修改密码间隔时间
第五字段:密码有效期
第六字段:密码到期提醒(提示密码即将过期时间)
第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户)
第八字段:账号失效时间 ,同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
第九字段:保留字段(收费内容 )
1.4.2添加用户 useradd
常用参数:
-D | 改变新建用户的预设值 |
-c | 添加备注文字 |
-d | 指定用户的宿主目录位置(当与-M 一起使用时,不生效) |
-e | 用户终止日期,日期的格式为YYYY-MM-DD |
-f | 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1 |
-g | 指定用户对应的用户组 |
-G | 指定用户的附加组名 |
-m | 用户目录不存在时则自动创建 |
-M | 不建立用户家目录,优先于/etc/login.defs文件设定 |
-n | 取消建立以用户名称为名的群组 |
-s | 指定用户的登录 Shell /sbin/nologin(不能登录) |
-u | 指定用户id |
若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿 主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账 号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
1.4.3 密码管理 passwd
常用参数:
-d | 删除密码 |
-l | 锁定用户密码,无法被用户自行修改 |
-u | 解开已锁定用户密码,允许用户自行修改 |
-e | 密码立即过期,下次登陆强制修改密码 |
-k | 保留即将过期的用户在期满后能仍能使用 |
-S | 查询密码状态 |
--stdin表示标准输入
1.4.4修改用户账号的属性 usermod
usermod (针对已经存在的用户进行修改)
常用参数:
-d<登入目录> | 修改用户登入时的目录 |
-e<有效期限> | 修改账号的有效期限 |
-f<缓冲天数> | 修改在密码过期后多少天即关闭该账号 |
-g<群组> | 修改用户所属的群组 |
-G<群组> | 修改用户所属的附加群组 |
-l<账号名称> | 修改用户账号名称 |
-L | 锁定用户密码,使密码无效 |
-s<shell> | 修改用户登入后所使用的shell |
-u<uid> | 修改用户ID |
-U | 解除密码锁定 |
效果与useradd一样,就不一一显示
注:使用passwd锁定用户可以用usermod解锁,反之亦可
1.4.5 删除用户 userdel
常用参数:
-f | 强制删除用户账号 |
-r | 删除用户主目录及其中的任何文件 |
1.4.6用户账号的初始配置文件
~/ .bash_profile:此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc:此文件中的命令将在该用户每次打开新的bash shell时执行
~/.bash_logout:此文件中的命令将在该用户每次退出时bash shell时使用
注:用户宿主目录下的初始配置文件只对当前用户有效,全局配置在/etc/bashrc
~/.bashrc运行的情况:
打开登录
切换用户
打开新的bash环境
#每次su切换账户或者输入bash,就是切换不同的bash环境,每个bash环境的历史命令不同 [root@localhost ~]# pstree ─sshd─┬─sshd───bash───pstree │ └─sshd───bash [root@localhost ~]# bash [root@localhost ~]# bash [root@localhost ~]# pstree ├─sshd─┬─sshd───bash │ └─sshd───bash───bash───bash───pstree