用户管理与用户组管理

—————————用户管理—————–

useradd

添加一个新用户

参数:
    #   -g  指定用户的主要组
    #   -G  指定用户的附加组 格式为 G1,G2,G3 (多个组有逗号分割)
        -u  指定用户的UID (不推荐)
    #   -d  指定用户默认的登录目录(家目录)
        -e  设置用户的过期日期,MM/DD/YY 120512  2012.12.05
        -f  设置密码到期后,多少天后禁用用户
    #   -s  指定登录后执行的指令  /bin/bash    

举例:

#新建用户zhang3,并指定登陆运行的shell           
useradd zhang3 -s /bin/sh (优先)

#为新添加的用户指定home目录
useradd -d /home/myd tt

#将teacher1加入teachers组
useradd   -g  teachers   teacher1 

#增加一个用户zhang3,主要组为 G1 组,附加组为 G2,G3,G4(前提,组必须存在)
 useradd zhang3 -g G1 -G G2,G3,G4

 #为新添加的用户指定home目录
 useradd -d /home/myd tt

usermod

修改用户的信息

usermod  -[选项]  username
    选项:
    #   -g  修改用户的主要组
    #   -G  修改用户的附加组 格式为 G1,G2,G3
        -u  修改用户的UID (不推荐)
    #   -d  修改用户默认的登录目录
        -s  修改用户登录后执行的指令 /bin/bash

举例:
   #修改newuser2所属组为staff
     usermod -g staff newuser2

   #将newuser2添加到组staff中
     usermod -G staff newuser2

   #修改newuser的用户名为newuser1
    usermod -l newuser1 newuser

passwd

修改用户密码
格式: passwd 用户名

举例:
#修改zhang3密码,提示你输入两次
passwd zhang3

注意:
    普通用户只能修改自己的密码,必须严格按照Unix密码的安全性来设置,复杂密码  
    管理员修改任何人的密码 passwd username ,"密码安全性" 不受限制

su 切换用户

 在 linux 中    root 就是最高管理员         UID=0 


普通用户 su 普通用户  需要密码
root su 普通用户  不需要密码

#两种切换的方法区别: 
su   zhang3    临时切换身份,不会重新读取变量配置文件      
su - zhang3    前换当前身份到zhang3, 并且重新读取 zhang3 的配置文件    /home/zhang3/.bash_profile 
    参照 newgrp 一样会派生子进程,来运行新的身份环境     

id

查询用户的 ID和组信息

格式:
    id  username  

#查看baitu的id信息
id baitu
uid=1705(baitu) gid=1004(a1) groups=1004(a1),1006(a3)       #uid 为用户id(1705) ,gid为所属组id(1004) ,groups为附加组id(1006)

#通过id命令测试用户是否存在,
id username  1>/dev/null  2>&1     =====>  $?  用户是否存在。 
#输出上一个命令的返回值,为0表示执行成功(这里表示有该用户信息),1表示执行失败(表示没有该用户信息)
echo $?

userdel

删除用户

 格式:userdel 【参数】username
 参数:            
     -r     将用户的  “家目录”  和  “邮件文件”  一并删除

注意:
#用户在线的情况下,不能直接删除用户。
#该用户在其他目录创建的文件,将不会被删除,并且这些文件的所有者将会变成,该用户原先的UID,要想删除那些文件     
#将zhang3彻底删除包(含家目录、邮箱文件)
userdel -r zhang3

密文的在两个文件之间导入(一般没用到)

pwconv:     passwd ---> shadow  #passwd密文导入到shadow里
pwunconv: shadow ---> passwd    #shadow密文导入到passwd里

用户相关配置文件

详细信息请见:

/etc/passwd     #存放用户密码uid gid 、家目录位置、登录运行的shell
/etc/shadow     #该文件权限000,可设置用户密码修改时间,密码到期到期时间等
/etc/login.defs   #定义默认用户邮箱位置,默认密码可用时间等
/etc/default /useradd  #用户没指定组,设置默认添加的组以及默认家目录位置,环境变量文件来源
/etc/skel   #该目录存放环境变量文件 存放.bash_logout、.bash_profile、.bashrc
/etc/issue   #可设置登录之前的提示信息,在输入账号之前!
/etc/motd   #可设置登录成功之后的提示信息

用户日志信息

由于日志文件不是纯文本格式,所以不能用cat 查看

/var/log/wtmp  #用户登录成功的记录  使用命令last查看
/var/log/btmp  #用户登录失败的记录  使用命令lastb查看
/var/log/message  #操作系统通用日志记录  使用last -f +日志文件路径  查看

——————-用户组管理—————————-

groupadd 组名

用户组的创建

 -g 指定新组的 GID 
 例如:
 #创建G1设置gid为506
   groupadd -g 506 G1  (不推荐自己设定GID)
#创建新组G1
   groupadd G1

groups、id

用户查看自己当前所属的组

=== groups  

[baitu@server3 ~]$  groups
a3 a1 a4 a5     #第一个就是当前所处的组,其余为附加组

=== id + username 可以查看自己或者某个用户的 “基本组和用户信息” 

groupdel

用户组的删除

例如:
groupdel  G1 
必须G1组中没有任何成员。(附加组是G1的用户,主要组指向G1的用户)

groupmod -选项 组名

修改组属性:修改GID 修改组名

参数:
    -g 修改gid
    -n 修改组名

举例:
#将用户组G1 501 改成 G1new  600
groupmod -n  G1new -g 600  G1 

#修改G1名为G1new
groupmod  -n  G1new   G1

newgrp

用户切换组
newgrp 组名

newgrp 组名

**重点内容**
==用户在自己所属的组之间,相互切换,不需要密码。(即使这个组设置了密码)
==在用户使用 newgrp 命令切换组的时候,会在当前 进程下,产生另外一个子进程,用于运行新的组身份。
使用两次 exit 才能退出该用户的登录
==ps -ef | grep tty1   当前终端号 能看出来
==组密码文件 gshadow 中的密码位为 “空” 的含义 和 shadow 文件中不同。

gpasswd

用户组设置密码(很少做)

 添加成员到组中,从组中删除某一个成员

gpasswd 组名
gpasswd -d user1 G1  将user1 从G1组中清除。
gpasswd -a user1 G1  将user1 加入到从G1组中,G1为user1的附加组

和  /etc/gshadow 中的,组管理员相关,可以授权组管理员添加和删除组成员

grpconv — /etc/gshadow

grpunconv — /etc/group

    参见: pwconv  pwunconv 的机制(密码在两个文件之间导入)

用户组相关配置文件

配置文件详细参数请见:

/etc/group #类似用户的配置文件passwd
/etc/gshadow  #类似用户配置文件shadow
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页