3.linux用户的管理2

来源:互联网 发布:我的世界数据黑洞 编辑:程序博客网 时间:2024/05/29 00:31

用户的管理

用户的类型:
超级用户: root UID=0
系统用户 UID=1-499
普通用户 UID >= 500

用户组:
1个用户组,可以包含多个用户
1个用户,又可以属于多个用户组

每个用户有两类用户组
初始组(基本组,主组):就是这个用户创建时所属的组。
一个用户,只有1个初始组
附加组

相关的配置文件:
/etc/passwd
存放用户帐号和其他基本信息

/etc/shadow
存放用户的密码(加密后的密码)

/etc/group
存放用户组的基本信息

/etc/gshadow
存放用户组的密码

/etc/login.defs 了解即可
login.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。http://linux.chinaunix.net/techdoc/system/2009/07/18/1124913.shtml

/etc/skel目录
当创建1个新用户时,就会自动把/etc/skel目录中的所有(包括以.开头的隐藏文件)
都拷贝都该用户的家目录。

可以把一些必要的文件保存到/etc/skel目录。
实现创建用户时的自动拷贝。

为什么在用户创建时,会自动拷贝/etc/skel目录下的文件呢?
原因:/etc/default/useradd

解析:

GROUP=100 默认的组ID
HOME=/home 默认的家目录
INACTIVE=-1
EXPIRE= 默认的账户过期时间
SHELL=/bin/bash 用户登录后的默认shell
SKEL=/etc/skel 创建用户时,自动拷贝该目录下的所有文件

CREATE_MAIL_SPOOL=yes 创建用户后,是否自动为他创建邮箱目录

需要熟悉掌握的命令:
useradd
userdel
passwd
chage
usermod
id
su
sudo
visudo

用户的常见命令:
1. useradd
添加用户

补充:man useradd 来查看帮助
可以切换到中文
# cat /etc/sysconfig/i18n
LANG=”zh_CN.UTF-8”
# LANG=”zh_CN.UTF-8”

useradd
-c 用户的描述信息
-d 指定该用户的家目录(该目录不能已经存在)
当切换到该用户,或登录该用户时,就会自动进入这个家目录
-e 设置帐号的过期时间
格式: MM/DD/YY 即,月/日/年
-f 设置该账户过期几天之后,就“停权”,即禁用
-g 设置用户的起始组(主组)
如果没有-g, 那么就会自动的创建一个同名的用户组,作为他的主组。
n/sh # groupadd market
创建用户组market
# useradd xiaozhang -g market
创建用户xiaozheng, 同时指定market作为他的主组

  -G 设置用户的附加组     注意,可同时指定多个附加组,但是用,分隔  -m 如果家目录不存在,那自动创建,-m选项之后不需要参数  -M 不创建家目录                  -M选项之后不需要参数  -s 指定该用户登录后的shell  -u 指定用户的UID

改变创建用户时的默认配置
useradd -D

   即改变/etc/default/useradd文件   使用useradd -D 效果等同于直接编辑/etc/default/useradd   useradd -D               -b  修改家目录的上一级目录              -e  帐号的截至时间              -f  帐号过期几天后停权              -g  帐号的主组              -s  帐号登录后的shell                   当使用 # useradd -s 的优先级更高   实例:     # useradd -D -b /tmp  -s /bin/bash  -e 10/01/16练习:1. 创建1个用户,有效期为 2016-07-302. 创建1个用户liubei,   要求他的描述信息为development,   uid为888, 主组为root, 附加组为qianyun和ad   shell的类型为/bin/sh   家目录为/data/liubei

groupadd
创建用户组
-g 指定组ID

# groupadd develop -g 1000

groupdel
删除用户组
# groupdel develop

passwd
修改密码
注意:普通用户只能修改自己的密码
$ passwd
root用户可以修改任意用户的密码
# passwd 用户名

非交互式修改秘密
实例:
# echo “123456” | passwd zhangfei –stdin

锁定密码
# passwd -l 用户名
锁定指定用户的密码,使其不能修改

# passwd -u 用户名
解锁用户的密码,就是可以允许该用户来修改自己的密码

查看密码的状态:
# passwd -s 用户名

常用选项:
-n 修改密码的最小时间间隔
-x 修改密码的最大时间间隔
-w 在过期的前几天给用户发信
-i 过期多少天,帐号将被停权

练习:修改liubei的密码,同时设置为7天内不能再修改,60天后必须修改,
该密码过期前10天通知liubei,
密码过期30天,就禁止liubei登录
# echo “1qaz2wsx” | passwd liubei -n 7 -x 60 -w 10 -i 30

chage
用来管理密码的生命周期

-d 修改密码的最近修改时间
# chage liubei -d 2015/01/31

-E 修改账户的过期时间
# chage liubei -E 2016/12/31

-I 密码过期多少天,帐号停权

-l 显示账户的生命周期信息

-m 修改密码的最小时间间隔
-M 修该密码的最大时间间隔

-W 密码过期前的多少天,发送警告信给用户

练习:修改liubei的密码时间信息:
7天内不能修改密码,60天以后必须修改密码
过期前10天发送通知給liubei
过期30天后禁止用户登录。
# chage liubei -m 7 -M 60 -w 10 -I 30

userdel
删除用户

# userdel 用户名
该用户的家目录和邮件目录不被删除。

# userdel -r 用户名
该用户的家目录和邮件目录都被删除。

注意:删除用户的小技巧,
直接用vi在/etc/passwd中把该用户行注释!
如果以后又需要使用这个帐号,那再把注释去掉

groupdel
# groupdel develop

usermod
修改用户信息
用法:man usermod

练习: 修改liubei的帐号信息,
把帐号描述信息修改为 market
把家目录修改为 /tmp/liubei
把过期时间修改为2016年12月31日
把主组修改为root
# usermod liubei -c market -d /tmp/liubei -e 12/31/16 -g root

id
# id
显示当前用户的信息
# id 用户名
显示指定用户的信息

w
# w
显示已经登录的用户,以及他们正在做什么

who
# who
显示已经登录的用户

lastlog
显示用户的最近的登录信息

groups
显示当前用户组

newgrp
用来临时加入另1个用户组
很少使用。

用户的切换
# su
切换到root
groups
显示当前用户组

newgrp
用来临时加入另1个用户组
很少使用。

用户切换
su su root
切换到root用户
需要输入root的密码

#su zhangfei
切换到指定用户
root用户切换到普通用户,不需要输入密码
普通用户切换到任意其他用户,都需要输入目标用户的密码

# su - zhangfei
切换时,使用-
表示,切换后,使用目标用户的环境变量
如果不使用 - ,
表示,切换后,环境变量不变!

环境变量:$PATH, 当前目录等。

注意:在切换用户时,最后使用 -

su的-c选项的用法:
# su -liubei -c ls
切换到liubei,并执行 -c 后面的命令
但是,执行完之后,再回到原来的用户。

应用场合:
在实际的生产环境中,为了提高安全性,
系统常常在系统启动时,使用普通用户的角色来启动系统的服务
此时就可以使用-c

su的缺点:
su可以让普通用户切换到root用户,所以不安全!
解决方案:使用sudo

sodu的用法
执行流程:见图

分析 /etc/sudoers/配置文件
/etc/sudoers文件:
1)定义别名
可以省略

2)定义规则
必须。
就是用来定义用户执行命令的权限

/etc/sudoers中规则的定义方法
执行sodu的用户 主机名=(目标用户名) 能执行的命令
———————————————
xiaoming ALL=(ALL) ALL
MARKET SOUTH(OP) SOFTSETUP
———————————————

ALL就表示所有

/etc/sudoers中的别名定义
1)用户别名
User_Alias MARKET = zhangfei,guanyu,zhaoyun,%CanMou
MARKET代表了zhangfei, guanyu, zhaoyun, 以及CanMou用户组中的所有人员

2) 主机别名
Host_Alias SOUTH = shenzheng,guangzhou,changsha
SOUTH就表示3台主机:shenzheng, guangzhou, changsha

3) 角色别名
Runas_Alias OP = root

4) 命令别名
Cmnd_Alias SOFTSETUP = /bin/rpm,/usr/bin/yum

小结:别名必须大写!

0 0
原创粉丝点击