首页 > 代码库 > Linux_用户/用户组
Linux_用户/用户组
一、用户添加
1. 账号添加
[root@hadoop09-linux tmp]# useradd eRrsr
这时/etc/passwd文件中会追加该用户项,并且在/home文件夹下自动生成该属于该用户的文件夹,默认用户组为该用户名
2. 密码设置
[eRrsr@hadoop09-linux ~]$ passwd eRrsrpasswd: Only root can specify a user name. #提示修改密码只能由root用户来完成[eRrsr@hadoop09-linux ~]$ su - rootPassword: [root@hadoop09-linux ~]# passwd eRrsrChanging password for user eRrsr.New password: Retype new password: passwd: all authentication tokens updated successfully.
3. 用户组添加
[root@hadoop09-linux ~]# groupadd Learn
4. 已有的用户,将其用户组改为Learn
[root@hadoop09-linux ~]# usermod -G Learn eRrsr #-g 修改用户所属的群组(/etc/passwd) -G 修改用户所属的附加群组(/etc/group)
#-L 冻结用户,使密码无效 -U 解冻用户 -u 修改用户ID[root@hadoop09-linux ~]# gpasswd -a eRrsr Learn #第二种方式 -a 添加用户到组 -d 从组删除用户 -A 指定管理员 -r 删除密码
5. 新建用户时同时设置其用户组
[root@hadoop09-linux ~]# useradd -g Learn eRrsr #-g(group) 代表用户组 -d(directory) 代表家目录 -s(shell) 新建用户后所用shell
二、 用户关闭与删除
1. 关闭用户账号(暂停使用,注意root可直接切换到该用户继续操作)
[root@hadoop09-linux ~]# passwd peter -l #锁定账号Locking password for user peter.passwd: Success [root@hadoop09-linux ~]# su - eRrsr[eRrsr@hadoop09-linux ~]$ su - peterPassword: su: incorrect password[eRrsr@hadoop09-linux ~]$ su -Password:[root@hadoop09-linux ~]# passwd peter -uUnlocking password for user peter.passwd: Success
另一种方法(修改文件):在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可
2. 删除用户
[root@hadoop09-linux ~]# userdel -r eRrsr #-r 连同eRrsr用户组,家目录下的eRrsr(包括子文件,子文件夹)一并删除
当然分开写如下
[root@hadoop09-linux ~]# userdel peter [root@hadoop09-linux ~]# groupdel peter [root@hadoop09-linux ~]# usermod –G peter peter #-G 代表强制删除家目录下的peter(包括文件,子文件夹)
PS:有时会遇到这样的问题
userdel: user liuwenlong is currently logged in
解决方法:
a. 使用 lsof | grep eRrsr 查看eRrsr进程ID
b. kill -9 进程ID
3. 若是仅仅想把该用户从用户组中去掉:编辑/etc/group 找到用户那一行,删除即可,另外
[root@hadoop09-linux ~]# gpasswd -d petter group_name
三、 查看用户详细信息
[root@hadoop09-linux ~]# id rootuid=0(root) gid=0(root) groups=0(root)
或
[root@hadoop09-linux ~]# cat /etc/passwd | grep ^rootroot:x:0:0:root:/root:/bin/bash
四、相关概念知识
a. 用户和用户组的对应关系是:一对一、多对一、一对多或多对多
一对一:某个用户可以是某个组的唯一成员
多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组
一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员
多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解
b. 与用户(user)相关的配置文件
/etc/passwd 注:用户(user)的配置文件
/etc/shadow 注:用户(user)影子口令文件
c. 与用户组(group)相关的配置文件
/etc/group 注:用户组(group)配置文件
/etc/gshadow 注:用户组(group)的影子文件
d. 管理用户(user)的工具或命令
useradd 注:添加用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,
但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;
但得通过visudo 来编辑/etc/sudoers来实现
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的
sudoedit 注:和sudo 功能差不多
e. 管理用户组(group)的工具或命令
groupadd 注:添加用户组
groupdel 注:删除用户组
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建
grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件
Linux_用户/用户组