用户管理
1.账号管理 ***自己的一个总结:修改用户所属组时可以指定用户组名也可以指定gid号***
【用户命令汇总】
-useradd---------------执行此命令可在系统中添加用户
-userdel----------------执行此命令可删除用户及相关的用户配置或文件
-passwd----------------执行次命令可为用户设置密码
-chage------------------修改用户密码有效期限
参数:-l 查看用户可用期限
-usermod---------------修改用户的命令,可以通过usermod来修改登陆名、用户的家目录等等
参数: -c<备注> 修改用户帐号的备注文字。
-d<登入目录> 修改用户登入时的目录。及创建的家目录
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定
-id-----------------------产看用户的uid gid及所归属的用户组
-su----------------------切换用户工具
-sudo--------------------执行授权命令
-visudo------------------编辑sudo配置文件命令
【用户组命令汇总】
-groupadd--------------添加用户组
-gpasswd---------------为用户组设置密码
-groups-----------------显示用户所属的用户组
-newgrp----------------更改用户所属的有效用户组
***重要目录的讲解/etc/skel
作用是用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会
自动复制到新添加的用户的家目录下。通过增删改这个目录下的文件,我们可以为新创建的
用户提供统一、标准的、初始化用户环境。
***重要文件的讲解/etc/login.defs配置文件
/etc/login.defs文件使用俩定义创建用户时所需要的一些用户的配置信息。如创建用户时,
是否需要家目录,UID和GID的范围,用户及密码的有效期限等等
***重要文件的讲解/etc/default/useradd
/etc/default/useradd文件是在使用useradd添加用户时的一个所需要调用的一个默认的
配置文件,可以使用“useradd -D 参数”,这样的命令格式是修改文件里面的内容。
用户命令之useradd
参数:-e 指定账户的终止时间 时间的格式为mm/dd/yy
-g 指定用户属于哪个组
-G 可以指定用户属于多个组之间用逗号分隔
-m 会创建家目录
-M 不建立家目录 优先级高于/ect/login.defs
-s 用户登入后使用的shell名称。默认值为不填写,系统帮写根据/etc/default/useradd的预设值
-u 用户的id值,这个值必须是唯一的,除非用-o选项,数字不可为负
-c 设置用户注释信息
-d 指定家目录
useradd -D就是修改/etc/default/useradd
参数:-b 定义所属用户目录的前一个目录,用户名称会附加在default_home
后面用力啊建立新用户的目录
-e 用户账号停止日期
-f 账号过期几天后停权
-g 新账号起始用户组名或ID。用户组名必须为现有的名称。用户组ID也
必须为现有存在的用户组
-s 用户登入后使用的shell名称。修改后加如新的用户都将使用此shell
类型,useradd -s参数优先于此默认配置值。
uesradd的特色就是在不加任何参数情况下创建用户,会创建一个新用户并且会创建和新用户名字一样的用户组
对于useradd -e的测试:在C5里:账户的有效日期为2012-1.24,但是时间系统时间为
2012-1-25 00:00:00时依然可以登录,到了2012-1-26时才无法登陆
在C6里到时间就无法登陆了,但是可以su切换。
实例:useradd -c 、-u、-G、-s、-d多个参数组合例子
自定义用户家目录、shell类型、所归属的用户组等
添加用户oldboy6,并设置其用户注释信息为handsoneboy,UID只定为806,归属为用户组
root、oldboy、sa程艳,器shell类型为/bin/sh,设置家目录为/oldboy6
2.组管理
添加用户组命令groupadd
相关文件:/etc/group用户组相关文件 /etc/gshadow用户组加密相关文件
参数:-g 指定gid 例子:groupadd zr -g 1000
-f 新增一个账户,强制复制一个已存在的用户组
用户密码相关命令passwd
普通用户自己能改自己的密码,超级用户可以改所有的密码可以修改密码文件
参数:--stdin 从stdin读入密码 修改密码常用用法:echo "123456"|passwd --stdin
-l 锁定密码
-u 解锁密码
-S 查看状态
-n 多少天之内不能改密码
-x 多少天之后必须修改密码
-w 过期前几天通知用户
- i 过期后多少天后禁止用户登陆
修改用户密码有效期限相关命令chage
参数:-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
删除用户相关命令userdel
有关文件/etc/passwd用户账号资料文件 /etc/shadow用户账号咨询加密文件 /etc/group用户组资讯文件
在删除用户组时要看用户组是否时用户的主组如果是,得先删除用户
======================================================
用户查询相关的命令id,figer,users,w,who,last,lastlog,groups(查看当前的用户组)
------------------------------------------------------------------------------------------
su命令
参数:- 切换用户并使用户变量跟随
-c 切换到一个shell下,执行一个命令,然后退出所切换的用户环境
这个命令不安全
--------------------------------------------------------------------------------------------
sudo命令
visudo 增减用户的权限例子:zr ALL=(ALL) 命令全路径,添加多个命令时用逗号分割
参数:-l 列出用户在主机上可用的命令
-u 指定以某个用户身份执行特定的命令操作
------------------------------------------------------------------------------
/etc/sudoers文件作用是定义别名,授权 管理工具visudo 执行工具是sudo
修改用户执行命令权限的
格式如下:
用户/组(组用%开头) 那个机器=(用户执行命令使用的角色) 添加的命令逗号分割
别名讲解:
主机别名 : 主机别名写在第一个ALL处
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
用户别名:包含用户,还可以包含组
# User_Alias ADMINS = jsmith, mikem
角色别名:Runas_Alias这个别名指定的是用户身份,即sudo允许切换到的用户身份
Runas_Alias op=root 第二个ALL就是角色别名的应用位置
命令别名Cmnd_Alias ASDASD=/bin/rm 可批量添加命令
---------------------------------------------------------------------------------------------------
回顾别名和具体授权配置的关系
用户或组 主机 可以切换的用户角色 命令
root ALL= (ALL) ALL
User_Alias = Host_Alias
jsmith,mikem FILESERVERS = fs1, fs2 Runas_Alias op=root # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig,
什么情况下使用别名:
-工作中一般又多个系统用户,需要分类,分层次管理的时候
定义别名实践的例子:
-实例1:定义用户别名 localhost.localdomain