基础篇:《李明老师讲Linux笔记》之linux用户管理

基础篇:《李明老师讲Linux笔记》之linux用户管理

*************课程大纲**********************
1.用户管理配置
2.用户管理命令
3.用户组管理命令
4.批量添加用户
5.用户授权

基础篇:《李明老师讲Linux笔记》之linux用户管理

*************配置文件**********************
用户信息文件: /etc/passwd
密码文件: /etc/shadow
用户组密码文件:/etc/gshadow
用户配置文件:
/etc/login.defs
/etc/default/useradd
新用户信息文件: /etc/skel
登录信息: /etc/motd

*************用户信息**********************

more /etc/passwd
看到信息例如:
root:x:0:0:root:/root:/bin/bash                         【超级用户】
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 【伪用户】
liuxing:x:500:500::/home/liuxing:/bin/bash       【普通用户】
包括了7个组成部分:
用户名:密码位:UID:GID:描述信息:宿主目录:命令解释器shell

root 【用户名:用户登录系统时使用的用户名】
x 【密码:密码位】
0 【UID:用户标识号】
0 【GID:缺省组标识号】
root 【注释性描述:例如用户全名信息等】
/root 【宿主目录:用户登录系统后的缺省目录】
/bin/bash 【命令解释器:用户使用shell,默认为bash】

linux用户分为三种
超级用户:(root, uid=0) 可修改用户UID为0就成为超级管理员
普通用户:(UID:500-60000)
伪用户:  (UID:1-499)

伪用户:
1.伪用户与系统和程序服务相关.
#bin、daemo、shutdown、halt等,任何Linux系统默认都有这些默认的伪用户。
#mail、news、games、Apache、ftp、mysql及sshd等,与linux系统的进程相关。
2.伪用户通常不需要或者无法登陆系统
3.可以没有宿主目录。

useradd   <用户名> 添加用户

*************用户组**********************

1.每个用户都这少属于一个用户组
2.每个用户组可以包括多个用户
3.同一个用户组的用户享有组共有的权限

md5加密:单向不可逆。输入长度不固定,但是输出长度是固定的。
例如:
#echo "123456" | md5sum

[[email protected] ~]# more /etc/shadow


root:$6$gwEQg7v5pcwGLVv2$Zs9rQCJB9XjTrbZCCE5xoDH97DGVIsvqCnUyzvz.4RS6hDYzvDIz7mt
liuxing2:!!:16634:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:账号失效时间:标识(空)

最后一次修改时间:从1970,1,1日开始计算。
最小时间间隔:多少天之后才能设置密码。
最大时间间隔:多少天之后必须重新设置密码。
账号闲置时间:如果是3,就是三天
账号失效时间:账号被暂停了

删除/etc/shadow密码部分删除,就可以不需要密码登陆系统。

pwunconv 【命令转化(passwd和shadow)】
pwconv

手工添加用户
vi /etc/passwd
vi /etc/shadow
新建宿主目录,并且给宿主目录用户权限。
将/etc/skel文件夹中文件拷贝到宿主目录中。

*************setUID和setGID和粘着位的概念**********************
setUID
为什么普通用户能修改密码?
setUID当一个可执行程序具有setUID权限,用户执行这个程序时,将以这个程序所有者(root)的身份执行。

权限位:4755
chmod u+s [文件名]
chmod 4755 [文件名]

取消setUID
chmod u-s [文件名]
chmod 755 [文件名]

setGID=2
chmod g+s  [文件名]
 2755
 
粘着位=1
如果一个权限为777的目录,被设置了粘着位,每个用户都可以在这个目录下创建文件,但是只可以删除自己是所有者的文件。

增加粘着位
chmod o+t   [文件名]
chmod 17777 [文件名]

谨慎的设置setUID;

找所有的文件是setuid 和setgid
find -perm -0777 

查找setUID程序:
find / -perm -4000 -o -perm -2000

*************添加用户**********************

adduser -D 【查看添加用户的缺省值】

u:UID
g:缺省所属用户组GID
G:指定用户所属多个组
d:宿主目录
s:命令解释器Shell
c:描述信息
e:指定用户失效时间

【添加用户组和描述】
useradd -u 666 -g root G sys,apache -d /backup -s /bin/bash -c "project liuxing3" -e 20151212 jack

passwd sam

手工添加用户

*************添加用户组和删除组**********************

添加用户组 
groupadd

groupadd -g 888 webadmin [创建用户组webadmin,gid为888]  

删除组
groupdel +[组名] userdel

groupmod -n apache webadmin 【修改webadmin组名为apache】

*************用户组管理命令**********************
gpasswd 设置组密码已经管理组内成员

-a 添加用户到用户组
-d 从用户组中删除用户
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为该组

gpasswd -a [用户名] [组名]

usermod 【修改用户信息】
usermod -G softgroup samlee 【将用户samlee添加到softgroup用户组中】

groups 【查看用户隶属于那些用户组】
newgrp 【切换用户组】
grpck 【用户组配置文件检测】
chgrp 【修改文件所属组】
vigr 【编辑/etc/group文件,锁定文件】
id 【查看用户信息以及组信息】

*************用户组权限示例**********************

授权用户jack和mary对目录/software有写权限
groupadd softadm
usermod -G softadm jack 【把用户jack加到softadm组里】
查看:grep softadm /etc/group
 softadm:x:504:jack,mary
gpasswd -a mary softadm
chgrp softadm /software     【修改文件夹权限】
chmod g+w /software

ls -ld /software

***********************************

pwck     【检测/etc/passwd文件】
vipw      【编辑/etc/passwd文件(锁定文件,其他用户无法编辑此文件)】
id          【查看用户id和组信息】
finger     【查看用户详细信息(centos默认不支持,yum install -y finger)】
su          【切换用户 (su - 环境变量切换)】
su - [用户名]     【会切换环境变量】
su [用户名]       【不会会切换环境变量,root的环境设置 /root】

passwd -S 【查看用户密码状态】
# passwd -d jack 【删除用户密码】
Removing password for user jack.

who、w 【查看当前登录用户信息】

passwd -l  [用户名]     【锁定用户(l=lock)】 原理:禁用用户,在/etc/shadow密码前添加了两个感叹号

usermod -L [用户名]

passwd -u [用户名]  【解锁用户(u=unlock)】

chage 【设定密码】
chage -l [用户名]

w命令还可以使用以下选项  【查看系统登录用户】
-h忽略头文件信息
-u显示结果的加载时间
-s不显示JCPU, PCPU, 登录时间

*************启动或者停用shadow功能**********************

pwconv/pwunconv
grpcov/grpunconv

system-config-users
authconfig 、 /etc/sysconfig/authconfig

vi /etc/sysconfig/authconfig

*************批量添加用户**********************

newusers 【导入用户信息文件,按照/etc/passwd格式】

pwunconv 【取消shadow passwd功能】

chpasswd 【导入密码文件】
(格式 用户名:密码)

pwconv 【将密码写入shadow文件】

实例:一次性批量添加10个用户
方法一:
1) vi user.info 【添加用户信息】
lxx1::1001:503::/home/lxx1:/bin/bash
lxx2::1002:503::/home/lxx2:/bin/bash
lxx3::1003:503::/home/lxx3:/bin/bash
lxx4::1004:503::/home/lxx4:/bin/bash

newusers < user.info 【导入用户信息】

2)pwunconv 【取消shadow passwd功能】

3) vi pass.info 【写入密码】
lxx1:liuxing
lxx2:liuxing
lxx3:liuxing
lxx4:liuxing
   chpasswd < pass.info 【导入用户密码】

4)pwconv 【将密码写入shadow文件】

方法二:
使用sh脚本。-> sh编程里面再讲。

*************限制用户su切换root**********************

#groupadd sugroup
#chmod 4550 /bin/su
#chgrp sugroup /bin/su
#ls -l /bin/su
-r-sr-x--- 1 root sugroup 18360 jan 15 2015 /bin/su
设定后,只有root用户和sugroup组中的用户可以使用su切换root
#useradd helen
#passwd helen
#usermod -G sugroup helen

*************sudo替代su**********************

在执行sudo命令时候,临时成为root
不会泄漏root口令
仅向用户提供有限的命令使用权限
可以权限精细化。

配置文件:/etc/sudoers
visudo 【编辑配置文件命令】
普通用户使用命令sudo
 格式: 
 用户名(组名) 主机地址=命令(绝对路径)
 visudo:
 lxx2 192.168.1.222=/usr/sbin/useradd
 $groupname  ALL=ALL

*************John the ripper 密码检查软件********************** 
#tar -xzvf john-1.7.6.tar.gz
#cd john-1.7.6/run
#make
破解用户liming密码
#grep liming /etc/passwd > /test/liming.passwd 【把/etc/passwd 用户信息提取出来放到/test/liming.passwd】
#gerp liming /etc/shadow > /test/liming.shadow
#/test/john-1.6.6/run/unshadow /test/liming.passwd
 /test/liming.shadow > /test/liming.john
#/test/john-1.6.6/run/john /test/liming.john

下载地址:http://www.openwall.com/john 

未经允许不得转载:好玩吧 » 基础篇:《李明老师讲Linux笔记》之linux用户管理