前言
所有的数据单独都是离散的情况,但是我们使用数据管理都不会使单独使用的,很多数据都是需要循环嵌套使用的,所以我们需要对数据进行一定程度的管理,可以通过对用户数据的进行分组并管理组内成员信息的
一、管理用户账号和组账号
1、用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
用户账号
超级用户:root管理员(初始ID=0),拥有最高管理权限
普通用户:由管理员所创建的账号,权限受到一定的限制,一般只在用户自己的宿主目录有完全权限
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本)
UID:即每个用户的身份标示,类似于每个人的身份证号码.
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统,也称为:伪用户,常见的程序用户有ftp、Apache、SVN等
组账号
基本组:创建组时,每个用户账号至少属于一个组,基本组是属于创建该账号时所在的组
附加组:除去基本组之外用户所在的组就是附加组(或公共组)
UID和GID
UID(User Identity)用户标识号:每个用户的身份标示,类似于每个人的身份证号码
管理员组:root, 0
普通组:GID
系统组:1-499(CentOS6), 1-999(CENTOS7)
普通组:500+(CentOS6), 1000+(CENTOS7)
GID(Group Identity)组标识号:表示该账户需要密码才能登录,为空时,账户无须密码即可登录组账号
2、用户账号文件
保存用户名称、宿主目录、登录Shell等账户基本信息文件
所处位置:/etc/passwd
passwd文件:账号记录详细说明
其中每一行都对应一个用户的账号信息
[root@yzq ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root❌0:0:root:/root:/bin/bash
字段1 用户账号的名称
字段2 用户密码占位符“x”
字段3 用户账号的UID号
字段4 所属基本组账号的GID号
字段5 用户全名
字段6 宿主目录(家目录)
字段7 登录shell信息 :/bin/bash允许登录
/sbin/nologin不允许登录
保存用户的密码、账号有效期等密码信息
文件位置:/etc/shadow(影子文件)——只有root用户有权限读取
每一行对应一个用户的密码记录
位置/etc/shadow
[root@yzq ~]# cat /etc/shadow
root:$6$pMNWNWwUEaYF/GRP$SHCWNnOGRIwBdzOqZ.iAz0m5Ve9JPT8ef9Yw7WgNHI9/cFTnCgdvx4jWP26tIBfROGnXFMXsHgCTRnDidHjTi1::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
[root@yzq ~]# head -1 /etc/shadow
root:$6$pMNWNWwUEaYF/GRP$SHCWNnOGRIwBdzOqZ.iAz0m5Ve9JPT8ef9Yw7WgNHI9/cFTnCgdvx4jWP26tIBfROGnXFMXsHgCTRnDidHjTi1::0:99999:7:::
root:
6
6
6pMNWNWwUEaYF/GRP$SHCWNnOGRIwBdzOqZ.iAz0m5Ve9JPT8ef9Yw7WgNHI9/cFTnCgdvx4jWP26tIBfROGnXFMXsHgCTRnDidHjTi1::0:99999:7:::
字段1 用户账号的名称
字段2 加密的密码字串信息 (加密密码中若有*或者!!,代表不能登陆,当创建新用户不设定密码时,密码项也是同样的)
字段3 上次修改密码的时间
字段4 密码的最小修改间隔日期,上次修改密码后多少天不给修改默认值为0
字段5 密码的最长有效天数,默认值为99999
字段6 提前多少天警告用户口令将过期,默认值为7
字段7 在密码过期之后多少天禁用此用户
字段8 账号失效时间,默认为空
字段9 保留字段(未使用)
3、组账号文件
存放位置
组账号的基本信息/etc/group
[root@yzq ~]# cat /etc/group
root:x:0:
apache:x:48:
wangwu:x:1001:
zhangsan:x:1003:
wu:x:1004:
yi:x:1005:
组账号的密码信息/etc/gshadow
[root@yzq ~]# cat /etc/group
root:x:0:
apache:!::
wangwu:!::
zhangsan:!::
wu:!::
yi:!::
二、管理目录和文件属性
1、创建用户useradd
useradd [选项] 用户名
[root@yzq ~]# useradd lisi
[root@yzq ~]# tail -1 /etc/passwd
lisi:x:1006:1006::/home/lisi:/bin/bash
-u:指定用户ID(要求UID未被使用)
⭐-d:指定用户登入时的起始目录(宿主目录)。#####与-M一起使用,则不生效
[root@yzq ~]# useradd -d /wangwu wangwu
[root@yzq ~]# ls /wangwu
[root@yzq ~]# tail -1 /etc/passwd
wangwu:x:1011:1011::/wangwu:/bin/bash
-e:指定帐号的失效期限
-g:指定用户基本组名(或使用GID号)
-G:指定用户附加组名(或使用GID号)
⭐-M:不要自动建立用户的登入目录(不建立宿主目录)
[root@yzq ~]# useradd -M er
[root@yzq ~]# ls /home
lisi wangwu zhangsan
[root@yzq ~]# tail -1 /etc/passwd
er:x:1007:1007::/home/er:/bin/bash
⭐-s:定用户登入后所使用的shell环境(/bin/bash /sbin/nologin)
usermod(修改)
-l 更改用户账号登录名称
-L 锁定用户账号
-U 解锁用户账号
-u 修改用户UID
⭐-d 修改用户的宿主目录位置
[root@yzq ~]# usermod -d /wangwu1 wangwu
[root@yzq ~]# tail -1 /etc/passwd
wangwu:x:1011:1011::/wangwu1:/bin/bash
-e 修改用户的账号失效时间
-g 修改用户的基本组名
-G 修改用户的附加组名
-s 指定用户的登录Shell
2、设置密码passwd
passwd [选项] 用户名
[root@yzq ~]# passwd er
更改用户 er 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
-d:删除密码,仅使用用户名即可登陆系统
-l:停止账号使用 #锁定
-u:启用已被停止的账户 #解锁
-S:显示密码信息(账户状态)是否被锁定
echo “密码” | passwd --stdin 账户(stdin:标准输入)
[root@yzq ~]# echo "123456" | passwd --stdin er
更改用户 er 的密码 。
passwd:所有的身份验证令牌已经成功更新。
3、删除用户账号userdel
userdel [-r] 用户名 #-r参数表示连用户的宿主目录一并删除
[root@yzq ~]# userdel zhangsan
[root@yzq ~]# ls /home
lisi zhangsan
[root@yzq ~]# ls -r /home
zhangsan lisi
[root@yzq ~]# userdel -r zhangsan
userdel:用户“zhangsan”不存在
[root@yzq ~]# ls /home
lisi zhangsan
[root@yzq ~]# userdel zhangsan
userdel:用户“zhangsan”不存在
[root@yzq ~]# userdel -r zhangsan
userdel:用户“zhangsan”不存在
[root@yzq ~]# useradd zhangsan
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
[root@yzq ~]# userdel -r zhangsan
userdel:/var/spool/mail/zhangsan 并不属于 zhangsan,所以不会删除
userdel:/home/zhangsan 并不属于 zhangsan,所以不会删除
[root@yzq ~]# rm -rf /var/spool/mail/zhangsan
[root@yzq ~]# rm -rf /home/zhangsan/
[root@yzq ~]# ls /home
lisi
[root@yzq ~]# tail -5 /etc/passwd
wangwu:x:1001:1001::/home/wangwu:/bin/bash
admin:x:1002:10::/admin:/bin/bash
zhangsan:x:1003:1003::/home/zhangsan:/bin/bash
wu:x:1004:1004::/home/wu:/bin/bash
lisi:x:1006:1006::/home/lisi:/bin/bash
[root@yzq ~]# userdel -r wangwu
[root@yzq ~]# tail -5 /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
admin:x:1002:10::/admin:/bin/bash
zhangsan:x:1003:1003::/home/zhangsan:/bin/bash
wu:x:1004:1004::/home/wu:/bin/bash
lisi:x:1006:1006::/home/lisi:/bin/bash
4.组账号文件
/etc/group
查找组信息可配合grep使用
[root@yzq ~]# head -n 1 /etc/group
root:x:0:
[root@yzq ~]# grep -i "ftp" /etc/group
ftp:x:50:
/etc/gshadow
[root@yzq ~]# head -n 1 /etc/gshadow
root:::
5.组管理
创建组 groupadd
[root@yzq ~]# groupadd test
[root@yzq ~]# tail -1 /etc/group
test:x:1112:
groupadd [-g GID] 组账号名
[root@yzq ~]# groupadd -g 1111 yy
[root@yzq ~]# tail -1 /etc/group
yy:x:1111:
6、添加删除组成员gpasswd
gpasswd [选项] 组账号名
-a 添加用户到组
[root@yzq ~]# gpasswd -a wu root
正在将用户“wu”加入到“root”组中
[root@yzq ~]# head -1 /etc/group
root:x:0:wu
[root@yzq ~]# id wu
uid=1004(wu) gid=1004(wu) 组=1004(wu),0(root)
-d 从组删除用户
[root@yzq ~]# gpasswd -d wu root
正在将用户“wu”从“root”组中删除
[root@yzq ~]# head -1 /etc/group
root:x:0:
-A 指定管理员
-M 指定组成员(与-A用途差不多)(批量添加)
[root@yzq ~]# gpasswd -M lisi,wu adm
[root@yzq ~]# grep -i "adm" /etc/group
adm:x:4:lisi,wu
printadmin:x:996:
-r 删除密码
-R 限制用户登入组,只有组中成员才可以用newgrp加入该组
将组更名 groupmod -n
7.删除组 groupdel
groupdel 组
[root@yzq ~]# tail -3 /etc/group
ky21:x:1100:
yy:x:1111:
test:x:1112:
[root@yzq ~]# groupdel ky21
[root@yzq ~]# tail -3 /etc/group
lisi:x:1006:
yy:x:1111:
test:x:1112:
finger 查询账户详细信息
[root@yzq ~]# finger wu
Login: wu Name:
Directory: /home/wu Shell: /bin/bash
Last login 日 7月 3 18:32 (CST) on :1
No mail.
No Plan.
查看用户属组 groups
[root@yzq opt]# groups lisi
lisi : lisi adm
查看用户身份标识 id
[root@yzq opt]# id lisi
uid=1006(lisi) gid=1006(lisi) 组=1006(lisi),4(adm)
8.修改账户有效期限(针对目前系统已存在的用户)
chage 选项 用户名
chage -d :密码最后一次修改时间 #第3个字段
chage -m :密码最小修改时间间隔 #第4个字段
chage -M :密码的有效期 #第5个字段
chage -w :密码需要变更的警告天数 #第6个字段
chage -I :密码过期后的宽限天数 #第7个字段
chage -E :账号失效时间 #第8个字段
三、查询账号信息
groups [用户名] #查询用户所属的组
id [用户名] #查询用户身份标识
finger [用户名] #查询用户的详细信息
######注意:finger不是内部命令,需要通过下载编译安装后才可运行
w、who、users #查询一登录到主机的用户信息
last #查看用户的详细信息
lastlog #查询用户的最后登陆日志信息
四、文件/目录的权限和归属
linux中将权限分为 可读(r,4),可写(w,2),可执行(x,1)
目录默认权限755
文件默认权限644
1、访问权限
读取权限r:允许查看文件内容、显示目录列表
写入权限w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行权限x:允许运行程序,切换目录
2、归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
3、查看文件/目录的权限和归属
通过ll查看
drwxr-xr-x. 3 root root 17 7月 3 20:27 ky21
d 目录(- 可执行文件 f 文件 d 设备文件 l 链接文件)
####以-rw-r--r--为例
第一个-代表普通文件
rw-:是文件所有者u(也就是用户)具有读写的权限
r--:是指文件所属者g(也就是组员) 有只读权限
r--:是指其它用户o有只读权限
4、设置文件和目录权限chmod
方法一
chmod [u/g/o/a] [+/-/=] [r/w/x] 文件或目录
u:属主(user)
g:属组(group)
o:其他用户(other)
a:所有用户 (all)
+:增加权限
-:去除权限
=:设置权限
方法二
chmod nnn 文件或目录
nnn为权限权值的和,最高权限为777
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
5、设置文件和目录的归属chown
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
-R:递归修改指定目录下的所有文件、子目录的归属
6、权限掩码umask
作用:
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
以反掩码的方式进行设置:umask 022 #是指给该文件或目录设置成755的权限
方法:先使用umask
然后下面创建的文件或目录权限为umask设置的权限
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76574.html