linux下的用户管理

linux的用户主要内容

	GNU/Linux 系统中的每一个文件都有属一个用户(属主)和一个用户组(属组)。
	另外,还有三种类型的访问权限:读(read)、写(write)、运行(execute)。
	我们可以针对文件的属主、属组、而设置相应的访问权限。再次,我们可以通过 ls | stat命令查询文件属主、属组和权限

ls和stat命令查看属组,属主和权限

#增加参数i是为了查看inode
ls -i /etc/passwd
stat /etc/passwd

在这里插入图片描述

linux下的用户分类

1超级用户:root 它拥有对系统的最高的管理权限,UID=0
2普通用户:
	系统用户:UID:1~999(centos7) UID:1~499
	本地用户:1000+                                500+
3虚拟用户:伪用户。主要用来维持某个服务的正常运行

关于用户管理的一些关键的配置文件

配置文件地方说明
用户的配置文件/etc/passwd存储用户的详细信息
用户组文件/etc/group用户组的详细信息
用户的密码文件/etc/shadow保证密码的安全
控制用户添加的规则/etc/default/useradd 和/etc/login.defs管理规则
egrep -v "^#|^$" /etc/login.defs     #使用正则进行过滤

/etc/passwd配置文件说明

root:x:0:0:root:/root:/bin/bash
以冒号为分隔符,以下讲解每一个字段的含义
root:账号名称
x:密码
0:UID
0:UID
root:用户信息说明列
/root:家目录
/bin/bash:所使用的shell

在这里插入图片描述

/etc/shadow的配置文件

root:$6$GeEUEJwcwxke00nL$h17xC7tCacIEU5F15i12nIwgu5BolcS3semLrQ0G.V33Acs.wXnwKq/bKCk87KI/n4atmtdlUEylOliRGCKy51::0:99999:7:::
1:登录名称
2:密码:哈希算法+随机值+哈希值
3:最近一次修改密码的日期,距离1970.1.1表示
4:最近更改后过几天才能改密码,0表示随时都可以改
5:密码过期时间
6:警告快过期了
7:宽限的天数
8:过期时间
9:保留

在这里插入图片描述

/etc/login.defs的内容详解

MAIL_DIR	/var/spool/mail
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_MIN_LEN	5
PASS_WARN_AGE	7
UID_MIN                  1000                      #用户ID开始的数字
UID_MAX                 60000                    #用户ID结束的数字
SYS_UID_MIN               201
SYS_UID_MAX               999
GID_MIN                  1000
GID_MAX                 60000                #用户组ID结束的数字
SYS_GID_MIN               201
SYS_GID_MAX               999
CREATE_HOME	yes                       #是否为用户建立home目录
UMASK           077                          #默认的掩码
USERGROUPS_ENAB yes                            
ENCRYPT_METHOD SHA512         #shadow的加密方式,采用SHA-512的加密算法

/etc/default/useradd

# useradd defaults file     
GROUP=100                                表示可以创建用户组
HOME=/home								表示主目录
INACTIVE=-1								是否账号过期
EXPIRE=										账号终止日期
SHELL=/bin/bash                       默认的shell
SKEL=/etc/skel							模板目录
CREATE_MAIL_SPOOL=yes     是否创建邮箱目录

用户管理的5大命令

id:命令用于显示用户的ID,以及所属群组的ID。
id+用户

useradd:用来创建用户
m:主目录,默认是开启的
M:不创建用户的主目录
u:UID
g:初始组
G:附加组
s:登录的shell
d:指定用户的主目录路径

userdel用来删除用户
-r:删除家目录和邮件里面所在该目录的文件。

change(用来修改shadow的那些字段信息)
-d :上一次更改的日期,为0则下次登录时候必须进行修改
-m:密码可以更改的最小天数,为0时候,可以任意更改


密码的修改:一种是交互式的,一种是免交互
passwd 加用户
echo 123456 | --stdin 加用户

usermod
-u		UID
-d		宿主目录
-g		起始组				#只能有一个
-G		附加组				#可以有多个
-s		登录shell
-c:  添加说明信息
-m和-d:可以修改并且指定的用户的家目录

例子

#增加用户,默认使用bash,使用默认的用户组

[root@break test]# tail -1 /etc/passwd
q:x:1001:1001::/home/q:/bin/bash
[root@break test]# tail -1 /etc/group
q:x:1001:
[root@break test]# tail -1 /etc/shadow
q:!!:17975:0:99999:7:::

添加一个用户名为oracle,指定UID为1100 u

[root@break test]# useradd -u 1100 oracle
[root@break test]# id oracle
uid=1100(oracle) gid=1100(oracle) 组=1100(oracle)

添加一个xuebug用户,指定组为oracle g

[root@break test]# id oracle
uid=1100(oracle) gid=1100(oracle) 组=1100(oracle)
[root@break test]# useradd -g oracle xuebug[root@break test]# id xuebug
uid=1101(xuebug) gid=1100(oracle) 组=1100(oracle)

附属组的使用。G

[root@break test]# useradd -G oracle,du,root csdn
[root@break test]# id csdn
uid=1102(csdn) gid=1102(csdn) 组=1102(csdn),0(root),1000(du),1100(oracle)

修改UID u

[root@break ~]# id test
uid=1103(test) gid=1103(test) 组=1103(test)
[root@break ~]# usermod -u 1500 test
[root@break ~]# id test
uid=1500(test) gid=1103(test) 组=1103(test)

修改shell s

[root@break ~]# tail -5 /etc/passwd
q:x:1001:1001::/home/q:/bin/bash
oracle:x:1100:1100::/home/oracle:/sbin/nologin
xuebug:x:1101:1100::/opt/as:/bin/bash
csdn:x:1102:1102::/home/csdn:/bin/bash
test:x:1500:1103::/home/test:/bin/bash
[root@break ~]# usermod -s /sbin/nologin test
[root@break ~]# tail -5 /etc/passwd
q:x:1001:1001::/home/q:/bin/bash
oracle:x:1100:1100::/home/oracle:/sbin/nologin
xuebug:x:1101:1100::/opt/as:/bin/bash
csdn:x:1102:1102::/home/csdn:/bin/bash
test:x:1500:1103::/home/test:/sbin/nologin

更改用户主目录 m+d

[root@break ~]# usermod -m -d /opt/test test
[root@break ~]# ls /home/
csdn  du  oracle  q  qq
[root@break ~]# ls /opt/
as  rh  test

添加说明信息**

[root@break ~]# usermod -c "test is" test
[root@break ~]# tail -1 /etc/passwd
test:x:1500:1103:test is:/opt/test:/sbin/nologin

解决模板文件被删除之后显示不正常的问题

[root@break ~]# rm -rf /home/test/.bash*
[root@break ~]# su test
bash-4.2$ 
bash-4.2$ su root
密码:
[root@break ~]# cp /etc/skel/.bash* /home/test/
[root@break ~]# chown test:test /home/test/.bash*
[root@break ~]# su test
[test@break root]$ 
注意事项:
2个用户的密码相同,他们在shadow中的加密结果一样吗?
不一样,因为他们的salt不一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值