用户和组

用户账号

  1. 超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
  2. 普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
  3. 程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。

组账号

  1. 基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
  2. 附加组(公共组):用户除了基本组以外,额外添加指定的组。
  • UID:用户标识号
  • GID:组标识号

相关文件

  1. /etc/passwd:文件用户的配置文件,保存用户名称、宿主目录、登录Shell 等基本信息
  2. /etc/group:文件组的配置文件,记录Linux包含的组的信息
  3. /etc/shadow:文件口令的配置文件,保存用户的密码、账号有效期等信息
  4. /etc/gshadow:组密码及其相关属性

文件属性

rwx

  1. 读取r:允许查看文件内容、显示目录列表
  2. 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  3. 可执行x:允许运行程序、切换目录

注意:三个权限的位置不会改变,如果没有权限,就会出现-代替,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

权限 执行
字符 r w x -
数字 4 2 1 0

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

字符 描述
d 目录
- 文件
l 链接文档(link file)
b 装置文件里面的可供储存的接口设备(可随机存取装置)
c 装置文件里面的串行端口设备
  1. 第一段(3位):代表拥有者的权限
  2. 第二段(3位):代表拥有者所在的组,组员的权限
  3. 第三段(3位):代表的是其他用户的权限

每个文件的属性由左边第一部分的10个字符来确定

类型 文件类型 属主权限 属组权限 其他用户权限
位置 0 123 456 789

用户管理

查看用户信息

  1. whoami:查看当前用户
  2. who:打印当前登录用户
参数 描述
-a 打印全面信息
-b 打印系统最近启动时间
-d 打印死掉的进程
-l 打印系统登录进程
-H 带有列标题打印用户名,登录终端和登录时间
-t 打印系统上次锁定时间
-u 打印已登录用户列表

exit:退出登录账户

useradd:添加用户

参数 描述
-u 指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d 指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g 指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G 指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-m 用户目录不存在时自动创建
-M 不建立宿主目录。
-s 指定用户的登录 Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
-r 建立系统账号
-c 添加备注文字
1
2
3
4
useradd -m liyou1:创建用户名,并且创建与用户名相同的目录与用户组
useradd -d /home/liyou -m liyou2:指定用户目录
useradd -g ftp liyou3:指定用户组
useradd -p 123 liyou4:指定用户密码

userdel:删除用户

参数 描述
-r 将该用户的宿主目录一并删除
1
2
3
userdel liyou:删除用户,但不删除其家目录及文件
userdel -r liyou:删除用户,并将其家目录及文件一并删除
userdel -f liyou:强制删除用户

usermod:修改用户账号

参数 描述
-u 修改用户的 UID 号。
-d 修改用户的宿主目录位置。
-e 修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g 修改用户的基本组名(或使用 GID 号)。
-G 修改用户的附加组名(或使用 GID 号)。
-s 指定用户的登录 Shell。
-l 更改用户账号的登录名称
-L 锁定用户账户
-U 解锁用户账户
1
2
3
4
5
usermod -d /home/liyou liyou:更改登录目录
usermod -u 777 liyou:改变用户的uid
usermod -l liyou liyou1:修改用户名liyou1为liyou
usermod -L liyou:锁定密码
usermod -U liyou:解锁密码

passwd:设置用户密码

参数 描述
-d 清空指定用户的密码,仅使用用户名即可登录系统。
-l 锁定用户密码,无法被用户自行修改,锁定的用户账号将无法再登录系统。
-u 解开已锁定用户密码,允许用户自行修改(-u解锁时,如果没有密码会提示,需要使用-f强制解锁)
-e 密码立即过期,下次登录强制修改密码
-k 保留即将过期的用户在期满后仍能使用
-S 查看用户账户的状态(是否被锁定)。
1
2
3
4
5
6
passwd:设置当前用户密码
passwd liyou1:设置用户密码
passwd -l liyou1:锁定密码不允许用户修改
passwd -u liyou1:解除锁定密码,允许用户修改
passwd -e liyou1:下次登录强制改密码
passwd -d liyou1:移除用户密码

sudo:用超级用户的权限执行命令

sudo是为所有想使用root权限的普通用户设计的,可以让普通用户具有临时使用root权限的权利,只需输入自己账户的密码即可

1
2
# 进入sudo配置文件命令
vi /etc/sudoer或者visudo

su:切换用户

su用于用户之间的切换,但是切换前的用户依然保持登录状态。如果是root向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

1
2
3
4
5
su test:切换到test用户,但是路径还是/root目录
su - test :切换到test用户,路径变成了/home/test
su:切换到root用户,但是路径还是原来的路径
su - :切换到root用户,并且路径是/root
exit、logout:退出返回之前的用户

用户组管理

groupadd:添加组

参数 描述
-g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于500
-K 覆盖配置文件“/ect/login.defs”
-o 允许添加组ID号不唯一的工作组
1
2
3
groupadd usergroup1:创建用户组
groupadd -g 8563 usergroup1:创建用户组,指定工作组id
groupadd -r usergroup1:使用-r创建系统工作组

groupdel:删除用户组

给出的组名必须存在,若改群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

1
groupdel usergroup1:删除用户组

gpasswd:设置用户的用户组

参数 描述
-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 定义组成员列表,以逗号分隔
-r 删除密码
-R 限制用户登入组,只有组中的成员才可以用newgrp加入该组
1
2
gpasswd -a liyou usergroup1:添加用户到组
gpasswd -d liyou usergroup1:移除用户出组

groupmod:更改用户组

参数 描述
-g 设置欲使用的群组识别码
-o 重复使用群组识别码
-n 设置欲使用的群组名称
1
2
groupmod -g 222 usergroup1:更改组ID
groudmod -n usergroup1 usergroup2:更改组名

groups:查询用户所属的组

格式:groups [用户名]

权限修改

chmod:修改文件或目录权限

  1. u(user):所有者
  2. g(group):所有组
  3. o(other):其他人
  4. a(all):所有人
1
2
3
4
5
6
7
8
9
10
11
12
13
chmod u=rwx,g=rx,o=x 文件目录名
#表示给所有者读、写、执行权限 ,给所有组读和执行权限,给其他人执行权限
chmod o+w 文件目录名
#表示给其他人添加写的权限
chmod a-x 文件目录名
#表示给所有人去除执行的权限

#1、给abc文件的所有者读写执行的权限,给所有组读执行权限,给其他组读执行权限
chmod u=rwx,g=rx,o=rx abc
#2、给abc文件的所有者除去执行的权限,增加所有组写的权限
chmod u-x,g+w abc
#3、给abc文件的所有用户添加读的权限
chmod a+r abc

**规则 **

  1. r=4:二进制 100
  2. w=2:二进制 010
  3. x=1:二进制 001

rwx=4+2+1=7

1
2
3
4
5
chmod u=rwx,g=rx,o=x 文件目录名
#相当于chmod 751 文件目录名

#将/home/abc.txt文件的权限修改成rwxr-xr-x,使用数字的方式实现
chmod 755 /home/abc.txt

chown:修改文件所有者

参数 描述
-R 递归修改指定目录下所有子项的权限

格式:

  1. chown newowner file:改变文件的所有者
  2. chown newowner:newgroup file:改变用户的所有者和所有组
1
2
3
4
#将/home/abc.txt文件的所有者修改成tom
chown tom abc.txt
#将/home/kkk目录下所有的文件和目录的所有者都修改成tom
chown -R tom kkk/

chgrp:修改文件所在组

格式:chgrp newgroup file:改变文件的所有组

1
2
3
4
#将/home/abc.txt文件的所在组修改成bandit(土匪)
chgrp bandit /home/abc.txt
#将/home/kkk 目录下所有的文件和目录的所在组都修改成bandit(土匪)
chgrp -R bandit /home/kkk