linux账号和权限管理

导读:本篇文章讲解 linux账号和权限管理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

所有的数据单独都是离散的情况,但是我们使用数据管理都不会使单独使用的,很多数据都是需要循环嵌套使用的,所以我们需要对数据进行一定程度的管理,可以通过对用户数据的进行分组并管理组内成员信息的

一、管理用户账号和组账号

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 日 73 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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!