Linux系统:账号与权限管理

Linux系统:账号与权限管理

目录

前言

一、管理用户账号
1.1 账号:用户和组的概念
1.2 用户名称、宿主目录、登录Shell等信息文件位置
二、用户账号管理
2.1 添加用户账号 (useradd 命令)
2.2 用户账号的初始配置文件
2.3 设置/更改用户口令 (passwd 命令)
2.4 修改用户账号属性 (usermod 命令)
2.5 删除用户账号 (userdel 命令)
三、管理组账号
3.1 组账号文件
3.2 添加、删除、修改组账号

groupadd 添加组账号

groupdel 删除组账号

gpasswd 添加、设置、删除组成员

3.3辅助命令(查询账号信息)
四、设置目录、文件的权限及归属
4.1 设置目录/文件的权限及归属

设置目录权限 chmod

设置目录属性 chown

4.2 umask介绍

总结


前言:

作为多用户、多任务的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份、文件/目录权限两个方面对资源进行限制。Linux基于用户身份对资源访问进行控制。

一、管理用户账号
1.1 账号:用户和组的概念

权限管理:文件或目录的权限
不同的身份代表不同的权限

用户账号:
1、超级用户 有且只有一个root 家目录与其他用户分开的
2、普通用户 自定义创建
3、程序用户 控制、维持的linux、终端的服务和程序的正常运转 无法登录
4、匿名用户 windows中是guest linux中是nobody 权限最低

组账号 用户的集合/权限的集合
基本组(私有组) 伴随着用户的创建而创建 与用户同名
附加组 (公共组):附加组 直接创建空组,可以添加已有的用户,给组设置权限,该组中的所有用户都具备此权限

UID和GID
UID (User IDentity,用户标识号)
GID (Group Identify, 组标识号)

1.2 用户名称、宿主目录、登录Shell等信息文件位置

文件位置:/etc/passwd

示例:

[root@localhost ~]# head -5 /etc/passwd      /查询首5行信息
root:x:0:0:root:/root:/bin/bash  
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

以上每一行对应一个用户的账号信息

以第一行用户为例:root : x : 0 : 0 : root: /root : /bin/bash

以冒号进行分隔,每段内容对应含义如下:

1、root 代表用户账号名称

2、 x 密码占位符 标识root 有密码

3、 0 标识UID账号/用户账号ID

4、 0 所属基本组账号,与UID基本相同

5、root 用户名,可填写用户 详细信息

6、 /root 宿主目录

7、 /bin/bash 指定用户登录的Shell 。字符终端模式,以此结尾代表允许登录系统,以/sbin/nologin 则代表无法登录。

二、用户账号管理
2.1 添加用户账号 (useradd 命令)

格式: useradd [选项] 用户名

·常用选项:
在这里插入图片描述
示例:

这里我们先建立一个名为one组,然后在/opt目录下创建一个/test目录,最后添加用户”coffe“,将此用户放在/opt目录下,并让设置此用户的附加组为one,最后设置此用户可登录

[root@localhost ~]# groupadd one     /创建一个名为”one“的附加组
[root@localhost ~]# tail -2 /etc/group  /显示附加组文件的末尾两行
named:x:25:
one:x:1001:     /附加组添加成功
[root@localhost ~]# mkdir /opt/test   在/opt目录下创建/test目录
[root@localhost ~]# ls /opt  /查询opt目录
rh  test
[root@localhost ~]# useradd -d /opt/test/coffe -G one -s /bin/bash coffe   /指定用户coffe到目录,指定到附加组,允许登录
[root@localhost ~]# tail -2 /etc/group
one:x:1001:coffe     /新用户coffe加入到附加组one之中
coffe:x:1002:
[root@localhost ~]# ls /opt/test   /新用户conffe位置
coffe
[root@localhost ~]# tail -2 /etc/passwd    
named:x:25:25:Named:/var/named:/sbin/nologin
coffe:x:1001:1002::/opt/test/coffe:/bin/bash      /可登录
2.2 用户账号的初始配置文件

文件来源:新建用户账号时,从/etc/skel目录中复制而来

主要的用户初始配置文件
1 ~/.bash_profile :指定的时环境变量 环境变量的配置文件,当用户登录shell 时会进行有效的加载

2 ~/.bashrc 用户登录shell环境的时候会被加载,同时包括登陆系统,使用"su"切换用户会加载

3 ~/.bash_logout 注销的时候会加载

2.3 设置/更改用户口令 (passwd 命令)

格式:passwd 选项 … 用户名

常用选项:
在这里插入图片描述

示例:

[root@localhost home]# passwd -l coffe
锁定用户 coffe 的密码 。
passwd: 操作成功
[root@localhost home]# passwd -S coffe
coffe LK 2019-11-04 0 99999 7 -1 (密码已被锁定。)
[root@localhost home]# passwd -u coffe
解锁用户 coffe 的密码。
passwd: 操作成功
[root@localhost home]# passwd -S coffe
coffe PS 2019-11-04 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost home]# passwd -d coffe
清除用户的密码 coffe。
passwd: 操作成功
[root@localhost home]# passwd coffe
更改用户 coffe 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost home]# 

passwd 可以直接接用户,表示更改指定用户密码,在密码过于简单系统提示无效密码时,可以无视,再次输入即可生效。

这里补充一种更改密码的方法:

[root@localhost home]# echo ”abcabc“ | passwd --stdin coffe
更改用户 coffe 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost home]# 

以上命令,表示后执行更改coffe用户密码为abcabc,其中 “–stdin”表示标准输入。这条命令无需进行交互(不需要多次输入)我们在做Shell脚本创建大量用户时,这条命令很好用。缺点是直接在root操作的适合容易在history中泄露密码。

补充说明:

如果设置用户无法登录:”/sbin/nologin “用户无法直接登录和被切换登录。

执行passwd -l coffe 将用户锁定后,在图形用户界面是无法登录的,但可以从root用户切换登录,并且不需要输入密码。

2.4 修改用户账号属性 (usermod 命令)

格式: usermod [选项] 用户名

常用选项:
在这里插入图片描述
示例:

[root@localhost home]# tail -2 /etc/passwd
lisi:x:1002:1003::/home/lisi:/bin/bash
coffe:x:1001:1002::/opt/test/coffe:/bin/bash
[root@localhost home]# usermod -l tea coffe  (将coffe的用户名改为tea
[root@localhost home]# tail -2 /etc/passwd
lisi:x:1002:1003::/home/lisi:/bin/bash
tea:x:1001:1002::/opt/test/coffe:/bin/bash  (已更改为tea)
[root@localhost home]# usermod -s /sbin/nologin tea  (将tea用户设置为不可登录)
[root@localhost home]# tail -4 /etc/passwd
dings001:x:1000:1000:dings001:/home/dings001:/bin/bash
named:x:25:25:Named:/var/named:/sbin/nologin
lisi:x:1002:1003::/home/lisi:/bin/bash
tea:x:1001:1002::/opt/test/coffe:/sbin/nologin   (用户tea已不可登录)
2.5 删除用户账号 (userdel 命令)

格式:userdel [-r] 用户名 (连同宿主目录一起删除)

三、管理组账号

3.1 组账号文件

1、/etc/group:保存组账号基本信息

2、/etc/gshadow:保存组账号的密码信息(一般不会设置)。组的信息中有感叹号代表锁定状态。例如:
在这里插入图片描述

3.2 添加、删除、修改组账号

添加组GID号

格式:groupadd [选项] 组名

常用选项:

-g 指定GID 组标识号

示例:

[root@localhost home]# tail -5 /etc/group
dings001:x:1000:
named:x:25:
one:x:1001:
coffe:x:1002:
lisi:x:1003:
[root@localhost home]# groupadd -g 1008 zhaoliu  (添加zhaoliu组并指定GID为1008)
[root@localhost home]# tail -5 /etc/group
named:x:25:
one:x:1001:
coffe:x:1002:
lisi:x:1003:
zhaoliu:x:1008:    (已添加zhaoliu组并指定GID为1008)
[root@localhost home]#   

添加组成员与删除组成员

格式:gpasswd [选项] 组账号名

常用选项:
在这里插入图片描述
示例:

root@localhost home]# tail -5 /etc/group  (前三个为新建用户 后两个为新建组)
wangwu:x:1001:
lisi:x:1002:
zhangsan:x:1003:
caiwu:x:1004:
renshi:x:1005:
[root@localhost home]# gpasswd -a wangwu caiwu  (将wangwu添加到caiwu组中)
正在将用户“wangwu”加入到“caiwu”组中
[root@localhost home]# tail -2 /etc/group 
caiwu:x:1004:wangwu    (添加成功)
renshi:x:1005:
[root@localhost home]# gpasswd -M lisi,zhangsan caiwu  (使用-M添加2个组成员)
[root@localhost home]# tail -2 /etc/group
caiwu:x:1004:lisi,zhangsan   (之前添加的wangwu已被覆盖)
renshi:x:1005:
[root@localhost home]# gpasswd -a wangwu caiwu  (重新添加wangwu)
正在将用户“wangwu”加入到“caiwu”组中
[root@localhost home]# tail -2 /etc/group
caiwu:x:1004:lisi,zhangsan,wangwu (wangwu已被添加到末尾位置)
renshi:x:1005:
[root@localhost home]# gpasswd -d wangwu caiwu  (删除命令)
正在将用户“wangwu”从“caiwu”组中删除
[root@localhost home]# tail -2 /etc/group
caiwu:x:1004:lisi,zhangsan  (已被删除)
renshi:x:1005:
[root@localhost home]# 

以上实验证明了gpasswd -M 会覆盖已有的组成员,而gpasswd -a 只会将新用户追加在末尾。

删除组账号

格式:groupdel 组账号

这里需要注意,如果我们要删除的组中有所属成成员,则无法进行删除。此命令只适用于删除“空的组”。

3.3辅助命令(查询账号信息)

这里介绍五种辅助查询命令,具体如下:
在这里插入图片描述
其中”group、id、finger“的格式均为 命令+用户名

w、who、users 直接输入即可(在root用户下)

提示: 如果出现未找到命令,可以直接用yum安装,例如:

[root@localhost home]# finger wangwu   (未找到命令)
bash: finger: 未找到命令...
[root@localhost home]# yum install finger (使用yum安装)
已加载插件:fastestmirror, langpacks
base                                           | 3.6 kB     00:00     
extras                                         | 2.9 kB     00:00     
updates                                        | 2.9 kB     00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 finger.x86_64.0.0.17-52.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

======================================================================
 Package        架构           版本                源            大小
======================================================================
正在安装:
 finger         x86_64         0.17-52.el7         base          25 k

事务概要
======================================================================
安装  1 软件包

总下载量:25 k
安装大小:32 k
Is this ok [y/d/N]: y
Downloading packages:
finger-0.17-52.el7.x86_64.rpm                    |  25 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : finger-0.17-52.el7.x86_64                         1/1 
  验证中      : finger-0.17-52.el7.x86_64                         1/1 

已安装:
  finger.x86_64 0:0.17-52.el7                                         

完毕!   
[root@localhost home]# finger wangwu  (安装完成后可以使用)
Login: wangwu         			Name: 
Directory: /home/wangwu             	Shell: /bin/bash
Never logged in.
No mail.
No Plan.
四、设置目录、文件的权限及归属
4.1 设置目录/文件的权限及归属

访问权限与归属(所有权)
一、访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录(目录一定要有这个权限)
二、归属(所有权)
属主:拥有该文件或目录的用户账号。能读能写能执行
属组:拥有该文件或目录的组账号

示例:

[root@localhost home]# ls -l
总用量 0
drwx------. 14 dings001 dings001 271 10月 27 19:49 dings001
drwx------.  3 lisi     lisi      78 11月  4 20:31 lisi
drwxr-xr-x.  4 root     root     178 10月 29 18:50 systemd
drwx------.  3 wangwu   wangwu    78 11月  4 20:31 wangwu
drwxr-xr-x.  3 root     root      20 10月 29 18:35 xuxi1
drwx------.  3 zhangsan zhangsan  78 11月  4 20:31 zhangsan
[root@localhost home]# 

以izh一条信息为例:drwxr-xr-x. 3 root root 20 10月 29 18:35 xuxi1

1、d 表示文件类型:“d”表示目录、 “l”表示链接文件、”c“ 表示设备文件(字符设备文件)控制着输入输出、”b“块设备文件(存储)

2、rwx 、 r-x、r-x分别代表是属主权限(这里表示可读可写可执行)、属组权限(这里表示可读可执行)、other权限(这里表示可读可执行)
在这里插入图片描述

3、3 表示子目录数量

4、root 属主

5、root 属组

6、20 表示大小,单位:字节

7、10月 29 表示创建时间

8、xuexi1 目录/文件名

设置目录权限 chmod(-R 递归)

格式:chomd nnn 文件或目录

chomd [ugoa] [±=] [rwx] 文件或目录

常用选项:

-R 递归修改指定目录下所有子选项的权限

其中chomd [ugoa] [±=] [rwx]

u 表示属主

g 表示属组

o 其他用户

a 所有用户

±= 添加、删除、设置权限

示例:

[root@localhost opt]# ls -l
总用量 4
-rwxr--r--. 1 root root 13 11月  4 21:37 abc.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
[root@localhost opt]# chmod go+w abc.txt   (给予文件所属组与其他用户添加写入权限)
[root@localhost opt]# ls -l
总用量 4
-rwxrw-rw-. 1 root root 13 11月  4 21:37 abc.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
[root@localhost opt]# chmod 655 abc.txt  (将文件设置为655的权限模式)
[root@localhost opt]# ls -l
总用量 4
-rw-r-xr-x. 1 root root 13 11月  4 21:37 abc.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
[root@localhost opt]# 

如果只给其他用户写的权限,不能阅读与执行的话,我们可以使用“echo ”123123“ > abc.txt”强行写入。此处与我们经常使用的windows并不一致。

设置目录属性 chown

1、chown 属主(名字) 文件或目录

2、chown :属组 文件或目录

3、chown 属主:属组 文件或目录

常用选项

如果是对象是目录的话,命令格式为 chown-R 用户名:用户名 目录

示例:

[root@localhost opt]# ls -l
总用量 4
-rw-r-xr-x. 1 root root 13 11月  4 21:37 abc.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
[root@localhost opt]# chown zhangsan abc.txt (更改属主)
[root@localhost opt]# ls -l
总用量 4
-rw-r-xr-x. 1 zhangsan root 13 11月  4 21:37 abc.txt (更改完成)
drwxr-xr-x. 2 root     root  6 3月  26 2015 rh
[root@localhost opt]# chown :zhangsan abc.txt (更改属组)
[root@localhost opt]# ls -l
总用量 4
-rw-r-xr-x. 1 zhangsan zhangsan 13 11月  4 21:37 abc.txt (更改完成)
drwxr-xr-x. 2 root     root      6 3月  26 2015 rh
[root@localhost opt]# chown root:root abc.txt  (更改属主:属组)
[root@localhost opt]# ls -l
总用量 4
-rw-r-xr-x. 1 root root 13 11月  4 21:37 abc.txt  (更改完成)
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
[root@localhost opt]# 

4.2 umask介绍

在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。

总结:

本文主要是对Linux/Centos7中账号与权限管理的介绍,主要是命令+选项 适用于不同清空进行了介绍和示例,其实命令学习的够多之后,有很多结果我们可以通过不同的方式达到。

需要强调的有几点:

1、选择好操作目录,避免线程占用,例如,我们储在/home/test 工作目录下,现在我们在这个目录尝试适用rm -rf 删除这个目录,这样因线程占用,故无法进行删除。

2、在我们想要使用一个命令但提示“没有此命令”时,我们可以尝试使用”yum install 命令“(有网络连接)进行安装。

发布了48 篇原创文章 · 获赞 46 · 访问量 6632

猜你喜欢

转载自blog.csdn.net/weixin_45726050/article/details/102906888