写在前面:本文主要是对linux的用户和组管理进行介绍,如果本文对你有帮助,期待你的小心🤞❤💕
用户和组管理
1、用户和组账号概述
1)、用户分类
- 超级用户root
- 普通用户
- 程序用户 //用于维持系统或某个程序的正常运行,一般不允许登陆到系统。 例如:mail、ftp
2)、组账号
- 基本组(私有组)
- 附加组(公有组)
3)、UID和GID
- UID (用户标识号)
- GID (组标识号)
root用户的UID、GID都是0
程序用户的UID、GID是 1~499
普通用户的UID、GID是 500~6000
2、单个用户管理
1)、/etc/passwd
- 每一行对应一个用户的账户信息
2)、/etc/shadow
- 每一行对应一个用户的密码记录
[sinlair@localhost ~]$ tail -2 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
sinlair:x:1000:1000:sinlair:/home/sinlair:/bin/bash
字段1:用户帐号的名称
字段2:用户密码字串或者密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息
[root@localhost sinlair]# tail -2 /etc/shadow
tcpdump:!!:19096::::::
sinlair:$6$8EjIQSZTFfxXIJkn$DPX6hrsh7hIzkPBxEqvPzaZm6uaD6Y5MHzTHWBRvHXxlnEPqRZnFD6K1sid5ZRj52QbTSvVnjoJqCtk5vjf.x0:19096:0:99999:7:::
字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
3)、useradd命令
格式:useradd [选项] 用户名
选项:-u:指定UID标识号
-d:指定宿主目录,默认为**/home/用户名**
-e:指定账号失效时间
-g:指定用户的基本组名(或UID)
-G:指定用户的附加组名(或GID)
4)、passwd命令
格式:passwd [选项] 用户名
选项:-d:清空用户密码,使之无需密码即可登陆
-l:锁定用户 (lock)
-S:查看用户的状态
-u:解锁用户账号
5)、usermod命令
格式:usermod [选项] 用户名
选项:-l:更改用户账号的登陆名称
-L:锁定用户账户
-U:解锁用户账号
6)、userdel命令
格式:userdel [r] 用户名
选项:-r:连用户的宿主目录一起删除
7)、chage命令
格式:chage [选项] 用户名
选项:-M:密码的最长有效天数
-l:列出密码的有效天数
-E:账号的到期日期
[root@localhost Desktop]# useradd sinliar1
[root@localhost Desktop]# passwd sinliar1
Changing password for user sinliar1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost Desktop]# usermod -l sinliar sinliar1
[root@localhost Desktop]# chage sinliar
Changing the aging information for sinliar
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 180
Maximum Password Age [99999]: 180
Last Password Change (YYYY-MM-DD) [2022-04-14]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [-1]:
[root@localhost Desktop]#
3、组管理
1)、/etc/group
- 每一行对应一个组账号的基本信息
2)、/etc/gshadow
- 每一行对应一个组账号的密码信息
3)、groupadd命令
格式:groupadd [-g GID] 组账号名
4)、gpasswd命令
格式:gpasswd [选项] 组帐号名
功能:设置组账号密码、添加/删除组成员
选项:-a:向组内添加一个用户
-d:向组内删除一个用户成员
-M:定义组成员列表,以逗号隔开
5)、groupdel命令
格式:groupdel 组账号名
[root@localhost Desktop]# tail -5 /etc/group
sshd:x:74:
tcpdump:x:72:
sinlair:x:1000:
sinlair1:x:1001:
sinliar1:x:1002:
[root@localhost Desktop]# tail -5 /etc/gshadow
sshd:!::
tcpdump:!::
sinlair:!::
sinlair1:!::
sinliar1:!::
[root@localhost Desktop]# groupadd -g 1005 users //添加组账号
groupadd: group 'users' already exists
[root@localhost Desktop]# useradd sinlair2 //添加用户
[root@localhost Desktop]# gpasswd -a sinlair2 users //把用户添加进组账号
Adding user sinlair2 to group users
[root@localhost Desktop]# groupdel users //添加组账号
3、设置文件/目录的权限和归属
1)、访问权限
读取:允许查看文件内容、显示目录列表
写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行:允许运行程序、切换目录
2)、归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
3)、chmod命令
功能:设置用户权限
格式1:chmod [ugoa] [±=] [rwx] 文件或目录 //[ugoa]u、g、o、a分别表示属主、属组、其他用户、所有用户
格式2:chmod nnn 文件或目录 // nnn表示3位八进制数
选项:-R:递归修改指定目录下所有文件、子目录的权限
4)、chown命令
格式:chown 属主 文件或目录
chown :属组 文件或目录
chown 属组:属组 文件或目录
选项:-R 递归修改所有子文件、子目录的归属
[root@localhost Desktop]# touch sinlair3 //创建文件
[root@localhost Desktop]# ls
sinlair3
[root@localhost Desktop]# ls -l sinlair3 //查看权限
-rw-r--r--. 1 root root 0 Apr 14 12:00 sinlair3
[root@localhost Desktop]# chmod u+x sinlair3 //增加权限
[root@localhost Desktop]# ls -l sinlair3 //查看权限
-rwxr--r--. 1 root root 0 Apr 14 12:00 sinlair3
[root@localhost Desktop]# chmod g-w sinlair3 //减少权限
[root@localhost Desktop]# ls -l sinlair3
-rwxr--r--. 1 root root 0 Apr 14 12:00 sinlair3
[root@localhost Desktop]# tail -2 /etc/passwd
sinliar:x:1001:1002::/home/sinliar1:/bin/bash
sinlair2:x:1002:1003::/home/sinlair2:/bin/bash
[root@localhost Desktop]# chown sinlair2 sinlair3 //增加属主
[root@localhost Desktop]# getfacl sinlair3 //查看文件系统访问控制列表
# file: sinlair3
# owner: sinlair2
# group: root
user::rwx
group::r--
other::r--