五:Linux用户管理
su - leyangjun 切换到leyangjun账户。
文件增加 “粘着位”:chmod o+t/17777 /文件
比如:le用户创建了newfile,且加了粘着位chmod o+t /newfile
能后切换用户yang,yang是没有权限删除newfile文件的,因为加了粘着位不能执行删除操作(只有文件所有者才能删除)
用户为什么可以修改密码?
因为:SetID , chomd u+s/4755 ,去除SetID: chmod u-s/755
SetID的定义:当一个可执行程序具有SetID权限,用户执行这个程序时,将以这个
程序所有者的身份执行。
查找所有SetID程序:find / -perm -4000 -o -perm -2000
linux用户类型分为三种:
超级用户(root,UID=0)
普通用户(UID 500-60000)
伪用户 (UID 1-499) 系统安装的时候自动带的一些用户,也叫特殊用户
A:用户管理配置文件
配置文件7个
1 用户信息文件: /etc/passwd 查看有多少用户:wc -l /etc/passwd 有多少行就是多少个用户
/etc/passwd文件格式
如:root:x:0:0:root:/root:/bin/bash (只要uid=0权限和root一样)
用户名:密码:UID:GID:描述信息:宿主目录:shell
字段 含义
用户名 用户登录系统时使用的用户名
密码 密码位
UID 用户标识号
GID 缺省组标识号
注释性描述 例如存放用户全名等信息
宿主目录 用户登录系统后的缺省目录(是用来存放用户的基本信息的)
命令解释器 用户使用的shell,默认为bash
2 密码文件:/etc/shadow (vi打开)
文件格式: root:$rtesgljkjkj$$sfjslefji60:14965:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:::
字段 含义
用户名 用户登录系统时使用的用户名
密码 加密密码
最后一次修改时间 用户最后一次修改密码的天数
最小时间间隔 两次修改密码之间的最小天数
最大时间间隔 密码保持有效的最多天数(超过多少天就失效)
警告时间 从系统开始警告到密码失效的天数
账号闲置时间 账号闲置时间
失效时间 密码失效的绝对天数
标志 一般不使用
3 用户组文件:/etc/group
4 用户组密码文件:/etc/gshadow
5 用户配置文件:/etc/login.defs
/etc/default/useradd
6 新用户信息文件:/etc/skel
7 登录信息:/etc/motd(登录成功后显示的内容)
B:用户管理命令
1:添加用户
useradd 设置选项用户名 -D 查看缺省参数
u:UID(不指定系统会自动分配)
g:缺省所属用户组GID
G:指定用户所属多个组
d:宿主目录
s:命令解释器shell(所有的 cat /etc/shells)
s:命令解释器shell(所有的 cat /etc/shells)
c:描述信息
e:指定用户失效时间
如:useradd -u 8888 -g root G apaches -d /leyangjun -s /bin/bash -c "project leyangjun" -e 2015-05-01 lyj
passwd 12345678 设置下密码
passwd 敲下这个命令就可修改密码
pwck 检测/etc/passwd文件 ----有人反馈账号登录不进去啊,就可以用这个检测下
vipw 编辑/etc/passwd文件(专门用来编辑pwsswd文件,当你编辑的时候别人不能编辑这个文件,锁定文件)
id 查看用户id和组信息
finger 查看用户详细信息
su 切换用户(su - leyangjun)
passwd -S 查看用户密码状态
who、W 查看当前用户登录信息
userdel -r 用户名 --(删除用户,-r表示删除用户宿主目录)
禁用和恢复用户
禁用:
#usermod -L username
#passwd -l usernma
恢复:
#usermod -U username
#passwd -u username
C:用户组管理命令
1添加用户组 groupadd:
groupadd weibo 增加一个组
groupadd -g 8886 ftpadmin 添加一个组并且指定组id
查看:
grep weibo /etc/group
删除用户组:groupdel 组名
修改用户组信息:groupmod -n apache weibo --修改weibo组名为apache
2:用户组管理命令
gpasswd 设置组密码及管理组内成员
-a 添加用户到用户组
-d 从用户组中删除用户
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为该组
gpasswd weibo 增加组,会叫你输入组密码
gpasswd -a 用户名 组名
gpasswd -a yangjun weibo 将yangjun增加到weibo组中
3:修改用户信息usermod (和上面结果一样)
usermod -G 组名 用户名
usermod -G weibo leyangjun 将用户leyangjun添加到weibo组中
4:用户组管理命令
groups 查看用户隶属于那些用户组
newgrp 切换用户组(普通用户切换组:newgrp weibo -->能后输入对应密码,没有就直接切了)
grpck 用户组配置文件检测
chgrp 修改文件所属组
vigr 编辑/etc/group文件(锁定文件)
D:批量添加用户
E:用户授权
案例:root 创建一个目录,能后给普通用户授权读写等权限
-->就是通过改变文件的所属组来实现授权
1:mkdir /software 这是root创建的,普通用户是不能修改的
2:ls -ld /software 查看下权限
3:useradd lele -->passwd lele 创建用户设置密码
4:useradd yang -->passwd yang
5:groupadd softadm 添加一个组
6:grep softadm /etc/group 查看组信息
7:usermod -G softadm lele(yang) 把用户添加到softadm组内
8:chgrp softadm /software 将目录的所属组改为softadm
9:chmod g+w /software 增加写权限